上传到 Mac App Store 时出错:ITMS-90239
Error uploading to Mac App Store: ITMS-90239
首先让我说我知道有无数这样的问题,但我相信我已经检查了前面问题中的所有原因并且仍然有问题。
我的应用程序正在使用 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
类型的证书,并且我对 codesign
使用了 Application
证书,对 [=] 使用了 Installer
证书18=].
当我通过 ApplicationLoader 3.1
提交 MyApp.pkg
到 iTunesConnect
时,我得到:
ERROR ITMS-90239: "Invalid Signature. Code object is not signed at
all. The binary at path [MyApp.app/Contents/MacOS/MyApp] contains an
invalid signature. Make sure you have signed your application with a
distribution certificate, not an ad hoc certificate or a development
certificate.
显然我的代码对象已签名,所以问题一定是它认为我使用的是 ad hoc
或 development
证书,但正如您从我使用的命令中看到的那样,不是这样的。
有什么想法吗?
至少在我的情况下,解决方案是不在应用程序包中包含 Entitlements.plist
。在调用 codesign
时仍应指定它,但它不需要出现在包中。
错误消息非常清楚!
首先让我说我知道有无数这样的问题,但我相信我已经检查了前面问题中的所有原因并且仍然有问题。
我的应用程序正在使用 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
类型的证书,并且我对 codesign
使用了 Application
证书,对 [=] 使用了 Installer
证书18=].
当我通过 ApplicationLoader 3.1
提交 MyApp.pkg
到 iTunesConnect
时,我得到:
ERROR ITMS-90239: "Invalid Signature. Code object is not signed at all. The binary at path [MyApp.app/Contents/MacOS/MyApp] contains an invalid signature. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate.
显然我的代码对象已签名,所以问题一定是它认为我使用的是 ad hoc
或 development
证书,但正如您从我使用的命令中看到的那样,不是这样的。
有什么想法吗?
至少在我的情况下,解决方案是不在应用程序包中包含 Entitlements.plist
。在调用 codesign
时仍应指定它,但它不需要出现在包中。
错误消息非常清楚!