【发布时间】:2020-11-13 12:34:40
【问题描述】:
在我的 iOS 应用程序中使用 Google MLKit 框架时遇到问题。我使用 Ad-hoc OTA 分发在选定的测试设备上测试应用程序。在我通过 cocoapods 添加Google MLKit 之前,它工作得很好,我不确定是什么原因。一切都正确编译,存档生成时没有错误,但是当测试人员想要下载应用程序时,它会在“安装”阶段崩溃并显示“无法安装...”警报。
我已经尝试过的几件事:
- 将 pod 嵌入类型从“嵌入并签名”更改为“嵌入但不签名”
- 将
Release方案的 podBuild Settings中的签名从“Apple Developer”更改为“Apple Distribution” - 在 MLKit pod 中启用和禁用 Bitcode
奇怪的是,它可以从我用来直接从 Xcode 测试它的设备上的 Ad-hoc OTA 正确下载(但我在从服务器下载之前删除了该应用程序)但在任何其他设备上都不起作用.
【问题讨论】:
-
苹果有一个叫做“console”的mac应用,不记得有没有默认安装。获取其中一台无法使用的设备,在打开控制台的情况下将其连接到您的 Mac。尝试进行安装,详细的错误应该显示在控制台中。如果它在您的设备上运行而不是在其他人的设备上运行,则可能是某种签名问题,例如您的手机上安装了其他人没有的证书。
-
谢谢@SimonMcLoughlin!这给了我更多的信息。错误说:“无法验证 /var/installd/Library/Caches/com.apple.mobile 的代码签名......。找不到此可执行文件的有效配置文件。”。有没有办法为 Pod 添加我的临时配置文件,以便它们可以在 Ad-hoc 分发中工作?当我在 Xcode 中检查此框架时,它会显示:“Provisioning Profile: None Required”
-
使用 cocoapods 时,您不需要修改任何这些设置。当您包含 cocoapods 时,它会为您提供一个工作区并将您的项目放入其中。您应该在工作区上设置配置文件和团队等。这样做和所有默认的 cocoapods 设置都应该没问题
-
也许可以重新开始你的项目以避免任何冲突的设置,除非这个 pod 有一些独特的东西(应该在他们的设置指南中提到),你不应该用豆荚。使用 cocoapods 查看我的项目,当我选择项目并在常规选项卡中选择主要目标时。我的 cocoapods 框架“Pods_
.framework”设置为“Do Not Embed”。你上面提到你的设置为嵌入,也许这就是问题 -
非常感谢@SimonMcLoughlin,检查“不嵌入”解决了这个问题!您可以输入它作为我的问题的答案,以便我将其标记为已解决,好吗?
标签: ios xcode cocoapods ad-hoc-distribution google-mlkit