测试环境:
xcode4.5.2 Mac OS X 10.8.2
重要:由于苹果不支持自己创建动态库,所以这里需要替换两个文件
1:iOS Device 需要替换的文件
替换路径:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/
2:iOS 模拟器 需要替换的文件
替换路径:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Specifications
具体可参照:http://blog.iosplace.com/?p=33 或者 http://www.cocoachina.com/bbs/simple/?t129814.html
替换完成后重启Xcode
创建动态库
1:打开Xcode,新建项目,选择OS X --> Cocoa Library -->输入动态库的相关信息
2:这样,动态库已经创建好,但是由于此项目是基于Mac OS X创建的,所以这里要将project的相关设置作修改
1:Base 设置成 SDK iOS6.0
2:Architectures 设置成 standrand (armv7 armv7s)
3:Installation Directory 设置成 @executable_path/
4:Mach-O Type 设置成 Dynamic Library
5:Executable Prefix 设置成 空
6:打开项目的project.pbxproj(文本编辑器打开)文件,在编辑器中将producttype 的值修改为 com.apple.product-type.library.dynamic
7:选择合适的证书文件
3:将debug改为no
4:在动态库的相关类中添加一些测试方法
5:删除多余的framework文件。值添加Foundation.framework文件
Xcode--->Preferences--->Locations--->Advanced---->
这样基本就可以编译dylib了,但是这里还有一个需要注意的地方。
编译证书的选择
编译分为 设备编译(iOS Device) 及 模拟器编译(iPad/iPhone Simulator)
在选择设备编译的时候,一定要选择某个有效的开发者证书。否则编译会出错。
相反,选择模拟器编译的时候,不需要选择证书(如果选了证书,也会报错)。
如果一切正常,那么在编译后的文件会出现在项目文件夹的Build/Products/.…文件夹中