Search code examples
iosipadios7xcode6

How to create an iOS 7 app that installs over the air


I am quite a newbiew in iOS developing/deployment and other stuffs related to iOS.

I made a simple presentation app but my task contains also the delivering stage. I must create a link from which the users can directly install the application on their iPads. I've been through a lot of posts but many of them are outdated.(For example I don't have any "Share" button when creating the archive), or are not explicit enough. So how can I build an application and provide an html from which the application will automatically install?

To be mentioned:

  1. the ipa will be stored on dropbox
  2. it's an iOS 7 application project
  3. I use XCode 6.1

Can someone help please? Thanks a lot!


Solution

  • So you need a html file containing a link like this one:

    <a href="itms-services://?action=download-manifest&url=https://linkToYourFolder/YourAppsName.plist">
    

    The https on the link on your html file is absolutly needed if i remember right.

    Now, the plist will look like the following.

        <?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>https://linkToYourFolder/YourAppsName.ipa</string>
                                    </dict>
                            </array>
                            <key>metadata</key>
                            <dict>
                                    <key>bundle-identifier</key>
                                    <string>com.your.bundle.identifier</string>
                                    <key>bundle-version</key>
                                    <string>1.0.0</string>
                                    <key>kind</key>
                                    <string>software</string>
                                    <key>title</key>
                                    <string>YourAppsName</string>
                            </dict>
                    </dict>
            </array>
    </dict>
    </plist>
    

    Before xCode 6, xcode would ask you if you wanted to generate a plist file when exporting the ipa. Since xCode 6 i haven't found how to generate it, so i use the same base.plist file and modify what's needed. (If someone knows how to generate that file on xCode 6, feel free to comment :D)

    To generate the app.ipa file, go on xCode window menu => Organizer => select the archive you wish to export, and save it as an enterprise build.

    Something important before compiling your Archive, you need to set the provisioning profile on the configuration you'll use to make the archive. At my work we usually copy the release configuration and rename it inHouse. Then in the scheme for archiving we select the inHouse configuration which has the provisioningProfile needed to make the ipa, set in the project/target build settings.

    You should know that you can also do the same for an adhoc, the only difference that i know of, is that the adhoc will be limited to the maximum 100 devices from the adhoc mobileProvisioning. Use adhoc if you don't have an enterprise apple developer account.