将文件打包为framework
2022-04-21 本文已影响0人
菠萝吹雪xs
新建一个framework工程
image.png
依赖的三方库最好用pod管理,避免和用户的库重复
然后把要打包的文件拖到该工程中
image.png
然后按照以下配置
image.png
image.png
image.png
image.png
在默认生成的.h文件中添加引用,如果不写的话,framework也能用,但是在引用文件后会有警告
image.png
image.png
选择真机
image.png
运行成功以后,在product目录中可以找到framework,然后在放大中显示出来,拖到新的项目中使用了
image.png
另外如果有图片,可以新建一个bundle文件:new file,然后把图片都拖到这个bundle里面
image.png
编译成功后,可以在framework里面看到这个bundle文件,然后拖到新的工程里面
image.png
在新的工程这样使用:
NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"Pictures" ofType:@"bundle"];
NSString *imgPath = [bundlePath stringByAppendingPathComponent:@"tip_01.png"];
UIImage *img = [UIImage imageWithContentsOfFile:imgPath];
如果想打包模拟器的framework,编译的时候就选择模拟器
image.png
在~/Library/Developer/Xcode/DerivedData/XSNFCFramework-giskbnvydzietphawehylobbaufl/Build/Products的陌路下可以看到真机和模拟器的文件
image.png
因为真机和模拟器打出来的包不能互用,如果像真机和模拟器都能用的话, 可以进行合并。
先各自查看一下架构
lipo -info 文件路径
image.png
如果有重复的话,合并就会失败,在这里加上重复的架构名称
image.png
或者
lipo 文件名 -remove arm64 -output 输出名称
然后编译出来,再进行合并
sudo lipo -create 真机路径 模拟器路径 -output 输出路径/输出名称
然后把合并后的文件,替换一下framework里面的文件(真机模拟器都行,反正是你要用的那个)。