2014-01-17 35 views
1

我正在为10.6及更新版本的OS创建一个Cocoa应用程序。我在Xcode 5(10.9)中创建了一个全新的基于文档的应用程序,并更改了两个设置使其与10.6兼容:我将部署目标更改为10.6,并在MainMenu.xib和xxDocument.xib上关闭了自动布局默认笔尖包含在基于文档的模板中。我归档了我的应用程序(无需代码签名),添加了其他代码并在四个不同的操作系统上进行了测试。结果如下:
OS X 10.9:按预期启动并显示新文档窗口(“您的文档内容”)。
OS X 10.8:按预期启动;与10.9相同。
OS X 10.7:无法启动;控制台应用程序产生“应用程序名称:无法加载nib文件:MainMenu,退出”。
OSX 10.6:无法启动;控制台产量与10.7相同。Xcode 5可可应用程序无法在OS X上加载Nib 10.6

对于我的应用程序的行为,我感到非常困惑。我绝对没有将代码添加到Xcode为我创建的基于模板文档的应用程序;我只是改变了所需的设置,使其兼容10.6及以上。我也尝试在构建设置中关闭ARC,这根本没有任何区别。我查了苹果文档,还搜索了关于我收到的控制台错误的其他问题,但没有一个与此问题有关。我很惊讶10.7展示了这种行为,因为10.7与ARC兼容。我将不胜感激关于如何解决这个问题的任何建议。我会怀疑对默认模板有一个简单的修改,因为Apple可能不会提供需要大量修改才能使其工作的模板。谢谢。

更新: 如上所述,我关闭了Xcode中的基本国际化。我运行该应用程序,它运行良好。我导出了应用程序(无代码签名)并在所有上述操作系统上进行了测试。这一次,我收到的错误发生在所有操作系统上。这甚至发生在我构建项目的SAME机器上,唯一的区别是我没有从Xcode运行它。我的下一步是实际制作一个MainMenu.xib文件(因为删除基本国际化删除了旧的),并将其设置为主界面。现在,我不仅在所有操作系统上的导出应用程序中出现错误,而且在尝试运行应用程序时,它在Xcode中显示出来!还有什么我失踪的?

回答

1

新创建的Xcode 5项目打开了基本国际化。 OS X 10.8及更高版本支持基本国际化。您必须关闭基本国际化以支持10.7和10.6。请参阅下面的堆栈溢出问题的详细资料:

Base.lproj/MainMenu.xib is not available when compiling for targets before Mac OS X 10.8

你可能需要做什么来支持另一件事10.6是部署目标设定为10.6项目和厦门国际银行文件两者。我知道你说你在你的问题中将部署目标设置为10.6,但是如果你为项目和xib文件设置它,目前还不清楚。正如你所发现的,苹果的项目模板并没有把重点放在与旧操作系统版本的兼容性上。

+0

这看起来很有希望。下周我会有机会尝试一下。 – user2105505

+0

嗨,你可以看看我对我的问题所做的更新吗?你的答案似乎应该起作用,但由于某种原因,它没有。 – user2105505

+0

我可以考虑另外两件事来检查。首先,确保xib文件是应用程序目标的成员。选择xib文件并打开文件检查器以设置目标成员资格。其次,确保xib文件是应用程序目标的Copy Bundle Resources构建阶段的一部分。 –

2

如前所述,您需要禁用国际化基地。

在Project Navigator点击哪个是你的项目的第一项(由蓝色页面,在里面一个白色的表示,这是所有其他项目的根)

您应该默认显示的信息(如果没有从顶部的选项卡中选择它)

信息属性表中的最后一项是本地化。在本地化下,您将能够添加和删除语言,并且默认情况下应该有两个已有的基本语言和英语。

同时删除,并取消选中复选框“使用基地国际化”

一旦你做到了这一点,删除您从项目本身有任何*的.xib文件。请确保只删除参考文献!!!不要发送到垃圾箱!

删除引用后,进入Finder,打开您的项目目录,您会发现一个名为Base.lproj的目录,其中包含* .xib文件。将它们复制或移动到您的项目目录一级,然后删除Base.lproj目录。

返回到xCode并添加回* .xib文件。 ++ K清理项目,然后++ R重建。

这应该将App Package中的* .xib文件从Base.lproj(其中10.6似乎无法找到它们)移动到Resources文件夹并解决问题。

相关问题