当我运行 XCode 'Archive' 命令时,我收到七条关于丢失文件的错误消息。大多数是用于应该存在的启动文件,但其中一个包含拼写错误的“Portait”。
warning: Icon specified in the Info.plist not found under the top level app wrapper: Default-Portait~ipad.png (-19007)
Unable to validate your application. - (null)
几个月前我确实错误地输入了那个文件名,但我以为我把它从项目中删除了。这是我的应用程序的“Info.plist”文件。请注意,除了Icon file之外,它没有图标条目。
这是我的目标摘要。我已经指定了启动图像。
当我查看新创建的存档中的“Info.plist”文件时,它包含一个完整的图标列表。我在这里展示了Icon files (iOS 5),但该列表在Icon files下重复。“Portait”拼写错误在那里,还有几个重复。这是一团糟。
我知道 XCode 会自动为“Info.plist”生成一些内容,但是这个长长的文件名列表来自哪里?而且,我怎样才能防止它们被生成?
我试过的
- 我已经运行了“清理”并删除了我的 XCode 的“DerivedData”目录,但警告消息和虚假的 Info.plist 条目仍然存在。
- 我检查了本地化的“InfoPlist.strings”,但它只包含
/* Localized versions of Info.plist keys */
. - 我查看了我的“.xcodeproj”包的内容,但没有发现它试图找到的文件。
- 我尝试将一个空的图标文件数组添加到我的“Info.plist”中,或者添加我想要的确切文件的名称。当我存档时,错误和重复的名称仍会附加到末尾。
- 我尝试复制目标(与往常一样,复制了现有
Info.plist
文件)。归档新目标会导致同样的错误。 - 构建设置预处理 Info.plist 文件已关闭。我试着打开它;它没有任何区别。
- 我尝试关闭Info.Plist File 中的 Build Setting Expand Build Settings。它告诉我正在尝试运行文件'$ {EXECUTABLE_NAME}'。我去了我的“Info.plist”并将可执行文件从“${EXECUTABLE_NAME}”更改为硬编码文本值,并手动替换了其他“${...}”条目。尽管如此,它仍坚持尝试运行“${EXECUTABLE_NAME}”。可能添加到图标设置的任何内容也会覆盖我的可执行文件名称。
我宁愿不做的事
我可以通过将文件添加到项目中期望的名称来抑制警告,包括Default-Portait~ipad.png
. 我真的宁愿首先停止将这些名称添加到“Info.plist”中,因为这些重复的条目可能会导致其他问题。
其他详情
该项目创建于 2011 年初,并已通过更新版本的 XCode 逐步迁移。它目前在 XCode 版本 4.3.2 (4E2002) 中打开。