iOS应用程序提交 - 存档不包含info.plist

时间:2014-09-30 23:45:20

标签: ios xcode app-store

我正在尝试使用旧应用程序向应用程序商店提交存档。我一直收到两个错误CFBundleShortVersionString键必须在plist中并且更麻烦'包不包含plist'

这两个项目都存在于应用程序中。我将plBundleShortVersionString键添加到plist中,并且plist文件绝对存在或者我永远无法构建它。这是什么问题?

12 个答案:

答案 0 :(得分:4)

我遇到了同样的问题。

我刚刚在Info.plist中添加了一个带有键Bundle versions string, short的新行,其中包含一个值的版本,然后它通过了验证而没有其他错误。

答案 1 :(得分:4)

在我的情况下:第一次尝试上传存档时,我收到此错误消息。但是,我第二次尝试再次编译时,计算机的硬盘空间不足,并且由于该原因,它似乎也未写入plist文件。

释放硬盘空间并再次尝试(也重新启动XCode之后)后,它工作正常。

答案 2 :(得分:3)

在我的情况下,我在info.plist中有可执行文件名的错误/错误条目,我将其替换为$ {EXECUTABLE_NAME}并清除了问题。

答案 3 :(得分:2)

如果上传工具找不到您的.plist文件,那么就不会认为它包含CFBundleShortVersionString键。出于某种原因,应用程序可以在没有任何plist文件的情况下进行编译!

首先,确保您的plist文件存在于项目导航器中,并且它不会以红色突出显示。 (如果它已被删除或在光盘上重命名,无论出于何种原因)

在Xcode的项目中,选择您应用的目标,然后选择"构建设置"标签。搜索" plist"过滤结果。在" Packaging"下,检查" Info.plist"的值。这应该是plist文件的名称,相对于您的Xcode项目。例如," MyApp / MyApp-Info.plist"。如果为空,请将其更改为plist文件的名称并重建。

答案 4 :(得分:1)

我已经"捆绑版本字符串,简短"在我的info.plist中,但问题是"捆绑显示名称"不在info.plist中所以我添加了它并且它有效。

希望这会对你有所帮助。

由于

答案 5 :(得分:1)

如果您的应用中嵌入了应用扩展程序,则必须检查(启用)MainApp-Info.plist的目标成员身份到应用扩展程序以及主应用程序。在Xcode文件检查器中执行此操作。

答案 6 :(得分:1)

Apple已发布a technical document that lists the possible issues that can cause this。截至今天:

  • 缺少CFBundlePackageType
  • 缺少CFBundleShortVersionString
  • 缺少CFBundleVersionString

答案 7 :(得分:0)

我在同样的两条错误消息中遇到了同样的问题。 Info.plist实际上是在包中,但它不包含CFBundleShortVersionString。第一个错误(存档不包含Info.plist)由Apple系统错误地给出。

在我的情况下,我在项目中有几个目标,并且我已将CFBundleShortVersionString添加到错误的目标(不是我用Apple验证的目标)。

要确定,请执行

  • 导出有问题的档案以进行临时分发
  • 解压缩* .ipa文件
  • 检查Payload / your.app / Info.plist文件
  • 检查它是否包含CFBundleShortVersionString

答案 8 :(得分:0)

对我来说,我曾经复制了一个目标,并且构建设置引用了一个不存在的二进制文件" myApp copy"

答案 9 :(得分:0)

我设法从上传者那里得到了有意义的错误:

  1. 安装https://github.com/nomad/shenzhen
  2. 创建IPA:ipa build
  3. 提交IPA:ipa分发:itunesconnect -e -w -a ACCOUNT_NAME -p PASSWORD -f ./AppName.ipa -i APPLE_ID_OF_THE_APP --verbose
  4. 通过这样做,我收到以下错误: 错误ITMS-90183:“无效的捆绑包操作系统类型代码。应用程序包的Info.plist文件中的'捆绑操作系统类型代码'[CFBundlePackageType]的值必须是[APPL]之一。”

    添加了CFBundlePackageType,我的应用程序通过了验证!

    我认为通过这种方式,您可以在提交过程中找到其他问题,并提供更有意义的信息。

答案 10 :(得分:0)

您无需编辑plist文件。只需设置内部版本号(位于目标中的版本号 - 常规下)。这将作为 Bundle Version 传播到plist文件中。

它也发生在我身上,我删除了内部版本号,结果是你的错误。当我只插入1时,问题就解决了。

答案 11 :(得分:0)

确保Info.plist中的Target Membership(在文件检查器中)显示您选择的项目。就我而言,它不是。勾选复选框解决了这两个问题。