在 Xcode 5 中禁用基本本地化后找不到 MainMenu.xib

Posted

技术标签:

【中文标题】在 Xcode 5 中禁用基本本地化后找不到 MainMenu.xib【英文标题】:MainMenu.xib not found after base localization was disabled in Xcode 5 【发布时间】:2014-02-04 09:11:08 【问题描述】:

我正在开发一个应该在 10.7 上受支持的 Mac OS 应用程序。该项目是在 Xcode 5 下创建的,在 Mavericks 上运行,最初启用了基本本地化。

我现在已经删除了基本本地化,以便可以支持 10.7,但由于 Xcode 生成以下错误,因此无法再让应用程序在 10.7 或 10.9 上运行:

Unable to load nib file: MainMenu.xib, exiting

所以我通过File - New File - MainMenu 添加了一个新的 MainMenu.xib 文件。我连接了 AppDelegate 对象并设置了代表。

回到项目文件,我确定了以下几点:

MainMenu.xib 是构建目标的Copy Bundle Resources 构建阶段的一部分。 确保在目标General - Main Interface 设置中选择了MainMenu.xibFile Inspector 中检查MainMenu.xib 并看到它已本地化为English,并且在其旁边选中了一个复选标记。

我想不出还应该设置什么。我什至创建了一个新的空项目进行测试。有了这个,我除了删除基本本地化之外没有做任何更改,然后尝试重新添加新的 MainMenu.xib 并按照上述步骤进行操作,但无济于事。在 Xcode 中启动时,该构建也会失败并出现相同的错误。

我什至尝试过使用不同名称的不同 XIB 文件(但仍将一个设置为 MainMenu),但所做的只是更改错误消息以反映我在设置中指定的新 XIB 名称。

虽然我确信基本本地化很棒,但我希望支持 10.7 用户,所以我不认为保持基本本地化对我来说是一种选择。

任何帮助(即使它指出了显而易见的)将不胜感激。

【问题讨论】:

在您的 Apps Info.plist 文件(或 Xcode 中的 Info 设置)中,Localization native development region 的值是多少?这应该是您的母语。另外,您现在的 XIB 的文件布局是什么?您的 MainMenu.xib 是在基本 Resources 文件夹中还是在 .lproj 文件夹中? @gaige:Localization Native Development Region 设置为 en,这对我来说是正确的。我的MainMenu.xib 文件位于en.lproj 文件夹中,我使用的其他几个XIB 文件位于更高的一个目录(Xcode 默认放置所有源文件)。我没有名为Resources 的文件夹。使用 Xcode 中的文件检查器,我检查了我的项目是否正确引用了 MainMenu.xib 文件。仍然不知所措。 【参考方案1】:

我想我终于找到了罪魁祸首。当base 本地化被删除时,需要在目标中创建并选择一个新的MainMenu XIB 文件。在Targets - Deployment Info - Main Interface 下,下拉菜单列出了项目中所有可用的XIB 文件,您可以指定为Main Interface。自然,我选择了我新创建的MainMenu.xib 文件,这就是问题开始的地方。

在比较 Xcode 对 Project Settings 文件所做的更改后,我注意到在工作副本中,Main Interface 键被设置为 MainMenu,而在非工作副本中,键被设置到MainMenu.xib,这正是下拉菜单中的内容。

Targets - Deployment Info - Main Interface 组合框中手动删除.xib 扩展似乎又可以正常工作了。请注意,首先添加.xib 后缀的是组合框。

这里可能还有更多的作用,但这个简单的改变导致程序现在可以正常启动。

【讨论】:

以上是关于在 Xcode 5 中禁用基本本地化后找不到 MainMenu.xib的主要内容,如果未能解决你的问题,请参考以下文章

警告:更新到 xcode 7 后找不到选项的目录

安装新的 xcode 4.3 后找不到 stdio.h

构建错误:升级到 Xcode 10 后找不到 FBSDKShareKit.h 文件

使用 Xcode 5 禁用英语本地化

ld:通过 cocoapods 从 4.x.x 升级到 5.x.x firebase 后找不到框架 FirebaseAnalytics

Symfony 4 部署后找不到翻译文件