打包.a文件(代码区-功能区)和.bundle文件(资源文件和xib)

ps:以网上的一个仿微信小视频的代码块为基础做的,具体地址给忘记了,找了一圈也没找到。

一、首先是打包.a文件,也就是纯代码的那一块(代码区-功能区)   注意:xib得打包成bundle文件里面去,不要导入到这边来

1.创建一个Static Library

创建

2.导入代码模块,或者创建编写代码模块

导入代码块

3.设置它的一些配置属性

兼容最低系统版本
兼容最低系统版本1
设置可编译
设置开放类文件

4.bulid之前设置release

设置好release版本

5.切换真机和模拟器都跑一遍,生成两个.a文件(看需求,笔者这边只需要真机的就行,就没处理模拟器的了)

需要兼容模拟器和真机的需要再进行一步合并操作:

模拟器路径:

/Users/xxx/Library/Developer/Xcode/DerivedData/XFCamera-glhzhzqypfcnbqblivtyxfnzuqbb/Build/Products/Release-iphonesimulator/xxx.a

真机路径:

/Users/xxx/Library/Developer/Xcode/DerivedData/XFCamera-glhzhzqypfcnbqblivtyxfnzuqbb/Build/Products/Release-iphoneos/xxx.a

终端操作合并:

lipo -create /Users/xxx/Library/Developer/Xcode/DerivedData/XFCamera-glhzhzqypfcnbqblivtyxfnzuqbb/Build/Products/Release-iphonesimulator/xxx.a /Users/xxx/Library/Developer/Xcode/DerivedData/XFCamera-glhzhzqypfcnbqblivtyxfnzuqbb/Build/Products/Release-iphoneos/xxx.a -output /Users/xxx/Desktop/xxx.a

最终生成的可兼容.a文件地址:

/Users/xxx/Desktop/xxx.a



二、打包.bundle文件

1.创建boundle工程

创建boundle工程

2.导入资源文件

3.设置配置属性

删除info文件

"Base SDK" 设置为 "iOS" (Xcode 10.1为例)

"Build Active Architecture Only" 设置为 "YES"

Installation Directiotory    删除掉后面的路径

Code Signing Identity   选择 Don't Code Sign  

"iOS Deployment Target" 设置为 iOS 8.0  (为了兼容性,最好选择最低版本)

"Skip Install" 设置为 "NO"

"Strip Debug Symbols During Copy" 中"Release"模式设置为 "YES"

"IOS Deployment Target" 设置为 "iOS 8.0"

"COMBINE_HIDPI_IMAGES" 设置为 "NO"

4.然后command+B编译一下

5.找到生成的bundle,打包上架APP的时候应使用真机模式下运行生成的Bundle,即Debug-iPhoneos 文件夹内的bundle。

ps:打包bundle详情内容请参考

写在最后:有xib和资源文件的选择先打包好bundle文件再打包.a文件比较容易记住,毕竟取资源文件的方法跟直接取有了很大的区别,当然逻辑严谨直接写的时候就已经考虑到这种情况了就随便玩。

取例:   

//xib

NSString * bundlePath = [[NSBundle mainBundle] pathForResource:@"XFResource" ofType:@"bundle"];

NSBundle* resourceBundle = [NSBundlebundleWithPath:bundlePath];

XFCameraController *cameraController = [[XFCameraController alloc] initWithNibName:@"XFCameraController" bundle:resourceBundle];

//图片

[_cancelButton setBackgroundImage:[UIImage imageNamed:@"XFResource.bundle/icon_return_n"] forState:UIControlStateNormal];

测试demo:测试demo

你可能感兴趣的:(打包.a文件(代码区-功能区)和.bundle文件(资源文件和xib))