xcode9之后的打包方式

XCode8.3之前的打包

https://github.com/webfrogs/xcode_shell/blob/master/ipa-build
阅读链接上的这个脚本, 可以理解构建三部曲为:

  1. Clean build cache
  2. 编译出.archive
  3. xcrun打包为.ipa文件

第三步是和XCode9差异最大的地方, 先记住这里:

XCode9之后的打包

听说是8.3之后就不一样的了.
细化上面的三个步骤为:

Clean Build Cache:

1
xcodebuild clean -workspace $workspace -scheme $scheme -configuration $configuration

与xcode8无任何差异.

编译,生成.xcarchive

1
2
3
xcodebuild archive -workspace $workspace -scheme $scheme -configuration \
$configuration -archivePath $archivePath -destination generic/platform=ios \
CODE_SIGN_IDENTITY="$code_sign_indentity"

这里可以不需要这个参数, CODE_SIGN_IDENTITY="$code_sign_indentity".

将.xcarchive生成.IPA

1
2
3
xcodebuild -exportArchive -archivePath $archivePath \
-exportPath $exportPath -destination generic/platform=ios \
-exportOptionsPlist $exportOptionPlist -allowProvisioningUpdates

这一步有特殊的地方, 就是-exportOptionsPlist $exportOptionPlist, 它的格式如下, 做了下扼要的说明, 官网能找到它的说明文档:

我确信你按照我的复制去执行, 基本很难打包成功, 如果想要打包成功, 你得用XCode手动打包一遍, 选择对应的打包方式method, 然后生成的路径下, 就附带了这个ExportOptions.plist:

  1. 打开xcode, Product -> Archive 等待编译完成, 自己弹出可选框
  2. 如图操作导出:

成功后, 同级目录下就存在ExportOptions.plist文件了, 其中默认bitCode是YES的, 你可以选择改为NO开提升效率.

脚本化

脚本地址: https://github.com/Paulswith/ToolsScript/tree/master/package_script_xcode9

稍微优化了一下:

  1. 添加xcpretty美化xcodebuild出来的那团东西, 安装请执行gem install xcpretty
  2. 所有操作,有添加日志记录,你需要制定日志路径
  3. 若打包后的目录下存在类似的旧包, 判断方式是监测是否存在与scheme同名的文件, 有的话备份. 你需要制定部分后存储的路径.
    展示效果:

使用指南

  • 根目录下执行 xcodebuild -list, 把下面user-define这些配置下:
  • 项目根目录生成package文件夹, 将脚本ExportOptions.plist放进去.
  • 给脚本添加执行权限chmod +x package.sh, 执行.

补充: 我直接项目是.xcworkspace的, 因为很少有项目还是单target的吧~ 如果是, 你需要自行改下, 或email我~(dobby确实还是懒)

© 2020 In 'flight of thought' All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero