iOS9:"无法下载应用程序"

时间:2015-09-20 10:23:55

标签: ios9 in-house-distribution

我们正在为我们公司开发内部iOS应用程序。 我们创建一个表单

的本地分发链接
itms-services://?action=download-manifest&url=https://INTERNAL-PATH/manifest.plist

它工作了很长时间,包括iOS8和iOS9的所有测试版。

然而,现在对于更新到官方iOS9的每个设备,当尝试从上面的链接安装时,我们正在获得此对话框:

dialog of error

我已按下"安装"直到收到此错误。它显示在这里。从一开始就有一个可疑" ios8fix" 我们没有放,其中一个失败输出声称 BundleValidator:失败的bundleIdentifier:MY_APP_ID.ios8fix没有匹配预期的bundleIdentifier:MY_APP_ID

请注意"创建新的配置文件"这不是一个好的解决方案,因为我试图通过现有应用程序分发更新。

我已经烧了一个愚人节(好一整天)试图解决这个问题,并且会在此感激任何线索!

itunesstored[123] <W>: LoadExternalDownloadManifestOperation: Canceling failed manifest download for replace: MY_APP_ID.ios8fix
itunesstored[123] <W>: [Download]: Adding download(s): -4949958484440492382
itunesstored[123] <W>: LaunchServices: installing placeholder for <LSApplicationProxy: 0x148840860> MY_APP_ID.ios8fix <(null) *Not found in database*>
installd[47] <N>: 0x16e087000 -[MIClientConnection installPath:withOptions:completion:]: Install of "/var/mobile/Library/Caches/com.apple.itunesstored/AppPlaceholders/-4949958484440492382.app" type Placeholder requested by itunesstored (pid 123)
installd[47] <N>: 0x16e12f000 -[MIInstaller performInstallationWithError:]: Installing <MIInstallableBundle ID=MY_APP_ID.ios8fix; Version=8.38.5, ShortVersion=(null)>
installd[47] <N>: 0x16e12f000 -[MIContainer makeContainerLiveReplacingContainer:reason:withError:]: Made container live for MY_APP_ID.ios8fix at /private/var/mobile/Containers/Data/Application/A64E6947-B7E7-46A9-B517-4887AB890E97
installd[47] <N>: 0x16e12f000 -[MIContainer makeContainerLiveReplacingContainer:reason:withError:]: Made container live for MY_APP_ID.ios8fix at /private/var/mobile/Containers/Bundle/Application/A1ED6552-6C73-4DDE-8CE7-ED10F1BB0553
itunesstored[123] <W>: [Download]: Starting task: 4 with priority: 300 for download: -4949958484440492382 bundleIdentifier: MY_APP_ID.ios8fix in session: com.apple.itunesstored.default
installd[47] <N>: 0x16e12f000 -[MIInstaller performInstallationWithError:]: Install Successful; Staging: 0.00s; Waiting: 0.00s; Preflight/Patch: 0.00s, Verifying: 0.00s; Overall: 0.12s
itunesstored[123] <W>: LaunchServices: Creating installProgressForApplication:<LSApplicationProxy: 0x148ac35f0> MY_APP_ID.ios8fix (Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/A1ED6552-6C73-4DDE-8CE7-ED10F1BB0553/-4949958484440492382.app> withPhase:3
itunesstored[123] <W>: LaunchServices: installPhaseFinishedForProgress: MY_APP_ID.ios8fix.InstallingPlaceholder - <NSProgress: 0x148a7a8c0> : Parent: 0x0 / Fraction completed: 0.0000 / Completed: 0 of 100   called, removing progress from cache
lsd[175] <W>: LaunchServices: Updating installPhase for parent <NSProgress: 0x127d3a430> : Parent: 0x0 / Fraction completed: 0.6000 / Completed: 60 of 100   to 3
ondemandd[192] <E>: Application with ID: MY_APP_ID.ios8fix was installed, but it doesn't appear to have a bundle URL, we are taking no action on this.
itunesstored[123] <W>: LaunchServices: updating placeholder for <LSApplicationProxy: 0x146eb9100> MY_APP_ID.ios8fix (Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/A1ED6552-6C73-4DDE-8CE7-ED10F1BB0553/-4949958484440492382.app> with icons
installd[47] <N>: 0x16e12f000 -[MIClientConnection installPath:withOptions:completion:]: Install of "/var/mobile/Library/Caches/com.apple.itunesstored/AppPlaceholders/-4949958484440492382.app" type Placeholder requested by itunesstored (pid 123)
installd[47] <N>: 0x16e2d3000 -[MIInstaller performInstallationWithError:]: Installing <MIInstallableBundle ID=MY_APP_ID.ios8fix; Version=8.38.5, ShortVersion=(null)>
installd[47] <N>: 0x16e2d3000 -[MIInstallableBundle _refreshUUIDForContainer:withError:]: Data container for MY_APP_ID.ios8fix is now at /private/var/mobile/Containers/Data/Application/20871483-6F78-424D-8ED1-BA18BD2959BA
installd[47] <N>: 0x16e2d3000 -[MIContainer makeContainerLiveReplacingContainer:reason:withError:]: Made container live for MY_APP_ID.ios8fix at /private/var/mobile/Containers/Bundle/Application/D1ABD072-5949-452A-A20E-50F5C10310AA
installd[47] <N>: 0x16e2d3000 -[MIInstaller performInstallationWithError:]: Install Successful; Staging: 0.00s; Waiting: 0.00s; Preflight/Patch: 0.00s, Verifying: 0.00s; Overall: 0.06s
ondemandd[192] <E>: Application with ID: MY_APP_ID.ios8fix was installed, but it doesn't appear to have a bundle URL, we are taking no action on this.
SpringBoard[54] <W>: FBApplicationPlaceholder We received a nil BSCFBundle back, which means _CFBundleCreateUnique. Here's what -[NSFileManager attributesOfItemAtPath:error:] is giving us: (null)
        here's the error we got back (if any): Error Domain=NSCocoaErrorDomain Code=260 "The file “-4949958484440492382.app” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/private/var/mobile/Containers/Bundle/Application/A1ED6552-6C73-4DDE-8CE7-ED10F1BB0553/-4949958484440492382.app, NSUnderlyingError=0x12a552020 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
SpringBoard[54] <W>: -[FBBundleInfo _initWithBundleURL:] ERROR: Unable to create bundle at path: /private/var/mobile/Containers/Bundle/Application/A1ED6552-6C73-4DDE-8CE7-ED10F1BB0553/-4949958484440492382.app
ondemandd[192] <E>: An object with ID [0x12de8a220 <x-coredata:///AssetDownloads/tAC876614-AA9B-432E-9691-02EE36693D1013>] has already registered.
itunesstored[123] <W>: LaunchServices: Creating installProgressForApplication:<LSApplicationProxy: 0x148a553a0> MY_APP_ID.ios8fix (Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/D1ABD072-5949-452A-A20E-50F5C10310AA/-4949958484440492382.app> withPhase:0
lsd[175] <W>: LaunchServices: Updating installPhase for parent <NSProgress: 0x127d3a430> : Parent: 0x0 / Fraction completed: 0.6000 / Completed: 60 of 100   to 0
<-- 19 seconds gap -->
itunesstored[123] <W>: [Download]: Download task did finish: 4 for download: -4949958484440492382
itunesstored[123] <W>: [ApplicationWorkspace] Installing download: -4949958484440492382 with step(s): Install
itunesstored[123] <W>: [ApplicationWorkspace]: Installing software package with bundleID: MY_APP_ID.ios8fix: bundleVersion: 8.38.5 path: /var/mobile/Media/Downloads/-4949958484440492382/-5671360055536325805
itunesstored[123] <W>: BundleValidator: Failed bundleIdentifier: MY_APP_ID.ios8fix does not match expected bundleIdentifier: MY_APP_ID
itunesstored[123] <W>: [ApplicationWorkspace]: Bundle validated for bundleIdentifier: MY_APP_ID.ios8fix success: 0
itunesstored[123] <W>: LaunchServices: Uninstalling placeholder for app <LSApplicationProxy: 0x14884ffc0> MY_APP_ID.ios8fix (Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/D1ABD072-5949-452A-A20E-50F5C10310AA/-4949958484440492382.app>
itunesstored[123] <W>: LaunchServices: Uninstalling app <LSApplicationProxy: 0x14884ffc0> MY_APP_ID.ios8fix (Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/D1ABD072-5949-452A-A20E-50F5C10310AA/-4949958484440492382.app>
installd[47] <N>: 0x16e087000 -[MIClientConnection uninstallIdentifiers:withOptions:completion:]: Uninstall requested by itunesstored (pid 123) with options: {
    }
installd[47] <N>: 0x16e087000 -[MIUninstaller _uninstallBundleWithIdentifier:error:]: Uninstalling identifier MY_APP_ID.ios8fix
installd[47] <N>: 0x16e087000 -[MIUninstallNotifier performRemovalWithCompletionBlock:]: Destroying container with identifier MY_APP_ID.ios8fix at /private/var/mobile/Containers/Bundle/Application/D1ABD072-5949-452A-A20E-50F5C10310AA
installd[47] <N>: 0x16e087000 -[MIUninstallNotifier performRemovalWithCompletionBlock:]: Destroying container with identifier MY_APP_ID.ios8fix at /private/var/mobile/Containers/Data/Application/20871483-6F78-424D-8ED1-BA18BD2959BA
itunesstored[123] <W>: LaunchServies: No app bundle to remove for MY_APP_ID.ios8fix
lsd[175] <W>: LaunchServices: Updating identifier store
itunesstored[123] <W>: LaunchServices: clearing created progress for MY_APP_ID.ios8fix
itunesstored[123] <W>: [ApplicationWorkspace]: Uninstalling application placeholder for bundleIdentifier: MY_APP_ID.ios8fix; success: 1
itunesstored[123] <W>: [ApplicationWorkspace]: Failed to install application: MY_APP_ID.ios8fix; /var/mobile/Media/Downloads/-4949958484440492382/-5671360055536325805; Error Domain=SSErrorDomain Code=143 "(null)"
itunesstored[123] <W>: [ApplicationWorkspace] Install complete for download: -4949958484440492382 result: Failed
itunesstored[123] <W>: [Download]: Fail download: -4949958484440492382 after error: Error Domain=SSErrorDomain Code=143 "(null)"

7 个答案:

答案 0 :(得分:12)

MY_APP_ID.ios8fix

您的捆绑包标识符现在必须正确。

对于8.2中的旧问题,这是作为修复完成的。我有一些&#39; ios8fix&#39;我的应用程序上也有扩展,这打破了9.0 GM的OTA。是的,它贯穿了所有的测试版。

请检查您的manifest.plist以确保它与您的实际应用ID真正匹配...更正plist条目。

顺便说一句,您可以使用任何文本编辑器轻松更新该plist。

我的itms入口指向一个plist我也在我的公司服务,这里是整个旧plist

<?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://removed.cachefly.net/noname.ipa</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>dupuy.robert.APPNAME.ios82fix</string>
                <key>bundle-version</key>
                <string>1.0.7</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>Appname 1.0.7</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

查看捆绑包标识符? dupuy.robert.APPNAME.ios82fix是假的! 这被添加为对早期苹果问题的修复。

但是从GM 9.0开始 - 捆绑标识符必须严格正确。

所以要么纠正你的plist,要么指向一个新的正确的plist。这些plist只是简单的文件....应该是一个简单的解决方案!在我的情况下&#34; dupuy.robert.APPNAME.ios82fix&#34;刚被改为&#34; dupuy.robert.APPNAME&#34;并且plist被重新保存了。虽然如果你的网络服务器缓存了plists,如果它继续提供旧的,那又是另一个令人头痛的问题,如果你可以重命名文件,那就更好了。

答案 1 :(得分:3)

这似乎是iOS9中的一个错误,它会缓存以前的OTA错误。

我使用删除设备上的应用程序,更改reloadData()然后重新启动设备,让我的安装再次起作用。这似乎清除了缓存并且安装了应用程序。

答案 2 :(得分:3)

查看你的manifest.plist。

我遇到了同样的问题并通过三天的努力解决了这个问题。 对于iOS8设备,您必须使用旧的plist。对于iOS9版本,您必须使用新的(Xcode7制作)plist。这是标准。 ipa文件是相同的(Xcode7 Archive build)。

新的plist需要两个安装映像。 57x57.jpg和512x512.jpg。你也必须安排它们。捆绑标识符必须正确(与Xcode7&gt; TARGETS&gt; General&gt;捆绑标识符相同)。

我测试了4台设备。

iPad Air(iOS9.0.1) - &gt;好的(通过iOS9 plist)

iPad 3(iOS8.4.1) - &gt;好的(通过iOS8 plist)

iPad 2(iOS9.0) - &gt;好的(通过iOS9 plist)

iPad mini(iOS9.0) - &gt;好的(通过iOS8 plist)

OTA安装过程会让您的设备感到困惑。在这种情况下,重启是有帮助的。希望它有所帮助。

答案 3 :(得分:1)

同样的问题,重启设备已经解决了。

步骤:

  1. 删除OLD APP

  2. 重启设备

  3. 安装新APP

答案 4 :(得分:0)

之前我已经更改了ipa名称和Bundle标识符,以便在ios 8.2中下载。现在在ios 9中只使用了原始的ipa名称和以前的包标识符名称。 它有效。

答案 5 :(得分:0)

我有同样的问题,但在我的情况下,App名称有一个空格,通过删除空间,这一切都很好。

答案 6 :(得分:0)

将新图像属性显示图像完整尺寸图像添加到.plist文件后,我的问题得以修复:

                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>linktoyouripa</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>display-image</string>
                    <key>url</key>
                    <string>someimage.png</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>full-size-image</string>
                    <key>url</key>
                    <string>someimage.png</string>
                </dict>