iOS 生成静态文件(以及一些错误)
来源:互联网 发布:百度云软件打不开 编辑:程序博客网 时间:2024/06/12 22:50
1.创建工程,系统自己会生成2个NSObject的类:可以随意添加或删除。
2.选择是生成模拟器的.a文件还是真机的.a文件
(1)模拟器.a文件配置如下
(2)真机配置如下:
注意:这里的Bulid Active Architecture Only必须设置为NO,因为设置为NO的话。。他会编译成支持多种arm的静态库;
具体可以使用终端命令查询:lipo -info /文件路径.....可以查看类型。如果产生了下面这样的错误说明你没设置为NO。
Undefined symbols for architecture armv7s:
"_OBJC_CLASS_$_XXXX", referenced from:
objc-class-ref in xxxxx.a(xxxxx.o)
ld: symbol(s) not found for architecture armv7s
3.在.a工程类需要将Other Linker Flags设置成-ObjC,在引入.a文件的工程需要将Other Linker Flags设置成-all_Load
-all_load就是会加载静态库文件中的所有成员,-ObjC就是会加载静态库文件中实现一个类或者分类的所有成员,-force_load(包的路径)就是会加载指定路径的静态库文件中的所有成员。所以对于使用runtime时候的反射调用的方法应该使用这三个中的一个进行link,以保证所有的类都可以加载到内存中供程序动态调用.
4.在类里面随便写个方法。然后RUN一下生成各自的.a文件
5.将2个.a文件合并成一个。
具体如下:
lipo -create SQY/iOS/iphoneos/libGamePlusAPI.a SQY/iOS/iphonesimulator/libGamePlusAPI.a -output SQY/iOS/libGamePus.a
注意:上面的方法要注意空格,不然会失败。
6.将生成的.a和头文件导入工程里面,看是否可以调用头文件的方法:可以就是成功
错误总结:
1.***Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSDictionary dictionaryWithJSONString:error:]: unrecognized selector sent to class 0x235e7ec'
unrecognized selector sent to class 0x235e7ec'
一般是由于没有添加-all_Load。导致无法引入类2.duplicate symbols for architecture armv7
这是由于静态库里面包含的一些全局定量或者一些类与你工程里的一样的名字。一般来说添加公司或个人名字的前缀来区分。
- iOS 生成静态文件(以及一些错误)
- iOS生成静态文件
- iOS 生成静态库.a文件
- iOS静态库文件(.a)生成
- iOS 生成静态库.a文件教程
- iOS 生成静态库.a文件
- iOS项目生成静态库文件(.a)
- DedeCms如何生成栏目以及静态的html文件
- [iOS]生成并使用静态库(.a)文件
- IOS静态库生成
- IOS 静态库生成
- 解决gcov不能生成.gcda文件,以及其他错误
- XMLHTTP生成静态文件!
- jsp 生成静态文件
- jsp 生成静态文件
- php生成静态文件
- freemarker 生成静态文件
- php生成静态文件
- iOS7的程序加了多个UIWindow,调用MPMoviePlayerViewController播放视频时,除了key window其他window的坐标会被改变,怎么办
- Oracle Swap居高不下处理
- 论文笔记
- (三)洞悉linux下的Netfilter&iptables:内核中的rule,match和target
- web移动端开发(2)-viewport
- iOS 生成静态文件(以及一些错误)
- 我们工作到底为了什么--强烈推荐
- 关于Physics2D
- (四)洞悉linux下的Netfilter&iptables:包过滤子系统iptable_filter
- JAVA中isEmpty和null以及""的区别
- 7个杀手级的开源监测工具
- Pallord rho大整数分解
- vs2013+node.js 学习javascript 第二篇:Jade 模板引擎使用
- 正则替换图片