我最近更新到Xcode 8并将我的代码转换为Swift 3.现在我的单元测试失败了,可能是他们应该的,但是当尝试再次运行时代码签名失败。
我使用了几个CocoaPods,但它们之前已经有效了。一切都在UnitTesting之外工作。
我到目前为止找到的唯一解决办法是清除 CMD + ALT + K 并重建解决方案。
有没有人对此有永久性的解决方法?
错误
/Users/***/Library/Developer/Xcode/DerivedData/***-bbpdbvqjecpwzvfliyyqcnarjvua/Build/Products/Pro Debug/***.app: replacing existing signature
/Users/***/Library/Developer/Xcode/DerivedData/***-bbpdbvqjecpwzvfliyyqcnarjvua/Build/Products/Pro Debug/***.app: code object is not signed at all
In subcomponent: /Users/***/Library/Developer/Xcode/DerivedData/***-bbpdbvqjecpwzvfliyyqcnarjvua/Build/Products/Pro Debug/***.app/Contents/PlugIns/***Tests.xctest
Command /usr/bin/codesign failed with exit code 1
编辑 :当运行单元测试时,代码签名都会在第二次运行时失败。基本上我必须在每次测试运行之前清理构建。
答案 0 :(得分:1)
答案 1 :(得分:0)
我的解决方案是转到工作区中的Pods项目,然后打开pod目标上的代码签名。
这或者从Swift 3迁移中打开了一些缺少的设置,或者这是实际的解决方案。
答案 2 :(得分:0)
根据上面的评论,我想在这里分享其他解决方案,该解决方案似乎主要影响具有以下症状的Mac OS应用程序项目(非iOS):测试目标的代码签名失败,当应用程序目标代码签名正常时,同时为两者启用了自动代码签名。
其他解决方案均无效-我的问题似乎根本不涉及codesign配置。在非UI测试目标中包含UI类以及对应用程序目标的依赖会以某种方式触发代码签名失败。
在这种情况下的解决方法是:
这两个步骤使我能够再次运行非UI单元测试,而不会在Xcode 11中出现代码签名错误。
答案 3 :(得分:0)
在 .xcodeproj 中保持一致我认为是正确的答案。对于我的项目,这是一个 macOS 项目,在 Xcode 12 上编译为 10.15+,当我创建一个新的测试目标时,它选中了 Automatically Manage Signing
,即使我的其他方案没有被选中,我都是手动处理的。
所以我取消选中 Automatically Manage Signing
,然后在测试目标的 Build Settings -> Code Signing Identity
下,从下拉列表中选择 Other
。然后确保删除此 -
虚线。从那里它成功地为我构建。