自动化打包(三)
2017-11-20 » iOS打包发布前面写过iOS在自动化打包这一方面的内容,这里再补充一些打包相关的其他小知识。
如何在一个设备上安装一个App的两个不同版本
测试妹子问你:你们能不能同时装线下包和线上包啊,我每次验证问题都要删除后重新装一个,好麻烦。
那么,怎么办呢?妹子的需求肯定是要满足的啊!
开始干活
首先,我们统计一下需要处理的类别:测试 、预发、发布、其他渠道
iOS系统区分不同的App是否相同是根据App的Bundle ID是否相同来判断的。如果想要在一个系统上安装一个App的多个版本其实是需要多个Bundle ID,就是说正式版一个Bundle ID,测试版一个Bundle ID。
测试包:com.yanghuang.demotest
预发包: com.yanghuang.demopre
发布包:com.yanghuang.demo
第一步:Build Configuration 添加一个发布构建
选中 PROJECT 的名称,然后选中 Info,点击 Configurations 下面的 “+” 选择 Duplicate “Release” Configuration 创建一个名称为 AppStore 的发布构建 如图:
第二步:BUNDLE_IDENTIFIER 配置
选中TARGET -> Build Settings -> PRODUCT_BUNDLE_IDENTIFIER
可以根据不同构建设置对应的BUNDLE_IDENTIFIER,如图:
第三步:图标配置
选中TARGET -> Build Settings -> ASSETCATALOG_COMPILER_APPICON_NAME
可以根据不同构建设置对应的AppIcon,如图:
第四步:App名称配置
App名称的更改不建议去更改ProductName配置项,可以自定义一个配置项,如图:
配置完成后,在修改一下Info.plist 的配置
检查是否有 Bundle display name,没有添加一个。并配置Value为 ${APP_DISPLAY_NAME},如图:
第五步:哎,不同版本的包能不能一起装
。。。
推送问题解决
打包中的小细节
include_symbols :是否提交 符号文件到appStore,dSYM文件
include_bitcode :是否开启bitcode, iOS 9.0以后才有的,
bitcode允许苹果在后期重新优化程序的二进制文件,而不需要重新提交一个新的版本到App store上。当提交程序到App store上时,Xcode会将程序编译为一个中间表现形式(bitcode)。然后App store会再将这个botcode编译为可执行的64位或32位程序。
如果我们的工程需要支持bitcode,则必要要求所有引入的第三方库都支持bitcode。
实际上,在Xcode 7中,我们新建一个iOS程序时,bitcode选项默认是设置为YES的。我们可以在”Build Settings”->”Enable Bitcode”选项中看到这个设置