返回

高效iOS构建流程的构建方案

IOS

对效率有追求的公司,都应该有一套自动构建系统。目前我们使用的这套iOS构建流程,经过2年的使用,基本稳定下来。这篇文章主要用来记录目前自己使用的Jenkins打包脚本。在效率上,解放出开发人员的时间,更方便其他同事使用,保证打包的标准,避免配置或环境问题。

    ## **构建流程** 

    iOS构建流程主要包含以下几个步骤:

    1. **代码提交** :开发人员将代码提交到代码仓库。
    2. **构建触发** :代码提交后,Jenkins服务器自动触发构建。
    3. **编译** :Jenkins服务器编译代码,生成ipa包。
    4. **测试** :ipa包通过测试后,Jenkins服务器将ipa包上传到蒲公英。
    5. **发布** :蒲公英将ipa包分发给测试人员或用户。

    ## **Jenkins打包脚本** 

    Jenkins打包脚本是一个shell脚本,用于在Jenkins服务器上执行构建流程。脚本内容如下:

    ```
    #!/bin/bash

    # 设置环境变量
    export PROJECT_NAME="MyProject"
    export SCHEME_NAME="MyProject"
    export BUILD_CONFIGURATION="Release"
    export IPA_OUTPUT_PATH="/Users/Shared/ipa/${PROJECT_NAME}.ipa"

    # 编译代码
    xcodebuild -project "${PROJECT_NAME}.xcodeproj" -scheme "${SCHEME_NAME}" -configuration "${BUILD_CONFIGURATION}" -destination 'generic/platform=iOS' -derivedDataPath "build/${SCHEME_NAME}" clean build

    # 测试ipa包
    xcrun xctestrun -sdk iphonesimulator -scheme "${SCHEME_NAME}" -configuration "${BUILD_CONFIGURATION}" -destination 'platform=iOS Simulator,name=iPhone 8' | tee xctest.log

    # 上传ipa包到蒲公英
    curl -F "file=@${IPA_OUTPUT_PATH}" -F "uKey=xxx" -F "_api_key=xxx" https://www.pgyer.com/apiv2/app/upload

    # 发送邮件通知
    mail -s "iOS构建完成" -r "jenkins@example.com" "receiver@example.com" < xctest.log
    ```

    ## **使用说明** 

    1. 将Jenkins打包脚本保存到Jenkins服务器上。
    2. 在Jenkins上创建一个新的项目,并选择“构建一个自由风格的软件项目”。
    3. 在“源代码管理”部分,选择“Git”。
    4. 在“构建”部分,添加一个“执行shell”构建步骤,并指定Jenkins打包脚本的路径。
    5. 保存项目并运行构建。

    ## **总结** 

    通过使用上述构建流程,可以大大提高iOS构建的效率。开发人员只需要将代码提交到代码仓库,剩下的工作就由Jenkins服务器自动完成。这样,开发人员就可以专注于开发新功能,而不必担心构建和测试的问题。