xcodebuild批量打包之区分不同的渠道
来源:互联网 发布:视频上课软件 编辑:程序博客网 时间:2024/04/30 15:21
原文地址:http://blog.cnrainbird.com/index.php/2012/12/10/xcodebuild_pi_liang_da_bao_zhi_qu_fen_bu_tong_de_qu_dao/
之前有写过《最近研究xcodebuild批量打包的一些心得》因为当时已经研究过一个工程多target,所以在多target的基础上,很容易按照target名字进行打包,于是建立了一堆的target以后,然后写了一个脚本批量打包。然后想着以后打包省事儿,直接脚本一执行,走你。结果今天需要再打一批包,拿到列表以后一看发现:新加了几个渠道,去掉了几个渠道。哎呀,妈呀,这个列表咋还是变的呢?这么一来,我可以不用删除多余的target,但是需要新建target呀,细想一下发现:我新建target只是为了加一个变量,用来区分这个target,那么我可不可以直接以渠道名为参数传给xcodebuild然后就自动生成不同的target呢?
说干就干,先前查资料的时候,有看到说可以给xcodebuild传参数的:
xcodebuild -sdk xxx -target xxx SYMROOT=xxx API_TYPE=1
API_TYPE就是要识别的macro喽,果断换成自己的区别标识,一通编译打包以后,发现:不好使!神马情况呢?一通google以后发现有说用GCC_PREPROCESSOR_DEFINITIONS可以。还是用上面的例子:
xcodebuild -sdk xxx -target xxx GCC_PREPROCESSOR_DEFINITIONS="API_TYPE=1"
发现这样竟然是好使的,于是又用下面的语法试了试:
xcodebuild -sdk xxx -target xxx GCC_PREPROCESSOR_DEFINITIONS="API_TYPE=一"xcodebuild -sdk xxx -target xxx GCC_PREPROCESSOR_DEFINITIONS="API_TYPE=a"
发现,这个macro只能用数字!也就是说,虽然你传进去一个API_TYPE=1,而编译器也只是在最开始执行编译以前定义了一个宏:
#define API_TYPE 1
而这么定义法是只能用数字,不能用字母,更别提字符串或者中文了。花了挺长的时间才学习到这个东东,那么接下来就变得简单了:
把所有的渠道搁到一个静态的数组里。然后通过每次传入不同的序列号打成不同的渠道包呗。
到这里,终于,可以由一堆target变回两个target了(一个用来作编译打包时的模板;一个自己测试时用)。
完整的代码片段:
xcodebuild cleanxcodebuild -target iphone GCC_PREPROCESSOR_DEFINITIONS="QUDAONUM=9"xcrun -sdk iphoneos PackageApplication -v build/Release-iphoneos/iphone.app -o ~/Desktop/9.ipa
0 0
- xcodebuild批量打包之区分不同的渠道
- xcodebuild批量打包的一些心得
- 研究xcodebuild批量打包的一些心得
- ReactNative项目 Python批量打包 (对美团第三种批量打包区分渠道的方法封装)
- 最近研究xcodebuild批量打包的一些心得
- 最近研究xcodebuild批量打包的一些心得
- 最近研究xcodebuild批量打包的一些心得
- 最近研究xcodebuild批量打包的一些心得
- android渠道批量打包
- Gradle配置一次性打包不同的渠道
- Android 打包, 不同渠道使用 不同的资源文件
- Unity3D研究院之脚本批量打包渠道包研究
- Unity3D研究院之脚本批量打包渠道包
- Unity3D研究院之脚本批量打包渠道包研究
- Unity3D研究院之脚本批量打包渠道包研究
- android修改渠道批量打包
- AndroidStudio Gradle 批量渠道打包
- android studio 不同渠道打包
- NYOJ合纵连横【并查集的合并和删除】
- 通过继承进行设计
- acm算法练习
- WebDriver中使用JQuery选择器
- 百度首席科学家吴恩达:人工智能
- xcodebuild批量打包之区分不同的渠道
- python学习系列(八) --- socket实现简单的即时通讯
- struts2中对Action类中的方法进行校验
- 如何估算普通LED灯珠的额定电压和功率
- uva 208 Firetruck
- 编写类String 的构造函数、拷贝构造函数、析构函数和赋值函数
- 一款不错的python操作数据库的库SQLObject
- 低血糖不仅是心慌出汗
- Linux学习笔记