打包静态库

1.新建工程,选择iOS下的Framework&Library,选择下面的Cocoa Touch Static Library。然后点击next并输入工程名。
2.文件夹下输入代码或者直接从外部导入,注意选择的设备是iOS Device(这样编辑出的静态库只能在真机中使用)。
3.可能需要事先添加各种所需的框架,然后点击Project—>Build.
4.在Product中查看是否成功生成静态库,如果成功将选择设备改为iPhone 5s(或者其他模拟器设备均可),进入沙盒下查看是否生成两个静态库文件。(两个静态库文件分别在模拟器和真机下运行)
5.将两个静态库文件和对应的头文件拷贝到同一个文件夹下,然后就可以在工程中使用了。
6.当然也可以将两个静态库文件打包成一个静态库文件,使用终端命令:
cd /Users/starzxc/Library/Developer/Xcode/DerivedData/JSONKITLib-baarjqkybdqustdxjwcbfnsgzlbq/Build/Products

ls
Debug-iphoneos Debug-iphonesimulator

lipo -create Debug-iphoneos/libJSONKITLib.a Debug-iphonesimulator/libJSONKITLib.a -output libJSONKITLib.a
这样只会保留一个静态库文件。

7.如果当前Xcode模拟器只支持一部分,则需要进入Target——>Build Setting>Architextures中修改Build Active Architecture Only的debug修改为NO和Valid Architectures中将64位的添加或者删除。(添加后仍然只支持部分模拟器,)

注:发现一件坑爹的事情,在iPhone5s的模拟器上打包出来的文件只能在iPhone5s的模拟器上运行,Apple没有想到这个方面么?也是醉了。
打包静态库时,如果该库依赖于其他的静态库,那么在打包过程中必须考虑到所有依赖库也被一并包含进来。这通常涉及到以下步骤: 1. **识别依赖库**: 首先,确定你的静态库(假设名为`libA.a`)需要哪些其他静态库。这可能包括操作系统提供的库、第三方库或是你自己项目的其他库。 2. **添加依赖库**: 将这些依赖库(如`libB.a`, `libC.a`等)添加到你的构建流程中。在构建`libA.a`时,你应该能够链接到这些依赖库。这意味着在构建命令中增加相应的库文件路径和名称,如: ``` ar rcs libA.a source_files_in_libA.o gcc -shared -o libA.so -Wl,-Bstatic -lB -Wl,-Bdynamic -lC -o libA.so ``` 或者如果你使用的是静态库,你可能会直接链接它们而不需要生成共享库(`.so`文件): ``` ar rcs libA.a source_files_in_libA.o -lB -lC ``` 这里,`source_files_in_libA.o`表示`libA.a`内部的实际目标文件。 3. **考虑编译选项**: 根据每个库的文档,选择正确的编译选项,以确保依赖库能够在你的平台上正确构建。有时候,某些库需要特定的编译标志来启用或禁用某些特性。 4. **管理库路径**: 如果依赖库不在当前目录下,你需要在编译时指定其完整路径,比如在上述示例中的`-lB`和`-lC`就是指明要链接的库名。 5. **复制文件**: 最终,当`libA.a`被打包时,你需要将所有依赖库也一起复制进最终的发布包内,这样在用户安装或部署此静态库时,所有的依赖都能自动获取和使用。 6. **版本兼容性**: 确保你使用的库版本与你的应用需求相符,并且考虑版本更新带来的潜在变化,如API改变或依赖项的变化。 通过以上步骤,你可以确保在打包静态库时不仅包含了核心功能,还包含了必要的依赖库,使得用户在部署时不必额外寻找或安装依赖库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值