Over the air app installation is stopped working o

2020-07-21 09:12发布

问题:

I have upgraded my device with iOS 9. I am manually generating plist and ipa file but suddenly it stopped installing in ios 9 while it was working fine with iOS 8.

below

items assets

            <dict>
                <key>kind</key>
                <string>software-package</string>
                <key>url</key>
                 <string>https://www.eg.com/urland.ipa</string>
            </dict>
            <dict>
                <key>kind</key>
                <string>full-size-image</string>
                <key>needs-shine</key>
                <true/>
                <key>url</key>
                 <string>https://www.eg.com/imageurl/iTunesArtwork.png</string>
            </dict>
            <dict>
                <key>kind</key>
                <string>display-image</string>
                <key>needs-shine</key>
                <true/>
                <key>url</key>
                 <string>https://www.eg.com/Icon.png</string>
            </dict>
        </array>
        <key>metadata</key>
        <dict>
            <key>bundle-identifier</key>
            <string>mob.test.profile.ios9fix</string>
            <key>bundle-version</key>
            <string>1.0</string>
            <key>kind</key>
            <string>software</string>
            <key>title</key>
            <string>My App name</string>
        </dict>
    </dict>
</array>

Event i checked my it on diawi.com same thing is happening with it. it is not allowing me to download the application.

回答1:

iOS 9 became more strict with the manifest information:the tag,the value,or something else.

I have met another problem.But I think maybe will give you some useful information.

The way to find out why,the most important step is to check you device log.It will show you the installation error information.

I find the problem is that I mistake the bundle-identifier value.

I find if you mistake the bundle-identifier value,the iOS 9 will not allow you to install the app,but iOS 8 or lower version will not check bundle-identifier value.

The installation error information from my iOS 9 device:

20:40:09 ifeegoo itunesstored →  <Warning>: [Download]: Download task did finish: 8 for download: 2325728577585828282
20:40:09 ifeegoo itunesstored →  <Warning>: [ApplicationWorkspace] Installing download: 2325728577585828282 with step(s): Install
20:40:09 ifeegoo itunesstored →  <Warning>: [ApplicationWorkspace]: Installing software package with bundleID: com.***.***: bundleVersion: 1.01 path: /var/mobile/Media/Downloads/2325728577585828282/-1925357977307433048
20:40:09 ifeegoo itunesstored →  <Warning>: BundleValidator: Failed bundleIdentifier: com.***.**** does not match expected bundleIdentifier: com.***.*********
20:40:09 ifeegoo itunesstored →  <Warning>: [ApplicationWorkspace]: Bundle validated for bundleIdentifier: com.****.******success: 0
20:40:09 ifeegoo itunesstored →  <Warning>: LaunchServices: Uninstalling placeholder for app <LSApplicationProxy: 0x12677be70> com.****.*******(Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/B62D8EA3-2052-4393-8A7E-3FD27228BFC2/2325728577585828282.app>
20:40:09 ifeegoo itunesstored →  <Warning>: LaunchServices: Uninstalling app <LSApplicationProxy: 0x12677be70> com.****.*****(Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/B62D8EA3-2052-4393-8A7E-3FD27228BFC2/2325728577585828282.app>

Pay attention to the log(I hide the bundle Id because of privacy.):

20:40:09 ifeegoo itunesstored →  <Warning>: BundleValidator: Failed bundleIdentifier: com.***.**** does not match expected bundleIdentifier: com.***.*********

The most important to solve this problem is to check the device log.



回答2:

Here's an example of a .plist we're using

<?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>urlWhereIsYourIpaFile</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>bundleWithoutSpaces</string>
                <key>bundle-version</key>
                <string>1.0</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>nameOfApp</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

And in an html file we call the plist with the following:

<a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/{some random chain}/example.plist">
           <img src="an image if you want" height="57" width="57" />
         </a>

We don´t have the SSL in our server so what we do is to upload the .plist to dropbox and share the link, but if you have an https you can use that url without problems.

Hope this helps, we had the problem that our bundle-identifier had spaces so in iOS 9 that wasn't working but after removing the space it worked as always