如何防止Xcode向我的dylibs添加格式错误的授权?

ibrsph3r  于 2023-02-13  发布在  其他
关注(0)|答案(1)|浏览(124)

我有一个Mac应用程序,当我使用Xcode 13构建它时,它被Mac App Store接受(和我现在的做法完全一样,代码签名设置为自动,使用Xcode中的管理器上传到App Store),但现在使用Xcode 14.2,在将它提交到Mac App Store几分钟后,我会收到一封拒绝邮件,其中有很多“ITMS-90288:无效的代码签吊权利”和“TMS-90286:代码签名权利无效”错误,每个嵌入式动态库两个。

TMS-90288: Invalid Code Signing Entitlements - The entitlements in your app
bundle signature do not match the ones that are contained in the provisioning
profile. According to the provisioning profile, the bundle contains a key value
that is not allowed: '(My team id).' for the key 'com.apple.application-identifier'
in 'Spatterlight.app/Contents/Frameworks/libc64diskimage.dylib'

ITMS-90286: Invalid Code Signing Entitlements - Your application bundle's
signature contains code signing entitlements that are not supported on macOS.
Specifically, value '(My team id).' for key 'com.apple.application-identifier'
in 'Spatterlight.app/Contents/Frameworks/libc64diskimage.dylib' is not supported.
This value should be a string starting with your TEAMID, followed by a dot '.',
followed by the bundle identifier .

https://developer.apple.com/forums/thread/710598上的回复似乎表明dylibs根本不应该有权利,但显然Xcode还是添加了这些权利,这使得应用商店无法接受这款应用。
我试过清理build文件夹,禁用和启用自动签名,上传应用时手动签名(从Xcode中的列表中提供配置文件,而不是自动签名),结果是一样的。
请注意,这里有许多问题看起来可能与此重复(标题通常为“ERROR ITMS-XXXXX:'Invalid Code Signing Entitlements'“,但它们似乎都不是关于这个问题的,这让我觉得我做错了什么。

of1yzvn4

of1yzvn41#

要防止Xcode向dylibs添加格式错误的授权,可以执行以下步骤:
创建自定义权利文件:在Xcode中,进入File〉New〉File并从文件模板列表中选择“Entitlements”,这将在您的项目中创建一个新的.entitlements文件。
指定自定义权利文件:在目标的构建设置中,找到“代码签名权利”设置,并将其设置为自定义权利文件的名称。
查看和编辑权利文件:打开自定义权利文件并查看其内容。确保仅包括必要的权利,并且这些权利的格式正确。
构建并签署您的dylib:构建你的dylib并用你的自定义授权文件签名。你可以通过在终端运行codesign命令并检查输出来验证授权文件是否被正确添加。

相关问题