我最近升级到 Xcode 10 并开始更新我们的应用程序以切换到 4.2。经过一天左右的时间重建第 3 方框架并添加解决各种问题的方法后,我能够在新模拟器上运行我们的应用程序。
但是,当我尝试在我的个人手机(运行 iOS 12.0 GM)上运行时,我在安装应用程序时遇到了标题中所述的错误。
我知道在 SO 和 Internet 上有一个 lot of already answered questions 关于这个主题,但是我无法让这些中的任何一个工作。
它已经阻止了我大约一天半,所以我想知道是否有人对如何缓解这种情况有任何见解。
以下是我目前采取的尚未奏效的步骤(也许它们将来会为其他人奏效!):
- 清除派生数据
- 删除并重新下载我计算机上的所有配置文件
- 清理构建目录(cmd + k & cmd + shft + k)
- 从我的手机中删除原始应用
- 重新启动 Xcode(版本 10.0 (10A254a) [the GM])
- 重新启动我的 Mac(运行 macOS High Sierra 的 Macbook Pro 2018)
- 重新启动我的设备(运行 iOS 12.0 GM 的 iPhone X)
- 上述的多种组合,包括同时出现
- 在 developer.apple.com 上为应用程序重新生成配置文件(我们使用手动签名)
- 在 developer.apple.com 上删除和重新创建应用的配置文件
- 向 Tim Cook 献祭了一只山羊
- 确保签名证书与配置文件匹配
- 从我的计算机中删除旧版本的 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 过渡时启用的一些奇怪的设置中。将开始一个一个地删除第 3 方框架,直到我可以编译它。
更新 2:仍然没有运气。尝试清除大多数框架,但什么也没有。以下是设备日志,想知道 Skipping a profile because of error 0xe8008012
是否与此有关:
https://gist.github.com/joshuawright11/6889ce1a0872262df77f97d63830baa5
更新 3:所以我能够安装它,方法是在构建阶段注释掉 carthage copy-frameworks 脚本(并在执行此操作后清理/删除派生数据)。当然,这意味着它会在启动时崩溃,因为它缺少这些框架,但这确实意味着问题出在 carthage 或其中一个链接的 carthage 框架上。不是我们的签名证书、配置文件或代码库。将尝试一个一个地删除这些框架,我将在此处更新。
最终更新 终于弄明白了。该解决方案被证明是非常小众的(见下文),但希望这个问题可以作为互联网上与该问题相关的每个解决方案的汇编哈哈。
最佳答案
想通了:
我在迦太基遇到了这个问题:https://github.com/Carthage/Carthage/issues/2472并在我将内容传输到 xcode 10 时使用他们建议的设置 EXPANDED_CODE_SIGN_IDENTITY='' 的解决方案。
显然这一行是导致迦太基在复制框架时伤害自己,导致错误的原因。我下载了最新版本的 carthage 来解决这个问题,然后删除了 EXPANDED_CODE_SIGN_IDENTITY=''
行,一切正常。真是浪费时间。
关于ios - 应用程序安装失败。找不到代码签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52373664/