我正试图通过Xcode Organizer将macOS二进制文件上传到Mac应用商店。
我收到一个"上传失败"的错误消息:
应用商店连接操作错误
错误ITMS-90276:缺少捆绑包标识符。应用程序捆绑包包含一个工具或框架工作流[
com.company.AppName.pkg/Payload/AppName.app/Contents/Resources/Resources/Scripts/workflow.workflow
],该工作流在其Info.plist文件中缺少捆绑包标识符。
我的应用程序捆绑包包含AppleScript.scpt
、ShellScript.sh
和workflow.workflow
脚本文件。
什么样的脚本需要Info.plist和Bundle标识符进行签名?我怎样才能克服这个错误?
Apple要求所有捆绑的可执行文件都是代码签名的
对什么进行代码签名
您签署应用程序的所有单独组件,不留任何空白,包括:
嵌套代码首先,您递归地对应用程序所依赖的所有助手、工具、库、框架和其他组件进行签名,这些组件与应用程序捆绑在一起。
https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html#//apple_ref/doc/uid/TP40005929-CH4-SW2
在这种情况下,workflow.workflow
Automator工作流捆绑包的代码签名失败,因为它在现有的Info.plist中缺少捆绑包标识符。
我添加了行:
<key>CFBundleIdentifier</key>
<string>com.company.AppName.SampleWorkflow</string>
添加BundleID后,Xcode Organizer会签署并上传到Mac应用商店,不会出现任何问题。