我正在尝试使用旧应用程序向应用程序商店提交存档。我一直收到两个错误CFBundleShortVersionString键必须在plist中并且更麻烦'包不包含plist'
这两个项目都存在于应用程序中。我将plBundleShortVersionString键添加到plist中,并且plist文件绝对存在或者我永远无法构建它。这是什么问题?
答案 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。截至今天:
答案 7 :(得分:0)
我在同样的两条错误消息中遇到了同样的问题。 Info.plist实际上是在包中,但它不包含CFBundleShortVersionString。第一个错误(存档不包含Info.plist)由Apple系统错误地给出。
在我的情况下,我在项目中有几个目标,并且我已将CFBundleShortVersionString添加到错误的目标(不是我用Apple验证的目标)。
要确定,请执行
答案 8 :(得分:0)
对我来说,我曾经复制了一个目标,并且构建设置引用了一个不存在的二进制文件" myApp copy"
答案 9 :(得分:0)
我设法从上传者那里得到了有意义的错误:
通过这样做,我收到以下错误: 错误ITMS-90183:“无效的捆绑包操作系统类型代码。应用程序包的Info.plist文件中的'捆绑操作系统类型代码'[CFBundlePackageType]的值必须是[APPL]之一。”
添加了CFBundlePackageType,我的应用程序通过了验证!
我认为通过这种方式,您可以在提交过程中找到其他问题,并提供更有意义的信息。
答案 10 :(得分:0)
您无需编辑plist文件。只需设置内部版本号(位于目标中的版本号 - 常规下)。这将作为 Bundle Version 传播到plist文件中。
它也发生在我身上,我删除了内部版本号,结果是你的错误。当我只插入1时,问题就解决了。
答案 11 :(得分:0)
确保Info.plist中的Target Membership
(在文件检查器中)显示您选择的项目。就我而言,它不是。勾选复选框解决了这两个问题。