错误 ITMS-90259:"错误的bundle可执行文件。您必须在bundle的信息属性列表文件中包含有效的 CFBundleExecutable 密钥



我正在开发一款多平台iOS和Mac应用。当我尝试存档并分发到app Store时,我遇到了这个问题:

ERROR ITMS-90259: "Bad Bundle Executable。您必须在包的信息属性列表文件中包含有效的CFBundleExecutable键。">

  • 已验证信息。Mac目标的plist有一个CFBundleExecutable
  • 试过Xcode 12 &13
  • 尝试使用App Transporter
  • 使用Xcode 13 RC,让它自动生成Info.plist我已经尝试了我能在网上找到的所有方法-没有多少-但我还是不能成功上传。

然而,我能够在一个完全空的项目中复制这个问题。没有依赖,没有代码,什么都没有。项目存档成功,但上传失败。

任何帮助都会很感激。我已经花了两天时间在这件事上了。

失败的示例项目:https://drive.google.com/file/d/1qUN5lHEWNyNHQV54fYPXMeRsuO-cpHqW/view?usp=sharing

我们有两个问题导致了这个问题,即当我们将Mac版本上传到iTunes时它将失败。在第一个问题中,我们包含了一个包(来自Steam),它拥有自己的plist和post - build脚本。com.rlabrecque.steamworks.net/Editor/RedistCopy.cs -构建脚本com.rlabrecque.steamworks.net/Plugins/steam_api.bundle.meta -文件夹与插件和plist

我们重命名了post build脚本并删除了插件文件夹,但不能100%确定是否需要重命名。

然后,我们在自己的后构建脚本中有这个导致问题,所以我们也删除了它。rootDict.SetString("CFBundleExecutable", "${EXECUTABLE_NAME}");

然后成功了!同样值得注意的是,我们相信CFBundleExecutable实际上并没有最终匹配文件名,例如,生成的文件是a.pkg, plist说:

<key>CFBundleExecutable</key>
<string>b</string>

但iTunes似乎对此没有问题。我们使用Unity,似乎在列表中字符串被设置为"产品名称"。(编辑比;项目设置>播放器,在顶部,"产品名称")。

我们也不需要使用Transporter来上传。

相关内容

最新更新