【发布时间】:2019-02-21 17:28:14
【问题描述】:
我最近升级到 Xcode 10 并开始更新我们的应用程序以切换 4.2 在重建 3rd 方框架并添加解决各种问题的一天左右之后,我能够在新的模拟器上运行我们的应用程序。
但是,当我尝试在我的个人手机(运行 iOS 12.0 GM)上运行时,我在安装应用程序时遇到了错误,如标题中所述。
我知道在 SO 和 Internet 上有关于此主题的 lot 和 already answered questions,但是我无法让其中任何一个工作。
它已经阻止了我大约一天半,所以我想知道是否有人对如何缓解这种情况有任何见解。
以下是我迄今为止采取的尚未奏效的步骤(也许他们将来会为其他人工作!):
- 清除派生数据
- 删除并重新下载我计算机上的所有配置文件
- 清理构建目录(cmd + k & cmd + shft + k)
- 从我的手机中删除原始应用程序
- 重新启动 Xcode(版本 10.0 (10A254a) [GM])
- 重新启动我的 Mac(运行 macOS High Sierra 的 Macbook Pro 2018)
- 重新启动我的设备(运行 iOS 12.0 GM 的 iPhone X)
- 上述多种组合,包括一次全部组合
- 为 developer.apple.com 上的应用重新生成配置文件(我们使用手动签名)
- 为 developer.apple.com 上的应用删除和重新创建配置文件
- 为蒂姆·库克献祭了一只山羊
- 确保签名证书与配置文件匹配
- 从我的计算机中删除旧版本的 Xcode 并确保命令行工具在 xcode 10.0 gm 版本上
- 删除并重新安装 Xcode 10.0 GM
- 确保所有复制的框架都检查了
code sign on copy - 使用 swift 4.2 编译器通过 Carthage 重建所有框架(请记住,这一切都适用于模拟器)。
- Ensured code signing required is set to YES in the SDKSettings.plist
- 删除了我计算机上的所有旧签名证书
- 在 developer.apple.com 上删除并重新创建了证书
- 已将我的设备删除并重新添加到 developer.apple.com
- 将代码签名从手动更改为自动
- 确保签名证书是
Developer而不是Distribution
任何帮助将不胜感激:)
更新:我尝试在新机器上重新下载和重建,但出现了同样的问题。有趣的是,我可以很好地归档和验证应用程序。
还尝试使用相同的捆绑 ID 签署一个空项目,并且效果很好。所以问题出在我们的第 3 方框架中,或者在从 Xcode 9.4 转换时启用的一些奇怪的设置中。将开始一一删除 3rd 方框架,直到我可以编译为止。
更新 2:仍然没有运气。尝试清除大多数框架,但什么也没有。以下是设备日志,想知道Skipping a profile because of error 0xe8008012是否与它有关:
https://gist.github.com/joshuawright11/6889ce1a0872262df77f97d63830baa5
更新 3:所以我能够通过在构建阶段注释掉 carthage copy-frameworks 脚本(并在这样做之后清理/核对派生数据)来安装它。当然,这意味着它会在启动时崩溃,因为它缺少这些框架,但这确实意味着问题出在 carthage 或链接的 carthage 框架之一。不是我们的签名证书、配置文件或代码库。打算一一删除这些框架,我会在这里更新。
最终更新终于弄明白了。结果证明这个解决方案非常小众(见下文),但希望这个问题可以作为互联网上与此问题相关的每个解决方案的汇编哈哈。
【问题讨论】:
-
您可以创建新项目,设置损坏项目的捆绑包 ID 并配置您的签名身份,然后尝试在设备上运行它。如果它会运行 - 问题很可能在框架中。顺便说一句,您是否尝试在另一台机器上克隆您的存储库?
-
好主意,我会尝试并在稍后报告
-
@lobstah 知道如何查看可能导致此问题的框架吗?
-
首先,我会尝试在另一台机器上启动您的应用程序 - 这是找出问题所在(在项目本身或您的环境中)的最简单方法。它会为你节省很多时间。如果它会在另一台机器上运行,那么问题出在环境中。在这种情况下,检查你的依赖管理器(Carthage)——清理它的缓存,更新 Carthage,删除项目中除了 Cartfile 之外的所有内容,然后执行
carthage update。如果项目本身的问题 - 你需要审查你的框架。如果只是审查框架没有运气 - 删除它们并尝试运行项目 -
@Josh,我找到了导致问题的原因,但仍然不确定为什么会出现错误。我在嵌入式框架之后的构建阶段中有这个运行脚本:ikennd.ac/blog/2015/02/… 如果我删除它安装在设备上的那个脚本。
标签: ios xcode code-signing xcode10 ios12