XCode8.3之前的打包
https://github.com/webfrogs/xcode_shell/blob/master/ipa-build
阅读链接上的这个脚本, 可以理解构建三部曲为:
- Clean build cache
- 编译出.archive
- xcrun打包为.ipa文件
第三步是和XCode9差异最大的地方, 先记住这里:
XCode9之后的打包
听说是8.3之后就不一样的了.
细化上面的三个步骤为:
Clean Build Cache:
|
|
与xcode8无任何差异.
编译,生成.xcarchive
|
|
这里可以不需要这个参数, CODE_SIGN_IDENTITY="$code_sign_indentity"
.
将.xcarchive生成.IPA
|
|
这一步有特殊的地方, 就是-exportOptionsPlist $exportOptionPlist
, 它的格式如下, 做了下扼要的说明, 官网能找到它的说明文档:
我确信你按照我的复制去执行, 基本很难打包成功, 如果想要打包成功, 你得用XCode手动打包一遍, 选择对应的打包方式method
, 然后生成的路径下, 就附带了这个ExportOptions.plist
:
- 打开xcode, Product -> Archive 等待编译完成, 自己弹出可选框
- 如图操作导出:
成功后, 同级目录下就存在ExportOptions.plist
文件了, 其中默认bitCode是YES的, 你可以选择改为NO开提升效率.
脚本化
脚本地址: https://github.com/Paulswith/ToolsScript/tree/master/package_script_xcode9
稍微优化了一下:
- 添加
xcpretty
美化xcodebuild出来的那团东西, 安装请执行gem install xcpretty
- 所有操作,有添加日志记录,你需要制定日志路径
- 若打包后的目录下存在类似的旧包,
判断方式是监测是否存在与scheme同名的文件
, 有的话备份. 你需要制定部分后存储的路径.
展示效果:
使用指南
- 根目录下执行
xcodebuild -list
, 把下面user-define
这些配置下: - 项目根目录生成
package
文件夹, 将脚本和ExportOptions.plist放进去. - 给脚本添加执行权限
chmod +x package.sh
, 执行.
补充: 我直接项目是.xcworkspace
的, 因为很少有项目还是单target的吧~ 如果是, 你需要自行改下, 或email我~(dobby确实还是懒)