iOS应用提交-存档文件不包含info.plist

15

我正在尝试使用一个旧的应用程序提交存档到应用商店。但是,我一直收到两个错误提示:必须在 plist 中包含 CFBundleShortVersionString 键,更麻烦的是“该软件包不包含 plist”。

这些项目都存在于应用程序中。我已经将 CFBundleShortVersionString 键添加到了 plist 中,并且 plist 文件肯定存在,否则我就无法构建它。那么问题出在哪里呢?


在您的目标的“构建设置”中,在“Info.plist文件”部分中看到了什么? - Austen Chongpison
@aus10c这是plist文件的名称和其他一些设置。我在寻找什么? - JMD
我正想说和ev0lution写的一样的话 :) - Austen Chongpison
12个回答

4
在我的情况下:第一次尝试上传存档时,我遇到了这个错误消息。然而第二次尝试编译时,电脑的硬盘空间已满,似乎由于这个原因,第一次并没有将内容写入 plist 文件。在释放硬盘空间后,重新尝试(同时重新启动 XCode),问题就得到了解决。

1
这是一个有趣的解决方案。以防万一,及时清除 Xcode 缓存时间。rm -rf ~/Library/Developer/Xcode/DerivedData 这个命令为我节省了 40GB 的空间。 - bencagri

4

我曾遇到同样的问题。

我只需在Info.plist中添加一个带有版本值的键为Bundle versions string, short的新行,然后它便不再出现其他错误,通过了验证。


3

在我的情况下,info.plist文件中的可执行文件名称条目有误,我将其替换为${EXECUTABLE_NAME},问题得以解决。


2
如果上传工具找不到你的.plist文件,那么就会导致它认为该文件中不包含CFBundleShortVersionString键。由于某种原因,应用程序甚至可以在没有任何plist文件的情况下编译!
首先,请确保您的plist文件存在于项目导航器中,并且未被突出显示为红色。(以防它已被删除或因某种原因重命名)
在Xcode中选择您的应用程序目标,然后选择“Build Settings”选项卡。搜索“plist”以过滤结果。在“Packaging”下,检查“Info.plist”的值。这应该是相对于您的Xcode项目的plist文件的名称。例如,“MyApp / MyApp-Info.plist”。如果为空,请将其更改为您的plist文件的名称并重新构建。

"Packaging"下的值为'appName-plist'。没有路径。然而,plist位于项目的某些子目录中。该路径为"MyApp/MyApp-Info.plist"。因此,我将添加第一部分并查看是否有效。 - JMD
如果它位于子目录中(实际目录,而不仅仅是Xcode组),那么我认为它们应该在路径前加上前缀。我不太确定Xcode当前的做法,但它曾经在一个AppName文件夹内创建plist文件,并将其包含在Info.plist设置中。我刚刚测试了一下,没有文件夹名称,就找不到plist文件。 - ttarik
我以为它在子目录中,但实际上它只是一个 Xcode 组。 - JMD
@JMD 这不太好!你尝试过清理项目吗?Product -> Clean,然后按住 Option 键获取 Product -> Clean Build Folder。 - ttarik
这个应用程序非常陈旧,因此我通过将新创建的应用程序中的一个新的plist文件复制到项目中来修复了它。 - JMD
显示剩余2条评论

1
我已经在我的info.plist中添加了“Bundle versions string, short”,但对我来说问题是“Bundle Display Name”不在info.plist中,所以我添加了它并且它起作用了。
希望这能帮助你。
谢谢。

1

当您在应用程序中嵌入应用程序扩展时,您必须检查(启用)MainApp-Info.plist的目标成员身份以将其应用于这些应用程序扩展以及主应用程序。 在Xcode文件检查器中进行操作。


1

0

您不需要编辑plist文件。只需在Targets - General中设置构建号(位于版本号下方)。这将传播到plist文件中作为Bundle Version

我也遇到过这种情况,当我删除构建号时,结果就是您所遇到的错误。当我插入1时,问题得到了解决。


0

对我来说,我之前复制了一个目标,并且编译设置引用了一个不存在的二进制文件 "myApp copy"


0

我曾经遇到过同样的问题,出现了相同的两个错误信息。实际上,Info.plist 文件确实在包中,但它并没有包含 CFBundleShortVersionString。第一个错误(Archive does not contain Info.plist)是由苹果系统错误地给出的。

在我的情况下,项目中有几个目标,并且我将 CFBundleShortVersionString 添加到了错误的目标上(而不是我正在与苹果验证的目标)。

为了确保万无一失,请执行以下操作:

  • 将相关档案导出以进行特定分发
  • 解压缩 *.ipa 文件
  • 检查 Payload/your.app/Info.plist 文件
  • 检查其中是否包含 CFBundleShortVersionString

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接