我们有 3 个企业 iOS 应用程序,它们通过 MDM (Symantec App Center) 分发。这些应用程序在应用程序中心配置了安全策略,这意味着他们在分发该应用程序之前使用包装器库重新包装该应用程序。这在 iOS 8 发布之前一直运行良好。当您尝试在 iOS 8 上运行应用程序时,它们会立即崩溃。如果我在 MDM 工具之外将应用程序直接部署到同一台 iPad,它们运行良好。
日志显示
Dyld 错误信息: 库未加载:@executable_path/nukonize.dylib
(Nukona 是 Symantec App Center 的原始名称,该库用于他们的应用程序包装器)。
注意事项: - 尝试使用其他 MDM (AirWatch),我发现了同样的问题。 - 供应商使用他们的企业分发证书辞去应用程序,他们没有看到问题。 - 我用我的个人开发者分发证书签署了应用程序,我们没有发现问题。 - 我们将 MDM 解决方案之外的应用程序部署到同一台 iPad,我们没有发现问题。 - 我们通过 MDM 部署到 iOS 6.x 或 7.x iPad,我们没有发现问题。
为了排除代码问题,我构建了一个 Hello World 应用程序,它除了在屏幕上显示 Hello World 之外什么都不做。通过 MDM 部署它,它有同样的问题。
一切都表明我们的分发证书/帐户存在问题,但我实在想不出那可能是什么。非常感谢任何有助于解决此问题的建议。
最佳答案
该应用程序可以正常安装。直到上线之后,问题才显现出来。启动屏幕显示非常短暂,然后应用程序崩溃。
通过与 AirWatch 合作,我们找到了该问题的解决方案。我们的签名证书是在 iOS 8 发布之前创建的,并且缺少一个 OU 元素,该元素出现在 iOS 8 之后创建的证书上。显然,这是在包装过程中使用的。
我们必须创建一个新的分发证书并用它签署应用程序。一旦我们正确地安装了应用程序。
因此,如果您遇到类似问题,请检查您的分发证书以查看其上是否有 OU。如果没有,您将必须创建一个新的。
关于ios - 将 MDM 中的应用程序分发到 iOS 8 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28032622/