让我首先说我知道有无数这样的问题,但我相信我已经检查了之前问题中的所有原因,但仍然有问题。
我的申请正在使用Qt
所以我的提交过程不会经过Xcode
。过去,我在提交申请时没有遇到太多麻烦。
这是我codesign
命令:
codesign --deep -f -s '3rd Party Mac Developer Application: Me' -v --entitlements Entitlements.plist MyApp.app
这似乎有效,如果我使用codesign
来验证我得到:
MyApp.app: valid on disk
MyApp.app: satisfies its Designated Requirement
接下来,我使用productbuild
生成我的.pkg
文件,以便通过Application Loader
提交。
productbuild --component MyApp.app /Applications --sign '3rd Party Mac Developer Installer: Me' MyApp.pkg
请注意,我在两个命令中使用3rd Party Mac Developer
类型证书,并且将Application
证书用于codesign
,Installer
证书用于productbuild
。
当我通过ApplicationLoader 3.1
向iTunesConnect
提交MyApp.pkg
时,我得到:
错误 ITMS-90239:"签名无效。代码对象未在 都。路径 [MyApp.app/Contents/MacOS/MyApp] 处的二进制文件包含一个 签名无效。确保已使用 分发证书,而不是临时证书或开发 证书。
显然,我的代码对象已签名,因此问题一定是它认为我正在使用ad hoc
或development
证书,但正如您从我使用的命令中看到的那样,情况并非如此。
有什么想法吗?
至少在我的情况下,解决方案是不Entitlements.plist
包含在应用程序包中。调用codesign
时仍应指定它,但它不必存在于捆绑包中。
错误消息非常清楚地表明了这一点!