MacOS altool验证pkg失败:找不到主bundle或缺失CFBundleIdentifier
报错根因
这个错误和你.app包内的Info.plist配置没有关系,问题出在你生成pkg时的安装路径参数不符合App Store提交规则:
- App Store分发的Mac应用强制要求安装到系统全局应用目录
/Applications,你命令里填写的~/Applications是当前用户的私有应用目录,属于App Store校验规则里的非合规安装路径。altool校验时只会扫描全局应用路径下的主bundle,不会检索用户私有目录,因此直接抛出找不到主bundle、缺失CFBundleIdentifier的错误。 - 本地测试安装能正常运行,是因为本地安装流程没有App Store的合规校验逻辑,安装到用户目录的app本身可以正常启动,但完全不符合上架要求。
修复方案
修改pkgbuild命令的--install-location参数,将用户私有路径替换为全局应用路径,重新打包即可:
pkgbuild --install-location /Applications --component ./AppName.app ./PkgFileName.pkg
重新生成pkg后再执行altool校验命令,-21017错误就会消失。
补充校验点
如果修改路径后仍然校验失败,逐一排查以下问题:
- 确认用于打包的
.app是使用App Store发布证书签名、包含正确发布授权配置的Release构建版本,不要使用Debug测试包 - 生成的pkg不要额外添加自定义安装脚本、无关资源文件,App Store提交用的安装包仅需包含
.app本体、配置正确安装路径即可,额外内容会触发校验拦截
内容的提问来源于stack exchange,提问作者Á. Márton
相关产品推荐
相关产品推荐

