在Xcode 4项目模板中包含libsqlite3 dylib

Jon*_*n C 3 sqlite xcode dylib xcode4 xcode4.2

我为iOS创建了一个Xcode 4项目模板,它依赖于几个框架和libsqlite3.dylib.我已经能够自动添加框架,但似乎无法弄清楚如何添加dylib.有人有运气吗?

编辑:
我想我不够清楚,我创建了自己的.xcodetemplate文件,当我创建一个新项目时,该文件显示为项目模板.我需要知道在TemplateInfo.plist文件中放置什么以使libsqlite3.dylib文件包含在从模板创建的新项目中.我已成功地通过在目标 - >项目0->框架键下列出它们来添加诸如CoreMotion之类的.framework文件,但这对dylib不起作用.

Pab*_*ski 11

我通过Other Linker Flags项目设置找到了一种方法.要链接sqlite3.0.dylib框架,只需使用Key"OTHER_LDFLAGS"和值"-lsqlite3.0"将项目添加到Project-> SharedSettings下的TemplateInfo.plist中.

请注意,这将覆盖项目模板的所有"其他链接器标志",许多人将其用于标记,例如-ObjC; 所以,如果你想保留那些标志,只需要列出你想要的所有标志,并在它们之间留一个空格.IE:如果您希望项目模板包含ObjC链接器标志和sqlite,只需将节点的值设置为"-ObjC -lsqlite3.0"即可.

对于那些好奇我如何理解的人,我使用目标的Build Phases选项卡手动将sqlite3.0.dylib框架添加到我的项目中,然后构建项目.然后,我通过单击Xco​​de中的日志导航器选项卡查看了构建的详细信息.然后,我单击最新的构建以查看其详细信息,并通过单击文本右侧的详细信息披露按钮展开构建详细信息的"链接"部分.在那里,我看到了它链接的所有库和框架的列表:

    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 -arch i386 -isysroot 
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk 
-L/Users/me/Library/Developer/Xcode/DerivedData/myapp
-fkymetsrapomrohkudesnxrchwdq/Build/Products/Debug-iphonesimulator 
-F/Users/me/Library/Developer/Xcode/DerivedData/myapp
-fkymetsrapomrohkudesnxrchwdq/Build/Products/Debug-iphonesimulator 
-F/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/Developer/Library -filelist /Users/me/Library/Developer/Xcode/DerivedData/myapp
-fkymetsrapomrohkudesnxrchwdq/Build/Intermediates/myapp.build/Debug
-iphonesimulator/myapp.build/Objects-normal/i386/myapp.LinkFileList 
-mmacosx-version-min=10.6 
-Xlinker -objc_abi_version 
-Xlinker 2 -ObjC -D__IPHONE_OS_VERSION_MIN_REQUIRED=40000 
-framework UIKit -framework Foundation -framework CoreGraphics -framework CoreLocation -framework CFNetwork -framework MediaPlayer -framework MessageUI -framework MobileCoreServices -framework QuartzCore -framework SystemConfiguration -lsqlite3.0 
-o /Users/me/Library/Developer/Xcode/DerivedData/myapp-fkymetsrapomrohkudesnxrchwdq/Build/Products/Debug-iphonesimulator/myapp.app/myapp
Run Code Online (Sandbox Code Playgroud)

在框架列表中,我发现"-lsqlite3.0"作为链接库之一.将"lsqlite3.0"添加到其他链接库基本上可以实现相同的功能.如果您想要添加到模板中的任何其他dylib框架,只需遵循相同的过程:将它们添加到目标的构建阶段,检查构建脚本以查看链接时实际调用的库,然后将它们添加到您的TemplateInfo.plist中的OTHER_LDFLAGS列表.

注意:以这种方式添加库不会将框架添加到XCode中的构建阶段UI,但它仍将正确链接它.