Copied this from another board..
Last edited by jwight In 2015-1-14 15:25 Editor
(Background: I'm an iPhone app developer and have been making iOS apps since the iOS AppStore opened. I don't have my Inspire-1 yet - should be here Thursday.)
(Copy of this post here as a backup: https://gist.github.com/schwa/1122ddbe351535be419c)
tl;dr DJI is distributing the DJI Pilot app using a mechanism that Apple does not authorise and they risk Apple "kill switching" the software.
Over the last few days I've been checking the iOS AppStore to see if the DJI Pilot app was available on it so I can install and try it out before I get my quadcopter. I found nothing, despite seeing YouTube videos from Inspire-1 owners who were definitely running the app on their iPad. This made me wonder why - when I realised the app receives video directly from the controller via the USB/Lightning cable. This is _not_ an iOS feature currently available to developers who want to release on the AppStore. (with the conspicuous exception of the “Duet Display” app - more on that later)
This made me realise that DJI must be distributing the app under an Enterprise certificate and not with an AppStore certificate that we developers normally use to distribute apps on the AppStore. I noticed a link to the app in the Inspire manual and after a little bit of cheating (it required that I enter my Inspire S/N which I dont have yet) I managed to download the app and inspect it to confirm that it indeed was signed using an Enterprise profile: (see screenshot herehttps://www.dropbox.com/s/6n55dpj0vm7ccc1/Screenshot%202015-01-13%2021.37.45.png?dl=0 )
Quick background: individuals and companies who want to sell (or give away) apps on the AppStore sign up for the iOS Developer program and are able to build and distribute apps using AppStore certicates. As part of this program they submit apps for review to Apple, who make sure the app is following all the rules (and not say, receiving video via USB). One of the limitations is that AppStore developers cannot just distribute the app to whoever they like (with the exception of a small number of beta testers) - everyone must go via the AppStore to install the app.
Enterprise program members, on the other hand are not limited by the same rules. They can make apps that anyone can install on their devices without going through the AppStore. And also - because they bypass the AppStore - these apps can do things that Apple would not normally allow. This is how the DJI Pilot app is able to receive video directly over the USB/Lightning cable. The catch, and this is the dealbreaker - is that these Enterprise apps can ONLY be distributed to members of the enterprise in question.
In fact this is spelt out quite clearly on the main Apple Enterprise Program page (https://developer.apple.com/programs/ios/enterprise/): "Get tools and resources for developing proprietary, in-house iOS apps that you can distribute to your employees". The DJI Pilot app is NOT in-house and is NOT being distributed to just DJI employees. (This, of course, described legally and very verbosely in the actual Enterprise program terms and conditions).
So all this would really be none of our business if not for the fact that Apple can decide at will to revoke DJI’s Enterprise certificate and stop everyone (you, me and all Inspire users) from using the app. They can, in effect, pull a remote “kill switch” that will disable the App. Because DJI is breaking their Enterprise agreement with Apple, Apple is more than within their rights to do this. In fact Apple has in the past done exactly this to other enterprises that have pulled the same trick (see for example: http://www.macrumors.com/2014/02/19/gba4ios-game-boy-emulator/)
Will Apple do this? Personally I doubt it - DJI isn’t doing anything malicious, and to be quite honest the iPad controlled Inspire looks great for Apple too. Can Apple do this? Definitely. Is Apple within their rights to do this? Again, definitely. Will this mean your $3000 drone will suddenly have a large part of its functionality rendered useless? Yes.
So if Apple was to do this what could DJI do? They’d have to remove functionality that was unavailable to them if they were to release it on the AppStore (e.g. video over USB/Lightning).
But I bet a lot of Inspire users would go out and buy a Nexus ? immediately though.
You may be wondering why DJI is breaking their agreement with Apple and releasing the App like this? Again it comes down to video over USB/Lightning. As mentioned this is not something that AppStore apps can usually do. And I believe DJI either tried to get DJI Pilot on the AppStore and failed (perhaps asking Apple for an exception for this feature) or decided to bypass the issue completely and went straight for the Enterprise release.
In the last couple of weeks an app receiving video via USB/Lightning has appeared on the AppStore: “Duet Display” (https://itunes.apple.com/us/app/duet-display/id935754064?mt=8) allows you to use an iPad as a second monitor for your Mac - and it transmits video from the Mac via USB/Lightning. As all developers up to now thought that technique was off-limits this naturally caused a lot of controversy: https://medium.com/@mronge/apple-is-usb-allowed-now-8da959394e82
Now that this precedent has been set it MIGHT be possible for DJI to go with the AppStore route. And I really hope that DJI are trying as hard as they can to get the DJI Pilot app released this way.
If they’re not - then I hope bringing this issue into the open will help pressure them into at least trying this route.
If attempts to get DJI Pilot onto the AppStore fail then I think it’s useful for all Inspire-1 and iOS users are aware of this situation and know that DJI is playing rather “fast and loose” with their customer’s purchases.
Last edited by jwight In 2015-1-14 15:25 Editor
(Background: I'm an iPhone app developer and have been making iOS apps since the iOS AppStore opened. I don't have my Inspire-1 yet - should be here Thursday.)
(Copy of this post here as a backup: https://gist.github.com/schwa/1122ddbe351535be419c)
tl;dr DJI is distributing the DJI Pilot app using a mechanism that Apple does not authorise and they risk Apple "kill switching" the software.
Over the last few days I've been checking the iOS AppStore to see if the DJI Pilot app was available on it so I can install and try it out before I get my quadcopter. I found nothing, despite seeing YouTube videos from Inspire-1 owners who were definitely running the app on their iPad. This made me wonder why - when I realised the app receives video directly from the controller via the USB/Lightning cable. This is _not_ an iOS feature currently available to developers who want to release on the AppStore. (with the conspicuous exception of the “Duet Display” app - more on that later)
This made me realise that DJI must be distributing the app under an Enterprise certificate and not with an AppStore certificate that we developers normally use to distribute apps on the AppStore. I noticed a link to the app in the Inspire manual and after a little bit of cheating (it required that I enter my Inspire S/N which I dont have yet) I managed to download the app and inspect it to confirm that it indeed was signed using an Enterprise profile: (see screenshot herehttps://www.dropbox.com/s/6n55dpj0vm7ccc1/Screenshot%202015-01-13%2021.37.45.png?dl=0 )
Quick background: individuals and companies who want to sell (or give away) apps on the AppStore sign up for the iOS Developer program and are able to build and distribute apps using AppStore certicates. As part of this program they submit apps for review to Apple, who make sure the app is following all the rules (and not say, receiving video via USB). One of the limitations is that AppStore developers cannot just distribute the app to whoever they like (with the exception of a small number of beta testers) - everyone must go via the AppStore to install the app.
Enterprise program members, on the other hand are not limited by the same rules. They can make apps that anyone can install on their devices without going through the AppStore. And also - because they bypass the AppStore - these apps can do things that Apple would not normally allow. This is how the DJI Pilot app is able to receive video directly over the USB/Lightning cable. The catch, and this is the dealbreaker - is that these Enterprise apps can ONLY be distributed to members of the enterprise in question.
In fact this is spelt out quite clearly on the main Apple Enterprise Program page (https://developer.apple.com/programs/ios/enterprise/): "Get tools and resources for developing proprietary, in-house iOS apps that you can distribute to your employees". The DJI Pilot app is NOT in-house and is NOT being distributed to just DJI employees. (This, of course, described legally and very verbosely in the actual Enterprise program terms and conditions).
So all this would really be none of our business if not for the fact that Apple can decide at will to revoke DJI’s Enterprise certificate and stop everyone (you, me and all Inspire users) from using the app. They can, in effect, pull a remote “kill switch” that will disable the App. Because DJI is breaking their Enterprise agreement with Apple, Apple is more than within their rights to do this. In fact Apple has in the past done exactly this to other enterprises that have pulled the same trick (see for example: http://www.macrumors.com/2014/02/19/gba4ios-game-boy-emulator/)
Will Apple do this? Personally I doubt it - DJI isn’t doing anything malicious, and to be quite honest the iPad controlled Inspire looks great for Apple too. Can Apple do this? Definitely. Is Apple within their rights to do this? Again, definitely. Will this mean your $3000 drone will suddenly have a large part of its functionality rendered useless? Yes.
So if Apple was to do this what could DJI do? They’d have to remove functionality that was unavailable to them if they were to release it on the AppStore (e.g. video over USB/Lightning).
But I bet a lot of Inspire users would go out and buy a Nexus ? immediately though.
You may be wondering why DJI is breaking their agreement with Apple and releasing the App like this? Again it comes down to video over USB/Lightning. As mentioned this is not something that AppStore apps can usually do. And I believe DJI either tried to get DJI Pilot on the AppStore and failed (perhaps asking Apple for an exception for this feature) or decided to bypass the issue completely and went straight for the Enterprise release.
In the last couple of weeks an app receiving video via USB/Lightning has appeared on the AppStore: “Duet Display” (https://itunes.apple.com/us/app/duet-display/id935754064?mt=8) allows you to use an iPad as a second monitor for your Mac - and it transmits video from the Mac via USB/Lightning. As all developers up to now thought that technique was off-limits this naturally caused a lot of controversy: https://medium.com/@mronge/apple-is-usb-allowed-now-8da959394e82
Now that this precedent has been set it MIGHT be possible for DJI to go with the AppStore route. And I really hope that DJI are trying as hard as they can to get the DJI Pilot app released this way.
If they’re not - then I hope bringing this issue into the open will help pressure them into at least trying this route.
If attempts to get DJI Pilot onto the AppStore fail then I think it’s useful for all Inspire-1 and iOS users are aware of this situation and know that DJI is playing rather “fast and loose” with their customer’s purchases.