Info.plist 表示 Mac 应用程序,但提交 IPA

Posted

技术标签:

【中文标题】Info.plist 表示 Mac 应用程序,但提交 IPA【英文标题】:The Info.plist Indicates a Mac app, but submitting an IPA 【发布时间】:2017-05-10 20:54:18 【问题描述】:

我正在尝试提交 macOS 应用程序,但每当我尝试将程序包上传到 App Store 时都会收到错误消息。我尝试过同时使用 Xcode (8.3.1 (8E1000a)) 和与之捆绑的 Application Loader 版本。两者产生相同的状态。

如果有人知道可能的解决方法 - 我只需要提交这个 Mac 应用程序。谢谢。

【问题讨论】:

Mac 不使用.ipa,因为它适用于ios 我知道 macOS 不使用 IPA,这就是问题所在。我终于能够使用通过 iTunes Connect 链接找到的 Application Loader 3(旧版本)上传包。 我也必须下载以前的版本,它工作正常。您是否有机会使用电子? 就我而言,我在构建设置中设置了TARGETED_DEVICE_FAMILY。删除/用空字符串覆盖以修复。 【参考方案1】:

我与那个错误进行了很多斗争。

Xcode 9.2 我下载了由 Xcode 创建的 .pkg(导出“App Store”)。然后我尝试使用 Application Loader v3.0 提交它并收到奇怪的错误消息:错误 ITMS-90268:“您的应用程序包的 Info.plist 文件中的 'Bundle OS 类型代码' [CFBundlePackageType] 必须是 'APPL'。”在从 .pkg 分析包的 Info.plist 文件时,我发现 Xcode 将 CFBundlePackageType 字符串从 APPL(在 Xcode 项目中指定)更改为 BNDL。请注意,如果我使用 Export “Developer ID”,则字符串如预期的那样是“APPL”。对我来说,这显然是 Xcode 中的一个 BUG。

我解决了这个问题 1- 手动更正 Info.plist 文件 2- 使用 codesign 命令手动重新签名包 3- 使用 productbuild 命令手动重新创建 .pkg 4- 使用 .pkg 手动签名productsign commnand 5- 使用 Application Loader 提交更正后的 .pkg 文件

当然 Xcode 阶段不是必需的,但我想了解问题所在。手动程序就足够了:codesign + productbuild + productsign + Application Loader

【讨论】:

【参考方案2】:

使用 Application Loader 3.0 对我有用。

https://itunesconnect.apple.com/apploader/ApplicationLoader_3.0.dmg

或者您可以尝试将此代码添加到您的 info.plist。来自 Unity 网站:

如果您使用的是 Xcode 8.0+,您还需要将这些字段添加到 info.plist 文件中:

<key>CFBundleSupportedPlatforms</key>

    <array>

        <string>MacOSX</string>

    </array>

这使用更高版本的应用程序加载器启用

【讨论】:

以上是关于Info.plist 表示 Mac 应用程序,但提交 IPA的主要内容,如果未能解决你的问题,请参考以下文章

通过 info.plist 中的 CFBundleDocumentTypes 覆盖 Mac 应用程序文件关联

为 mac 催化剂的 info.plist 文件中的键设置不同的值

为 mac 催化剂的 info.plist 文件中的键设置不同的值

如何将 Info.plist 文件从 mac os 项目转换为 iphone 项目?

Visual Studio for Mac从Info.plist中剥离Bundle显示名称(CFBundleDisplayName)

关于macbook里info.plist文件无法修改怎么办?