自动化打包上传蒲公英(2)

上篇文章介绍了自动化打包上传蒲公英,适合单个应用的打包上传。由于公司业务需要,需要给不同客户个性化定制APP,这些定制APP功能相同,不同的只是bundle id和资源图片,之前一直手工定制。但是我们公司的销售人员太给力,现在有四十多个定制版APP,每次发新的版本,需要重新定制,所以每次发版就很苦逼。狠了狠心研究了一下自动化批量打包上传,和大家分享一下。

首先是项目工程结构的变化:

这里参考了唐巧大神写的一篇博客:猿题库iOS客户端的技术细节(一):使用多target来构建大量相似App

先简单介绍一下 Xcode 中 target 的概念,苹果在文档中写道:

Targets that define the products to build. A target organizes the files and instructions needed to build a product into a sequence of build actions that can be taken.

在 Xcode 的一个项目中,可以允许建立多个编译的 target,每个 target 代表着最终编译出来的一个 App 文件,在每个 target 中,可以添加不同的编译源文件和资源文件。最终,通过我们在不同 target 之间,修改其Copy Bundle Resources和Compile Sources配置,使课程之间的差异性得到实现。

1.先创建第二个target

点击工程名称,右侧会出现PROJECT和TARGETS,点击你现在的target,假如叫WRC,右键弹出菜单中,选择Duplicate,复制一个相同的target,复制的target一般叫WRC copy,WRC copy和WRC的设置(编译条件、源文件、资源文件)完全一样,此时你可以根据需要修改WRC copy的编译条件和资源文件了。

自动化打包上传蒲公英(2)_第1张图片
copy_target

创建完新的target后,修改名称,Xcode也会自动帮我们创建对应Info.plist文件,修改成。点击xcode左上角Run右边的工程名称,在下拉框中选择Manage Schemes,在弹出框中修改scheme名称。

自动化打包上传蒲公英(2)_第2张图片
修改scheme名称

创建新的targets通过预编译宏来区分

当创建多个target后,你添加资源文件时,通过选择添加的target来控制不同版本的内容,当你在公共的代码片段内做使用不同target做不同的操作(如:target1和target2的环境地址不一样),预编译宏可以帮到你,再说一下预编译宏的事情:target->Build Setting

自动化打包上传蒲公英(2)_第3张图片
预编译宏


再此创建一个宏,比如TARGET_VERSION_LITE,等于不同的值代表不同的target,代码中通过这个标记来做相应处理。

#if TARGET_VERSION_LITE==0

#define SERVER_URL @"https://test1.feezu.cn"

#elif TARGET_VERSION_LITE==1

#define SERVER_URL @"https://test2.feezu.cn"

......

#else

#endif

2.配置不同的Copy Bundle Resources

通过配置不同target的Copy Bundle Resources资源图片来定制显示不同的APP,配置不同target的Compile Sources来实现功能逻辑上的不同。target->Build Phases

自动化打包上传蒲公英(2)_第4张图片
Copy Bundle Resources

3.创建新的类、添加图片资源

当我们创建类或者添加图片资源时,可以通过勾选相应的target来区分。

自动化打包上传蒲公英(2)_第5张图片
类的创建
自动化打包上传蒲公英(2)_第6张图片
添加图片


4.批量化打包上传蒲公英

使用Python语言和苹果提供的xcodebuild来构建脚本文件来实现批量自动化打包上传。

这里借鉴了大神写的脚本文件

功能流程介绍:

打包IPA --- > 上传蒲公英 ---> 打包IPA --- > 上传蒲公英 ...

使用说明(针对iOS开发者)代码地址

1、安装HomeBrew

安装命令:

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2、安装xctool用于iOS项目打包

$ brew install xctool

3、安装pip

(1).我们先获取pip安装脚本:

$ wget https://bootstrap.pypa.io/get-pip.py

如果没有安装wget可以执行安装

$ brew install wget

(2).安装pip

$ sudo python get-pip.py

4、安装Python虚拟环境virtualenv

$ sudo pip install virtualenv

5、进入下载的项目所在的目录

$ cd(you path)

$ virtualenv venv      执行此命令后会在当前目录下创建一个venu文件夹

         New python executableinvenv/bin/python

         Installing distribute............done.

$ venv/bin/pip install -r requirements.txt

6、配置项目

修改Config.py文件,如何配置根据注释来。修改template文件夹下的config.plist,根据config.plist中的数据来批量定制不同的APP。

7、自动打包(需要在脚本文件的根目录下)

$ venv/bin/python Client.py

打包完成后,可以在history文件夹下看到生成的ipa包

你可能感兴趣的:(自动化打包上传蒲公英(2))