问题描述
Xcode 12 在构建的所有步骤结束后执行二进制签名,包括任何自定义的构建后步骤。
但是,我需要在签名后运行要执行的脚本(例如,用于将已签名的二进制文件复制到其他地方 - 但也用于其他事情)。
在阅读了一些 StackOverflow 问题和回复后,我尝试了以下(单独):
- 创建一个包含两个子目标的聚合目标,该目标 (1) 执行构建和签名,(2) 运行最终的后期构建。
- 使用方案的构建后操作来运行最终的后构建。
两者都不是开箱即用的,问题是:
- 聚合目标解决方案(如果有效):意味着我必须为我的许多项目创建和维护这样的目标。
- Post-action:不会出现在构建记录中,这使得检测错误非常麻烦。此外,后期操作中的失败不会使构建失败 - 这是绝对禁忌。
- 在这两种情况下,自定义用户定义都不会传递到任何步骤中,这使得我的脚本毫无用处,因为它严重依赖于这些定义。
对于看似微不足道的签名后操作请求,有什么合适的解决方案吗?
解决方法
我找到的解决方法是:作为构建后的步骤,将二进制文件复制到别处,对其执行任何必需的操作,然后手动对其进行签名。
Xcode 会对我没有用的原始二进制文件进行签名。