玩转 iOS 开发:非脚本版本《模拟器与真机静态 Framework 合成教程》

目录


简介

在咱们作iOS开发中, 有时候咱们会本身动手写一些库, 方便本身去调用, 可是咱们又不想这个库的内部实现代码被别人知道, 这个时候咱们就须要把这个库打包成Framework或者是lib.a文件, 这里咱们只作Framework的打包教程, lib.a的打包方式和Framework趋同差别, 若是有须要, 后面我再补上.git

###做者感言github

为了写这篇文章, 我翻查了许多资料, 都没有找到详细点的可参考资料, 外国的文章就不用说了, 光是看鸡肠就头晕了, 因此我本身总结了一些经验, 整理了一番, 决定分享出来, 但愿你们喜欢xcode

最后: 若是你有更好的建议或者对这篇文章有不满的地方, 请联系我, 我会参考大家的意见再进行修改, 联系我时, 请备注Framework 若是以为好的话, 但愿你们也能够打赏一下~嘻嘻~祝你们学习愉快~谢谢~app

Cain(罗家辉)学习

zhebushimengfei@qq.com: 联系方式测试

350116542: 腾讯QQspa


建立静态包工程

在开始合成以前, 咱们确定是须要建立一个生成Framework的工程, 这里推荐用WorkSpace来建立, 由于能够方便咱们去测试Framework库.3d

1

添加新的工程code

2

选择建立Cocoa Touch Frameworkcdn

3

Framework命名, 喜欢啥名字, 本身看着办呗, 我我的的习惯就是, 这个是什么库, 我就命名是啥

4

建立完以后, 咱们会看到Framework里有一个头文件, 头文件里有一堆不明因此的代码, 这个时候咱们不须要管, 直接干掉它

5

这样子, 咱们就建立Framework完毕了, 下面让咱们来建立一个测试类.


添加测试类

给这个测试类, 添加一个类方法

6

7

添加完测试类以后, 下面让咱们来配置一下整个Framework工程, 让它同时支持模拟器和真机.


配置静态包工程

Xcode默认是会把Framework变成Debug模式, 这时候咱们须要去改为Release模式

8

9

而后咱们去配置项目工程, 首先咱们来添加一个模拟器的支持

10

修改Framework最低支持iOS的版本, 我这里最低支持的是iOS7

11

把默认的动态库, 切换成静态库

12

配置须要暴露的.h文件

13

14

15

最后, 咱们在Test.h中导入TestClass.h, 固然, 咱们也不须要这么作, 由于咱们已经在配置中暴露了TestClass.h文件, 因此不须要引用也是能够的

16

这个时候, 咱们先来测试一下能不能生成Framework

17

18

19

最终测试, 是成功生成Framework库的, 但这个是模拟器库, 若是你须要支持真机的话, 那么只要切换运行的选项就行了

20

这时候咱们再去查看文件夹, 就会有两个Framework文件夹了

21


检测静态包

虽然咱们把Framework都打包好了, 可是咱们须要检测一下是否符合咱们的需求, 这是咱们要打开Terminal, 而且输入命令.

lipo -info (Framework二进制文件地址)复制代码

22

检测真机Framework包

23

检测模拟器Framework包

24


合成真机与模拟器通用的静态包

前面作了那么多的事情, 就为了如今这一步, 就是将模拟器与真机两个Framework包合成一个通用的Framework包, 因为我这里没有通用的Shell脚本, 只能用最笨的办法合成两个包了, 下面让咱们一块儿来看看.

打开终端输入合成命令

lipo -create (真机Framework路径) (模拟器Framework路径) -output (真机/模拟器路径)复制代码

25

26

27

28

29

检测合成后的通用Framework, 只有看到armv7 arm64 i386 x86_64这四个同时存在, 才真正的合成成功

30

31


注意!!!!!

这里有一个注意事项, 有时候用lipo合成会报一个错误(我这里没有发现)

crun: error: active developer path (“/Applications/Xcode 2.app/Contents/Developer”) does not exist, use xcode-select --switch path/to/Xcode.app to specify the Xcode that you wish to use for command line developer tools (or see man xcode-select)复制代码

这时候不要慌, 只要再输入下面的命令, 输入电脑密码后, 而后再次运行合成Framework的命令, 就能够合成了

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer复制代码

测试静态包

既然咱们那么辛苦的合成了一个通用的Framework, 不用用, 怎么对得起咱们的付出呢? 再次回到Workspace, 新建一个测试工程.

32

33

注意, 建立测试工程的时候, 不要新建到Framework的工程内

34

35

36

模拟器测试

37

38

真机测试

39

40


工程地址

GitHub地址: github.com/CainRun/Cre…


结束语

其实我这个方法比较麻烦一些, 毕竟我还没找到怎么用脚本去合成一个的方法, 若是找到这样子方法的朋友但愿能够告知一声, 感激涕零~~~

好啦, 教程到这里就结束了, 谢谢你们的耐心观看

相关文章
相关标签/搜索