![](https://img.haomeiwen.com/i1363078/a81130e723409300.png)
前言
本节学习应用的构建过程,在工作和学习中构建过很多应用,很少去研究应用究竟是怎么从一行行代码变成安装包的。
构建步骤
App
从代码到安装包.ipa
经历的过程如下:
①. compile
: 使用Clang
编译源文件,生成目标文件。
②. link
: 将编译生成的目标文件链接成一个可执行文件
③. storyboard
: 编译项目中storyboard
④. plist
: 生成plist
文件,里面会指定应用的名字、BundleID等。
⑤. asset
: 复制资源文件到APP目录下
⑥. dsym
: 生成符号文件
⑦. codesign
: 对APP进行签名。这个后面会单独学习签名和重签名。
⑧. package
:打包,生成App文件夹放到payload
文件夹下,并压缩成.ipa
文件。
示例
使用Xcode创建一个项目,执行command + B
命令。查看构建Log
如下图:
![](https://img.haomeiwen.com/i1363078/e25ccaeaed68ad95.png)
我们接下来看看,构建过程都做了什么工作?
从上到下顺序分析,create product structure
猜测是创建应用结构。点击后面的显示详情按键。
![](https://img.haomeiwen.com/i1363078/c588f12f6021e696.png)
这里使用mkdir -p xxx
命令,意思是在指定目录下创建xxx文件夹,这里创建xxx.app
文件夹,不是文件。
接着下面可是编译ViewController.m
,main.m
,AppDelegate.m
。这里编译的文件是Build Phases --> Compile Source
中添加的文件。如果某个文件不需要编译,可以在该目录下移除。
![](https://img.haomeiwen.com/i1363078/5a738f703a10497a.png)
查看编译Log详情,使用clang
编译源文件。直接通过clang
目录运行,也可以使用xcrun
自动找到Clang
的位置。-fobjc-arc
参数指定有ARC编译。-fmodules
参数会自动找到需要的系统库。还有很多参数,这里就不一一列举。
接下来是Link xxx
将编译生成的目标文件链接成一个可执行文件。
之后编译storyboard
,生成info.plist
以及将asset
目录复制到项目中。
生成dSYM
符号文件,这个需要在release
模式下。使用dsymutil
命令。使用dwarfdump --uuid
可以查DSYM或者可执行文件的UUID。
之后是对应应用进行签名,需要embedded.mobileprovision
。entitlements.plist
内容在Process product packaging
详情中找到。
![](https://img.haomeiwen.com/i1363078/0b897d52d6fea1c7.png)
最后是打包操作,将生成的app
文件夹放到Payload
文件夹下,通过zip压缩成ipa
文件。
以上就是应用的构建过程。
小结
本节整体学习应用的构建过程,还涉及到很多命令和参数,以后遇到在慢慢补充。
网友评论