iOS App: Enterprise Distribution/Deployment – Missing app.plist

I’m facing an issue with deployment of enterprise iOS application.

Here is sample link to download app from web service: ‘itms-services://?action=download-manifest&url=https://location.company.com/sites/mobile/Files/Mobile/deploy/app.plist‘.

  • “Untrusted App Developer” message when installing enterprise iOS Application
  • putpkt: write failed, broken pipe
  • Does anyone know how to detect if a user has cancelled an “In App” attempt to install another App version
  • iOS8 Enterprise app install issue
  • 0 Entitlements when Exporting App for Enterprise Distribution
  • How can I deploy an iPhone application from Xcode to a real iPhone device?
  • I hosted an html and ipa files on same web server.

    When I am trying to download app from server, I am getting an error:

    “Cannot connect to Server”

    The device log in the Xcode shows, the below log:

    TOM-iPhone itunesstored[106] : Could not load download manifest with underlying error: Error Domain=SSErrorDomain Code=2 “Cannot connect to iTunes Store” UserInfo={NSLocalizedDescription=Cannot connect to iTunes Store}

    It’s indicating an error for missing app.plist at following location
    https://location.company.com/sites/mobile/Files/Mobile/deploy/app.plist

    How can I create new app plist?

    Here I saw sample plist but how can I create plist for my app?

    2 Solutions Collect From Internet About “iOS App: Enterprise Distribution/Deployment – Missing app.plist”

    BASICALLY YOU HAVE TO HAVE MANIFEST FILE IF YOU ARE GONNA DISTRIBUTE OTA(OVER THE AIR) LIKE THIS THROUGH WEB SERVER

    app.plist is a manifest file

    The manifest is an XML-based property list (.plist extension) and it should contain the following six key/value pairs:

    • URL

      a fully-qualified URL pointing to the .ipa file

    • display-image

      a fully-qualified URL pointing to a 57×57-pixel (72×72 for iPad) PNG icon used during download and installation

    • full-size-image

      a fully-qualified URL pointing to a 512×512-pixel PNG image that represents the iTunes app

    • bundle-identifier

      the app’s standard application identifier string, as specified in the app’s .plist file

    • bundle-version

      the app’s current bundle version string, as specified in the app’s
      .plist file

    • title

      a human-readable application name

    Using Xcode

    • In the XCODE Archives organizer, select the archive that was used to make ipa

    • Click the Export
      button, select Save for Enterprise Deployment, and click Next.

    enter image description here
    enter image description here

    The Finder shows the exported that has an .ipa extension.

    • Review the build options, and click Next.
      check Include manifest for over-the-air installation

    • enter details about your web server in the Distribution manifest information dialog that appears, and click Export.

      enter image description here

    • Enter a filename and location for the iOS App file, and click Export.

    YOU HAVE TO RENAME THE PLIST AS app.plist AND COPY TO

    https://location.company.com/sites/mobile/Files/Mobile/deploy/

    DIY

    If you don’t want to go through the tedious xcode process then here is the easiest way

    Here is the sample manifest file content you can edit it contents according to the keys as I have explained earlier and save it as app.plist and copy to

    https://location.company.com/sites/mobile/Files/Mobile/deploy/

     <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
       <!-- array of downloads. -->
       <key>items</key>
       <array>
           <dict>
               <!-- an array of assets to download -->
               <key>assets</key>
               <array>
                   <!-- software-package: the ipa to install. -->
                   <dict>
                       <!-- required.  the asset kind. -->
                       <key>kind</key>
                       <string>software-package</string>
                       <key>url</key>
                       <string>http://www.example.com/apps/foo.ipa&lt;/string>
                   </dict>
                   <!-- display-image: the icon to display during download. -->
                   <dict>
                       <key>kind</key>
                       <string>display-image</string>
                       <!-- optional. icon needs shine effect applied. -->
                       <key>needs-shine</key>
                       <true/>
                       <key>url</key>
                       <string>http://www.example.com/image.57×57.png&lt;/string>
                   </dict>
                   <!-- full-size-image: the large 512×512 icon used by iTunes. -->
                   <dict>
                       <key>kind</key>
                       <string>full-size-image</string>
                                  <!-- optional. icon needs shine effect applied. -->
                       <key>needs-shine</key>
                       <true/>
                       <key>url</key>
                       <string>http://www.example.com/image.512×512.png&lt;/string>
                   </dict>
               </array><key>metadata</key>
               <dict>
                   <!-- required -->
                   <key>bundle-identifier</key>
                   <string>com.example.fooapp</string>
                   <!-- optional (software only) -->
                   <key>bundle-version</key>
                   <string>1.0</string>
                   <!-- required. the download kind. -->
                   <key>kind</key>
                   <string>software</string>
                   <!-- optional. displayed during download; -->
                   <!-- typically company name -->
                   <key>subtitle</key>
                   <string>Apple</string>
                   <!-- required. the title to display during the download. -->
                   <key>title</key>
                   <string>Example Corporate App</string>
               </dict>
           </dict>
       </array>
    </dict>
    </plist>
    

    P.S

    Make sure your website is configured to support the following two MIME types in Web server

    • .ipa application/octet-steam

    • .plist text/xml

    After doing this if you have trouble installing the application please refer this link it’d be helpful to you

    Hope this helps 🙂

    The plist file is just an xml file. You can copy the xml/plist and replace the values (software-package, full-size-image, display-image, etc).

    The most important part is the software-package location:

    <dict>
        <key>kind</key>
        <string>software-package</string>
        <key>url</key>
        <string><!-- Your IPA file location here --></string>
    </dict>
    

    The other fields are mostly metadata.

    To create the plist file through Xcode, see Apple documentation: https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/DistributingEnterpriseProgramApps/DistributingEnterpriseProgramApps.html