iOS自动化打包+环境配置

iOS自动化打包

14c1314d6a341c5b3bbf287fe87f7e09.jpg

前言

通常打包步骤:

  1. 修改环境变量(main.cfg, qlconfig.js),不同环境还要切换bundle id,切换证书等。
  2. Archive
  3. 修改名称,上传svn

使用自动化打包之后,这些操作只需要一步就能完成。后续搭建好了Jenkins自动化部署后,从打包到上传svn到发布邮件都只需要一步。

环境配置

1.新建Build Configuration

Configuration系统默认是2个,一个Debug,一个Release

F80E7354-0991-477B-AABC-CEC5B4B093E1.png

我们在这儿新建一个Production用于生产。

2. 新建Scheme

我们每一个券商对应一个scheme,每一个券商都新建两个scheme来对应正式和生产。

F3163DD8-215F-4376-9CA1-226406BC463A.png

将run和archive模式也改为对应的configuration
6B34FF0B-85F7-49DF-9EF4-B6DC424D3732.png

3. build setting 修改

bundle id 和 证书 都在build setting中根据configuration修改成对应的内容。

FE5C9514-22D3-49B5-B74B-51DA59FB23B3.png

4. 配置和获取环境变量

使用GCC预编译头参数GCC_PREPROCESSOR_DEFINITIONS

3D3BBC58-0C57-4B95-AA42-E527700D3BFC.png

之前区分正式测试用的main.cfg文件中的isProduct字段,现在区分正式通过代码中判断DEBUGRELEASEPRODUCTION来区分正式测试。

之前qlconfig每次都需要根据券商修改。

自动化打包

基本原理,使用xcode-build命令

fastlane
  1. 找到fastfile 看有哪些命令
  2. 民生为例,cd 到目录,fastlane minsheng_t
platform :ios do

    # ----------------------- 打包内测.ipa文件 -----------------------
    lane :minsheng_t do|options|
    branch = options[:branch]

        puts "*************| 开始打包.ipa文件... |*************"

        # 更新项目build号
        # updateProjectBuildNumber

        # 开始打包
        gym(
            # 指定输出的ipa名称
            output_name:"#{project_ad_scheme}_#{get_build_number()}",
            # 指定项目的scheme
            scheme:"#{project_ad_scheme}",
            # 是否清空以前的编译信息 true:是
            clean:true,
            # 指定打包方式,Release 或者 Debug
            configuration:"Debug",
            # 指定打包方式,目前支持app-store, package, ad-hoc, enterprise, development
            # 注:由于使用手动配置证书,在export_options指定打包方式
            #export_method:"#{ipa_exportMethod}",
            # 指定输出文件夹
            output_directory:"#{ipa_outputDirectory}",
            # Xcode9将不会允许你访问钥匙串里的内容,除非设置allowProvisioningUpdates
            export_xcargs:"-allowProvisioningUpdates",
            # 隐藏没有必要的信息
            silent:true,
            # 手动配置证书,注意打包方式需在export_options内使用method设置,不可使用export_method
            export_options: {
                method:"#{ipa_exportMethod}",
                provisioningProfiles: {
                    "#{project_identifier}":"#{project_test_provisioningProfiles}"
                },
            }
        )
        # puts "*************| 开始上传蒲公英... |*************"
        # # 开始上传蒲公英
        # pgyer(api_key: "#{pgyer_apiKey}", user_key: "#{pgyer_userkey}")
        # puts "*************| 上传蒲公英成功🎉 |*************"
    end
end
Jenkins + Git/Svn + fastlane

配置构建条件,可以一键完成:上传svn -> 打包 -> 邮件发布 -> 上架Appstore

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容