无法在具有 iOS 9 GM 种子的设备上安装企业应用程序

Can't install enterprise app on device with iOS 9 GM seed

我正在尝试通过无线方式在 ipad 2 台设备上使用 iOS 9 GM 种子安装企业应用程序。 iOS显示下载进度,下载后出现错误"Can't install"。

它适用于最后一个 iOS 9 beta

有来自控制台的日志:

Sep 10 04:12:25 iPad-Dashboard ondemandd[145] <Error>: Application with ID: M3KJ3WBD2L.com.boardmaps.boardmaps was installed, but it doesn't appear to have a bundle URL, we are taking no action on this.
Sep 10 04:12:27 iPad-Dashboard ondemandd[145] <Error>: An object with ID [0x15e74230 <x-coredata:///AssetDownloads/t7E19FE36-172C-43EF-90EC-1B069309CF8B16>] has already registered.
Sep 10 04:12:27 iPad-Dashboard itunesstored[116] <Warning>: LaunchServices: Creating installProgressForApplication:<LSApplicationProxy: 0x14deb5f0> M3KJ3WBD2L.com.boardmaps.boardmaps (Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/7312DC34-DF53-43BA-AE3E-DEA05EBF014D/-4088318364755750305.app> withPhase:0
Sep 10 04:12:27 iPad-Dashboard lsd[74] <Warning>: LaunchServices: Updating installPhase for parent <NSProgress: 0x16586090> : Parent: 0x0 / Fraction completed: 0.6000 / Completed: 60 of 100   to 0
Sep 10 04:12:27 iPad-Dashboard SpringBoard[47] <Warning>: HW kbd: Failed to set (null) as keyboard focus
Sep 10 04:12:28 iPad-Dashboard MobileSafari[137] <Warning>: Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates.
Sep 10 04:12:47 iPad-Dashboard itunesstored[116] <Warning>: [Download]: Download task did finish: 5 for download: -4088318364755750305
Sep 10 04:12:47 iPad-Dashboard itunesstored[116] <Warning>: [ApplicationWorkspace] Installing download: -4088318364755750305 with step(s): Install
Sep 10 04:12:47 iPad-Dashboard itunesstored[116] <Warning>: [ApplicationWorkspace]: Installing software package with bundleID: M3KJ3WBD2L.com.boardmaps.boardmaps: bundleVersion: 1.1.18.1100 path: /var/mobile/Media/Downloads/-4088318364755750305/8091709402150391677
Sep 10 04:12:50 iPad-Dashboard itunesstored[116] <Warning>: BundleValidator: Failed bundleIdentifier: M3KJ3WBD2L.com.boardmaps.boardmaps does not match expected bundleIdentifier: com.boardmaps.boardmaps
Sep 10 04:12:50 iPad-Dashboard itunesstored[116] <Warning>: [ApplicationWorkspace]: Bundle validated for bundleIdentifier: M3KJ3WBD2L.com.boardmaps.boardmaps success: 0
Sep 10 04:12:50 iPad-Dashboard itunesstored[116] <Warning>: LaunchServices: Uninstalling placeholder for app <LSApplicationProxy: 0x16095af0> M3KJ3WBD2L.com.boardmaps.boardmaps (Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/7312DC34-DF53-43BA-AE3E-DEA05EBF014D/-4088318364755750305.app>
Sep 10 04:12:50 iPad-Dashboard itunesstored[116] <Warning>: LaunchServices: Uninstalling app <LSApplicationProxy: 0x16095af0> M3KJ3WBD2L.com.boardmaps.boardmaps (Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/7312DC34-DF53-43BA-AE3E-DEA05EBF014D/-4088318364755750305.app>
Sep 10 04:12:50 iPad-Dashboard installd[42] <Notice>: 0x1f081000 -[MIClientConnection uninstallIdentifiers:withOptions:completion:]: Uninstall requested by itunesstored (pid 116) with options: {
    }
Sep 10 04:12:50 iPad-Dashboard installd[42] <Notice>: 0x1f081000 -[MIUninstaller _uninstallBundleWithIdentifier:error:]: Uninstalling identifier M3KJ3WBD2L.com.boardmaps.boardmaps
Sep 10 04:12:50 iPad-Dashboard installd[42] <Notice>: 0x1f081000 -[MIUninstallNotifier performRemovalWithCompletionBlock:]: Destroying container with identifier M3KJ3WBD2L.com.boardmaps.boardmaps at /private/var/mobile/Containers/Bundle/Application/7312DC34-DF53-43BA-AE3E-DEA05EBF014D
Sep 10 04:12:50 iPad-Dashboard installd[42] <Notice>: 0x1f081000 -[MIUninstallNotifier performRemovalWithCompletionBlock:]: Destroying container with identifier M3KJ3WBD2L.com.boardmaps.boardmaps at /private/var/mobile/Containers/Data/Application/B7AD1744-EB1F-42D3-8690-F1FB4B2DA526
Sep 10 04:12:51 iPad-Dashboard itunesstored[116] <Warning>: LaunchServies: No app bundle to remove for M3KJ3WBD2L.com.boardmaps.boardmaps
Sep 10 04:12:51 iPad-Dashboard lsd[74] <Warning>: LaunchServices: Updating identifier store
Sep 10 04:12:51 iPad-Dashboard itunesstored[116] <Warning>: LaunchServices: clearing created progress for M3KJ3WBD2L.com.boardmaps.boardmaps
Sep 10 04:12:51 iPad-Dashboard itunesstored[116] <Warning>: [ApplicationWorkspace]: Uninstalling application placeholder for bundleIdentifier: M3KJ3WBD2L.com.boardmaps.boardmaps; success: 1
Sep 10 04:12:51 iPad-Dashboard itunesstored[116] <Warning>: [ApplicationWorkspace]: Failed to install application: M3KJ3WBD2L.com.boardmaps.boardmaps; /var/mobile/Media/Downloads/-4088318364755750305/8091709402150391677; Error Domain=SSErrorDomain Code=143 "(null)"

您可能遇到过与 iOS8 的 OTA 安装相同的问题,并在服务器端实施了解决方法:您更改了 plist 清单文件中的包 ID 并向其添加了电路板映射。我们添加了 .dummy 以使其与 iOS 8.1

一起使用

BundleValidator:失败的 bundleIdentifier:M3KJ3WBD2L.com.boardmaps.boardmaps 与预期的 bundleIdentifier 不匹配:com.boardmaps.boardmaps

不幸的是,它不再适用于 iOS 9。我们需要再次更改服务器端的逻辑,以在生成 plist 文件时区分 iOS 8 和 9。

干杯!

通过 TestFairy 也看到了这一点。 TestFairy 将“.download”添加到包标识符的末尾,导致在安装了 iOS 9 GM 预种子的设备上安装失败。这不是 iOS 8 的问题,也不是 iOS 9 测试版的问题...

我注意到 iOS 9 GM 也有同样的问题。最终我发现问题是由ipa的zip版本引起的。

我正在使用 Java 库来生成 ipa。现在我使用 /usr/bin/zip 生成 ipa,它解决了我的问题。

使用 file 命令我可以看到两个 zip 工具没有生成相同的 zip 版本:

$ file working_with_ios9gm.ipa
working_with_ios9gm.ipa: Zip archive data, at least v1.0 to extract

$ file not_working_with_ios9gm.ipa
not_working_with_ios9gm.ipa: Zip archive data, at least v2.0 to extract

我们发现从 bundle-id 中删除团队前缀有助于某些下载,但对于其他下载,我们必须在 XCode 7.

中重建 .ipa

简而言之,回到 8.1.3 之前的方式。当我使用 'old' 技术重建我们的(非下载)企业应用程序后,它们都开始在 9.0

上以 OTA 方式下载

它有点像 PITA,因为我们现在需要 8.1.3 >= < 9.0 构建以及 >= 9.0 构建,但是嘿嘿,那是 Apple...

我遇到了同样的错误,一直坐到凌晨 4 点。一些睡眠和咖啡,我发现了它: 在 manifest.plist 中,有 3 个资产字典条目: "software-package","full-size-image","display-image".

"full-size-image" 条目在 URL 中有一个逗号而不是一个点: <string>https://www.myserver,com/AppIcon512.png</string>

更改为一个点,现在临时下载又可以工作了:-)

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

我这几天遇到了类似的问题:

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.

我遇到了同样的问题。通过将 bundler-identifier 值设置为 xcode 构建设置中设置的确切值来修复它。

就我而言,我在 ipa 文件名中使用了一个特殊字符。最后我删除了特殊字符 (é) 并再次部署,它工作正常。