iosxcodecordovaipadvisual-studio-cordova

Deploying Apache Cordova app to iPad without Apple developer account


After having developed an app for a friend using Visual Studio 2013 Pro with the Apache Cordova Extension, I hoped to also get it runnning on an iPad 3 as fast as with Android. However, things proved to be more complicated than originally thought: The 99$ for an Apple developer account would be far too high for a single device development (the app is intended to only work on one device, no commercial intentions).

At least I now have the ability to use Mac OSX and XCode, which is connected to Visual Studio via network. Installing the app in the iOS simulator works as expected, but I'm struggling with deploying it on the iPad. I already considered jailbraking the device, as the warranty is yet expired and it wouldn't be a problem for my friend. According to the Information I found it would be possible; however, I could not find much about how to do that.

Thanks in advance.


Solution

  • After several months I finally found a working solution: The latest XCode version (7 Beta 2) is able to sign iOS applications using an ordinary AppleID instead of a $100 developer license.

    First, you will need to prepare the vs-mda-remote node plugin on your Mac and be able to build applications [See here how]. Using an appropriate deployment target in Visual Studio, the app can be tested within a virtualized iOS environment.

    However, the deployment options Remote Device and Local Device will both fail when you haven't subscribed to the Apple Developer Program. Other methods (described here or here) requiring jailbreaking the device haven't worked for me either.

    Interestingly, Apple seems to have changed their strategy not much time ago , finally allowing to sign and deploy apps on non-rooted iOS devices.

    Whenever an app is built for the iOS simulator, vs-mda-remote will create a whole new build folder (named using a 3 - 5 digit random number) located in ~/remote-builds/builds. Inside that build folder, you will need to find and open the XCode project file with XCode 7 (example path: ~/remote-builds/builds/654/cordovaApp/platforms/ios/YOUR_PROJECT_NAME.codeproj).

    After having connected and detected your iOS device, you should be able to select it as deployment target. Then you should follow these instructions, basically just adding an AppleID which should be used to sign the app. This wasn't possible with earlier XCode versions and is certainly much easier than using one of the "hack"-like techniques involving jailbreaking your device and practically voiding it's warranty.

    Finally, you will only need to set the Code Signing Identity to the registered AppleID (for both the Project and the Target) and you're ready to deploy your app.

    This method worked for me using iOS 8.3 and Mac OSX Yosemite 10.10.4. If there are any other questions, please feel free to ask.