2. 输入静态库名称
3.删除系统自带的.h和.m文件
4.将自己需要的.h和.m拉入项目中(出于方便考虑,直接在系统自带的.h和.m文件上写个简单的实现方法)
注意 :资源文件是不能打包到.a文件中的。
5. 选择需要暴露出来的.h文件
将需要暴露的.h文件拖入public中
删除没有用的testTests,否则编译时会报错
6.在真机模式和模拟器模式下分别编译此工程, 模拟器和真机环境下用的.a文件是分开的。 编译完成后,.a文件会变成黑色的。点击右键,show in Finder 即可找到对应的.a文件
7.show in Finder后,我们可以发现有2个.a文件,它们一个是模拟器的,一个是真机的。为了方便使用,我们应该把它们合并成一个.a文件。
8.打开终端,依次输入
lipo -create /Users/mac/Library/Developer/Xcode/DerivedData/test-dpfzldvqtvlssshdksmsjcdnnmxe/Build/Products/Debug-iphoneos/libtest.a/Users/mac/Library/Developer/Xcode/DerivedData/test-dpfzldvqtvlssshdksmsjcdnnmxe/Build/Products/Debug-iphonesimulator/libtest.a -output /Users/mac/Desktop/77/testall.a
红色:固定的指令
灰色:真机.a文件的地址
蓝色:模拟器.a文件的地址
绿色:合并后的.a文件存放地址
合并完成后,可输入lipo -info /Users/mac/Desktop/77/testall.a 来判断.a文件支持的格式
i386:模拟器
arm64:支持64位处理
ARMv8/ARM64: iPhone 6(Plus), iPhone 5s, iPad Air(2), Retina iPad Mini(2,3)
ARMv7s: iPhone 5, iPhone 5c, iPad 4
ARMv7: iPhone 3GS, iPhone 4, iPhone 4S, iPod 3G/4G/5G, iPad, iPad 2, iPad 3, iPad Mini
ARMv6: iPhone, iPhone 3G, iPod 1G/2G
9.使用
在其他工程中使用.a文件,仅需将生成的.a文件以及对应的头文件一同拉入工程中即可。
如果静态库中用到了图片资源,一般都放到一个bundle文件中,bundle名字一般跟 .a 或 .framework 名字一致
bundle的创建:新建一个文件夹,修改扩展名为 .bundle 即可,右击bundle文件,显示包内容,就可以往bundle文件中放东西
建议:自己制作的静态库中要用到的图片资源,不建议直接以png的后缀名方式拖到项目中使用,而是推荐使用放到bundle文件中。这样可以避免静态库的图片名和使用静态库的项目中存在的图片产生冲突。
以上内容属个人总结,如若有错误的地方,欢迎提出。