使用gnustepmakefile构建Xcode项目不会打开应用程序窗口,buildtool可以';我找不到英语
我在Mac OS X Tiger 10.4.11上完成了使用Xcode 2.5的测试,我称之为CurrencyConverter2,因为这是我的第二次尝试。因为我已经读到GNUstep与MacOSxTiger版本的Cocoa兼容,所以我想尝试在GNUstep中构建这个Xcode项目,我对此很感兴趣 我能够在运行FreeBSD12.0的虚拟机上安装GNUstep。我创建了一个名为GNUmakefile的Makefile。以下是GNUmakefile的内容:使用gnustepmakefile构建Xcode项目不会打开应用程序窗口,buildtool可以';我找不到英语,xcode,gnustep,Xcode,Gnustep,我在Mac OS X Tiger 10.4.11上完成了使用Xcode 2.5的测试,我称之为CurrencyConverter2,因为这是我的第二次尝试。因为我已经读到GNUstep与MacOSxTiger版本的Cocoa兼容,所以我想尝试在GNUstep中构建这个Xcode项目,我对此很感兴趣 我能够在运行FreeBSD12.0的虚拟机上安装GNUstep。我创建了一个名为GNUmakefile的Makefile。以下是GNUmakefile的内容: include $(GNUSTEP_MA
include $(GNUSTEP_MAKEFILES)/common.make
APP_NAME = CurrencyConverter2
CurrencyConverter2_OBJC_FILES = main.m ConverterController.m Converter.m
CurrencyConverter2_RESOURCE_FILES = Info.plist English.lproj/MainMenu.nib
include $(GNUSTEP_MAKEFILES)/application.make
使用gmake构建程序时,似乎所有内容都已正确构建:
This is gnustep-make 2.7.0. Type 'gmake print-gnustep-make-help' for help.
Running in gnustep-make version 2 strict mode.
Making all for app CurrencyConverter2...
Creating CurrencyConverter2.app/....
gmake[3]: Warning: File 'main.m' has modification time 21869 s in the future
Compiling file main.m ...
Compiling file ConverterController.m ...
Compiling file Converter.m ...
Linking app CurrencyConverter2 ...
gmake[3]: warning: Clock skew detected. Your build may be incomplete.
Creating CurrencyConverter2.app/Resources...
Creating stamp file...
Creating CurrencyConverter2.app/Resources/Info-gnustep.plist...
Creating CurrencyConverter2.app/Resources/CurrencyConverter2.desktop...
Copying resources into the app wrapper...
但是,当我尝试打开CurrencyConverter2.app时,主窗口根本不显示
我的直觉是,出于某种原因,我的Makefile无法识别English.lproj/mainmunu.nib
我还尝试使用一个名为buildtool的工具,该工具能够使用GNUstep构建Xcode项目,但它抱怨说,即使在我运行buildtool的目录中,它也找不到English.lproj。将Mac应用程序转换为GNUstep时,您需要制作一个GNUstep特定的Info plist模板,大致反映Info.plist(仅限Mac) 在构建时,Info-plist模板用于生成两个文件:Info-gnustep.plist和应用程序的.desktop()文件 Info-gnustep.plist包含在loadtime/运行时使用的信息条目,例如主体类的名称、要加载的主菜单文件等 应用程序的.desktop文件包含用于在桌面环境/文件浏览器中注册应用程序的信息条目,例如应用程序的桌面菜单类别、可执行路径、支持的MIME类型等。(注意:“make install”当前未在桌面环境中注册GNUstep应用程序;为了使已安装的GNUstep应用程序显示在桌面菜单中,其.desktop文件(位于其资源文件夹中)必须使用手动注册。) Info plist模板应命名为“{APP_NAME}Info.plist”,并可包含标准XML格式plist或简单文本列表格式:
{
{KEY1} = {VALUE1};
{KEY2} = {VALUE2};
...
}
对于CurrencyConverter2,在与Makefile相同的目录中创建一个名为“CurrencyConverter2Info.plist”的文本文件,其内容如下:
{
ApplicationName = CurrencyConverter2;
FreeDesktopCategories = ("Utility", "X-GNUstep");
NSExecutable = "CurrencyConverter2";
NSMainNibFile = "MainMenu.nib";
NSPrincipalClass = NSApplication;
NSRole = Application;
}
gnustepmake将自动查找CurrencyConverter2Info.plist,因此它不需要Makefile中的条目
与Info plist模板问题无关,您还可以对Makefile进行以下更改:
- Info.plist仅适用于Mac,因此可以从 CurrencyConverter2\u资源\u文件
- 通过从CurrencyConverter2_resource_文件中删除MainMenu.nib并将以下两行添加到Makefile,可以将其指定为本地化资源(因此其路径名中不再需要English.lproj): CurrencyConverter2\u本地化的\u资源\u文件=main menu.nib CurrencyConverter2_语言=英语