
一、打包Framework
1、新建iOS->Framework &Library->Cocoa Touch Framework
2、选择next进入下一步
3、在PROJECT->Deployment Target->iOS Deployment Target选择你需要支持的最低系统。
同样的 *** 作在TARGETS中,Deployment Info->Deployment Target
4、由于我的framework需要支持iOS7,所以在第2、3步中进行了相应的设置。Build时会发现有️ld: warning: embedded dylibs/frameworks only run on iOS 8 or later警告,这是因为工程默认编译设置的是Dynamic Framework。这种编译只有在iOS8以后才能使用。
5、针对第4步中所出现的问题,根据需求我的工程不需要使用动态framework,以使用其动态更新的功能。动态库可以分开发布,在运行时查找并存入内存,但苹果只允许他自己用,到iOS8以后才开放给开发者。因此,我需要将Dynamic Framework更换为Static Library静态模式。设置路径为Build Settings->Linking->Mach-O Type->Static Library
6、这里要注意,在编译时,不要将图片文件放在工程里面,否则编译后framework中会出现大量的零散图片文件在里面。这时需要将图片等资源放在.bundle文件中。图片的打包在第二步介绍。
7、这样打包的framework依然有问题,如果你用了Category,别人在用你的framework时会发生崩溃。这时别人在引用时需要在工程中other linker flags中添加-objC如果依然有问题,再添加-all_load。
8、终于编译成功,但发现很多关于符号表的警告,这时需要将Generate Debug Symbols设置为NO即可关闭符号表警告。
9、但是我需要支持bitcode,以上设置后并不能使framework支持bitcode,因此还需要进行额外的设置一个命令让其支持bit code。在TAGETS的Build setting中搜索Other C Flags,添加命令“-fembed-bitcode”。同样的设置在PROJECT中。如果不进行以上 *** 作。别人在集成你的framework时可以编译,亦可以真机测试。唯独在打包时会发出警告并打包失败。警告为framework不支持bitcode!
10、无论SDK还是Framework都需要暴露公共的头文件以供使用者读取和。在TARGETS->Build Phases->Headers里面,有三种类别。Public(公共的),这里存放供其他人查看的header。Private(私有的)这里存放私有的Header,以上两个Headers存放位置都会暴露出来,所有人可以查看。有些Header是不想给别人看到的。这种header放在第三个类Project中。
11、打包。Edit Scheme->Build Configuration->选为Release
12, 先选择任意模拟器com+B一次, 再选择真机com+B一次,
13, 在XCode中选中相应的framework然后右键, show in finder, 打开终端输入
lipo -create 模拟器SDK/SDK 真机SDK/SDK -output 桌面文件夹
就可以将两个SDK合并 并导出使用了
1、使用xcode ->product ->archive进行归档打包,打包完成之后可以在Window ->Organizer中查看打包的内容,右键showInFinder可以看到归档后的文件。也可以在/Users/用户名/Library/Developer/Xcode/Archives中按照日期查看归档文件。
2、归档文件右键查看包内容,可以看到用来做testflight上传的app文件,还有用来分析日志,上传到fabric的dsyms文件夹。手动上传testflight不会上传dsyms文件,可以在 https://fabric.io/settings/apps/596348d9e46fea49cb42b984/missing_dsyms 网站手动上传dsyms文件。
3、如果使用fir打包,可以使用Window ->Organizer中,选中某个归档版本,然后导出,导出的时候选择adhoc,最后将导出的文件上传到fir
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)