我可以在TemplateInfo.plist文件中包含这样的框架:
<key>Frameworks</key>
<array>
<string>QuartzCore</string>
<string>OpenGLES</string>
<string>OpenAL</string>
<string>AudioToolbox</string>
<string>AVFoundation</string>
<string>UIKit</string>
<string>Foundation</string>
<string>CoreGraphics</string>
</array>
但我找不到如何使用静态库做类似的事情。这将大大改善我的模板。有这样的功能吗?
答案 0 :(得分:7)
我找到了解决方案。
在templateInfo.plist中添加关键字目标 - &gt; SharedSettings
<key>OTHER_LDFLAGS</key>
<string>ObjC -all_load -weak_library /usr/lib/libz.dylib ..</string>
它将你的dylib添加到调试和运行设置..不能用于自动完成,因为xcode可以用于框架,但仍然比手动操作好很多
编辑:expalin
<key>Targets</key>
<array>
<dict>
<key>Dependencies</key>
<array><integer>0</integer></array>
<key>Frameworks</key>
<array>
<string>CoreAudio</string>
</array>
<key>SharedSettings</key>
<dict>
<key>OTHER_LDFLAGS</key>
<string>-ObjC -all_load -weak_library /usr/lib/libz.dylib -weak_library /usr/lib/libstdc++.dylib </string>
</dict>
</dict>
答案 1 :(得分:3)
我发现这样做的最好方法是在templates文件夹中创建/ usr / lib目录的别名。从那里,您可以访问/ usr / lib中的所有库,甚至是别名的库。
首先,我通过编辑XCode中的.plists来创建模板,而不是通过编辑xml表示本身。所以,我就是这样解释我将静态库包含到模板中的步骤。
1)我有一个项目模板: iPhoneOS.platform / Developer / Library / Xcode / Templates / Project Templates / Application / C4 Application.xctemplate
(在Xcode 4.3中,可以直接在Xcode.app中找到项目模板/应用程序,方法是右键单击该包并选择显示包内容)
此文件夹的内容如下所示:
2)正如您在上图中所看到的,我为包含静态库的lib文件夹(/usr/lib
)创建了一个别名,并将别名移动到我的.xctemplate文件夹中。
3)在我的TemplateInfo.plist文件中,我指定了两件事:一个字典和一个节点。我把它们放在TemplateInfo.plist的定义和节点中
首先,在Definitions节点中,我指定一个名为的字典: 利布斯/ libalias.dylib
在这个lib中我有2个字符串 组:Libs 路径:lib / libalias.dylib
节点如下所示:
语法必须与此完全相同,最重要的是,Dictionary的名称本身指定了要导入的库。在这种情况下,我正在导入libalias.dylib库。
Path是lib / libalias.dylib也很重要,因为这将指向指向/ usr / lib文件夹的别名。
其次,在Nodes数组中,我将一个项目指定为一个名为Libs / libalias.dylib的字符串(注意:与我在定义中指定的字典完全相同)
这就是节点项应该是什么样子。
4)设置完这些内容后,您可以创建一个包含lib的新项目。
注意:因为我调用了我的Dictionary Libs / ...并将其指定为Groups Libs,我导入的库出现在我的Project Navigator中名为Libs的子文件夹中。