Search code examples
iosxcodearchive

iOS install in-house app wirelessly


Need some help to understand terminology and the process correctly.

I have an iOS app that i want to install on my Devices for testing. So far i was able to install the app on my devices only through iTunes(with archived .ipa file), plugging the device to my Mac.

My iOS developer program is not enterprise, it's regular Developer Program (the $99 one).

Can i use over the air installation in my case? http://help.apple.com/deployment/ios/#/apda0e3426d7 My app is built with a "Development" Provisioning profile and not "In House" provisioning profile. Documentation says it must be built with and in-house provisioning profile. I don't have in-house option in my Developer Program interface.

What other wireless, web based installation options can i provide my users?


Solution

  • The difference between signing with an Enterprise account in-house distribution profile and one from a regular account is that the former allows any iOS device to install the .ipa, and the latter one allows only devices listed in the profile to install it. Without an enterprise account, this means that you need to obtain the deviceID from the devices first, create a provisioning profile that contains all those IDs and use that profile for an OTA-build (OTA = over the air). But before you do, just try out the next steps with your own device (which for sure is listed as you use if to build on from Xcode). The next steps are error-prone enough even without trying multiple devices:

    To create an OTA-build you need to do the following:

    • create a .ipa for in-house distribution (this will make sure the profile is included into the package, which allows listed devices to actually install it)
    • create a .plist file with information about the app and a URL to the .ipa file (see below). The link to the .ipa contained in it needs to be HTTPS.
    • create an .html file with a specially formatted link (also needs to be HTTPS) to that .plist file: <a href="itms-services://?action=download-manifest&url=http://linkToyour/plistFile.plist"> Download My App </a>

    If you browse on your iOS device to that webpage, you should be able to install the .ipa file. Make sure that you have your device connected to your machine with Xcode's devices pane open. This will allow you to look at the system output in the console when things don't work (the alerts on your iOS device usually are not helpful).

    Note that another, way more convenient way is to setup an Xcode bot. Maybe you can do this from one machine, but I did this using an old MacBook I still had. Download Xcode Server (for free) by using the redemption code from the developer portal. Enable Xcode server, then setup a bot from your local machine. This is by far the most convenient way.

    Here is a template of the .plist file that you need to make:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>items</key>
        <array>
            <dict>
                <key>assets</key>
                <array>
                    <dict>
                        <key>kind</key>
                        <string>software-package</string>
                        <key>url</key>
                        <string>http://yourWebSite.com/youripaFileName.ipa</string> // change this
                    </dict>
                </array>
                <key>metadata</key>
                <dict>
                    <key>bundle-identifier</key>
                    <string>yourBundleID</string> // change this
                    <key>bundle-version</key>
                    <string>yourApplicationVersion</string> // change this
                    <key>kind</key>
                    <string>software</string>
                    <key>title</key>
                    <string>yourAlertTitle</string> // change this
                </dict>
            </dict>
        </array>
    </dict>
    </plist>