pup*_*eno 16 macos xcode cocoa signing certificate
编译我的应用程序时,我收到以下错误:
CodeSign /Users/pupeno/Library/Developer/Xcode/DerivedData/ProjectX-cynmgyozflnwbpamwnpsnhgshuyq/Build/Products/Debug/Project\ X.app
cd /Users/pupeno/Projects/ProjectX
export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
Signing Identity: "Mac Developer: José Fernández (G4PM7K38JH)"
/usr/bin/codesign --force --sign A21FB31766DDCBB28FBB4E4DD86E3743024A45F3 --entitlements /Users/pupeno/Library/Developer/Xcode/DerivedData/ProjectX-cynmgyozflnwbpamwnpsnhgshuyq/Build/Intermediates/ProjectX.build/Debug/App.build/Project\ X.app.xcent --requirements =designated\ =>\ anchor\ apple\ generic\ \ and\ identifier\ \"$self.identifier\"\ and\ ((cert\ leaf[field.1.2.840.113635.100.6.1.9]\ exists)\ or\ (\ certificate\ 1[field.1.2.840.113635.100.6.2.6]\ exists\ and\ certificate\ leaf[field.1.2.840.113635.100.6.1.13]\ exists\ \ and\ certificate\ leaf[subject.OU]\ =\ \"XHT4M2DATL\"\ )) /Users/pupeno/Library/Developer/Xcode/DerivedData/ProjectX-cynmgyozflnwbpamwnpsnhgshuyq/Build/Products/Debug/Project\ X.app
/Users/pupeno/Library/Developer/Xcode/DerivedData/ProjectX-cynmgyozflnwbpamwnpsnhgshuyq/Build/Products/Debug/Project X.app: code object is not signed at all
In subcomponent: /Users/pupeno/Library/Developer/Xcode/DerivedData/ProjectX-cynmgyozflnwbpamwnpsnhgshuyq/Build/Products/Debug/Project X.app/Contents/Frameworks/Paddle.framework
Command /usr/bin/codesign failed with exit code 1
Run Code Online (Sandbox Code Playgroud)
我正在使用两个框架,Paddle和Sparkle,它们被配置为在副本上签名:

寻找这个问题的解决方案我找到了许多建议 - 一个标志,这是苹果公司正式劝阻(正确使用codesign工具的--deep选项).
我还发现了Code Signing和Mavericks这篇文章,它还解释了使用--deep是错误的并提供了另一种选择:使用脚本为每个框架生成签名.我认为这是Xcode可以选择在复制上签名之前需要的东西,但无论如何我试了一下.它没有任何区别,我仍然得到同样的错误.查看日志,捆绑包将使用"登录复制"选项进行签名,因此,添加该脚本会导致它们签署两次.
我的代码签名标识为整个项目配置如下,每个目标只是继承它:

我知道这不是Release的合适签名,但是现在,我们只是想让它在本地构建和运行.
有什么想法有什么不对吗?任何想法如何解决它?我明白那个
Bap*_*teB 38
对我来说,我必须转到项目构建设置并将其他代码签名标志设置为--deep. 问题是我在项目中的框架没有签名。
小智 11
对于所有仍然面临此问题的人,请确保构建设置中的“产品名称”与 info.plist 中设置的“可执行文件”匹配。
通常,当我们复制现有代码时,我们只需更改产品名称或可执行文件,这种不匹配就会产生问题。

Bry*_*yan 10
添加另一件事来检查是否出现此错误:
在Build Phases项目应用程序目标的窗格中,确保该Embed Frameworks阶段位于该Link Binary With Libraries阶段之前:
我正在运行 macOS 11.2.3 和 Xcode 12.4。
代码签名仍然如此脆弱和破碎,这真是太荒谬了。现在是 2021 年,仅这篇文章就有 87 个不同的“修复”来解决同样该死的错误消息。没有理由像这样浪费开发人员的时间。修复你的 IDE,Apple。
小智 5
我承认代码对我来说仍然是一门黑色艺术,但在 Xcode 6 中,我发现删除我所有的签名脚本(在 Xcode 5 中是必需的,以及--deep标志)和额外的签名标志,并且只使用“codesign on构建的框架的复制文件阶段中的“复制”选项对我来说完美无缺。
| 归档时间: |
|
| 查看次数: |
26124 次 |
| 最近记录: |