美文网首页
iOS自动打包

iOS自动打包

作者: 吃人不放盐 | 来源:发表于2019-08-09 11:58 被阅读0次

    目录

    一. 打包原理

    二. Jenkins自动打包

      1. Jenkins安装与配置
       1.1 安装
       1.2 配置
        1.2.1 打包相关插件
        1.2.2 Keychains配置
        1.2.3 任务配置
      2. 自动上传托管平台
      3. 邮件通知

    三. Jenkins权限管理

    四. 可能会碰到的一些问题



    一.打包原理

    xcode正常打包过程是需要编译、归档和导出,这都依赖于自带的工具,所以了解这些工具的使用是很有必要的。

    建议先看看APP编译工具链

    这里介绍一下xcode最重要的一个工具xcodebuild。

    • xcodebuild 可以通过配置相关参数来编译和导出ipa包
    命令名称 描述
    -usage 查看xcodebuild简洁的用法
    -help 查看帮助
    -project 编译项目名称
    -target 编译目标名称
    -workspace 工作空间名称
    -scheme 编译scheme名称
    -configuration 为构建每一个目标使用build配置名称
    -sdk 使用指定的SDK编译项目
    -toolchain 使用工具链与标识或名称
    -showsdks 显示已安装的SDK的列表
    -list 列出了在一个工作空间中的一个项目的目标和配置,或方案
    -archivePath 归档将被放置的目录
    -exportArchive 制定的归档导出路径

    我们可以用以上命令来走一遍正常的打包流程(此处证书为自动管理)
    编译:

    xcodebuild -workspace "" -scheme "" -configuration ""

    -workspace编译基于 xcworkspace
    -scheme 编译工程名
    -configuration 编译环境 Debug Release

    归档:

    xcodebuild -workspace "" -scheme "" -configuration "" -archivePath "" archive

    archivePath 归档路径

    导出:

    xcodebuild -exportArchive -archivePath "" -exportPath "" -exportOptionsPlist ""

    exportArchive 声明导出
    exportPath 包导出路径
    exportOptionsPlist 导出配置

    通过以上命令,我们其实可以直接写成脚本来自动化执行(脚本打包),但是如果我们采用jenkins方案来打包,你会发现,其实还可以更简单,更人性化。

    二.Jenkins自动打包

    1.Jenkins安装与配置

    1.1 安装

    homebrew是osx系统自带的软件管理工具,我们可以通过它在终端直接安装。
    安装命令:

    brew install Jenkins

    启动命令:

    jenkins

    注意启动后终端窗口不要关闭,否则jenkins服务会停止。

    如果一切顺利,打开浏览器输入:http://localhost:8080/
    在打开jenkins的时候,会让你输入在安装的时候生成的password, 如果没有保存就根据提示到对应文件下拷贝,完成之后开始安装对应插件,建议推荐的插件都安装(有些关联功能需要,如邮箱)。

    之后便是开始创建用户

    注册成功后,我们还需要对Jenkins做一系列的相关配置。

    1.2 配置

    1.2.1 打包相关插件

    Keychains and Provisioning Profiles Management (本地keychain和iOS证书管理)
    Xcode integration (用于xcode构建)

    打开Jenkins管理->插件管理,搜索对应插件下载安装即可.
    网上提供有两种安装方式:
    方案一:选择搜索插件名,勾选安装
    方案二:去Jenkins-plug官网下载插件,然后选高级,上传.hpi文件.

    1.2.2 Keychains配置

    打开Jenkins管理->配置文件管理
    这里需要上传login.keychain文件,该文件获取方法,在终端中输入

    cd ~/Library/Keychains

    键入ls见下图

    keychains.png

    这里需要上传login.keychain文件,在新版本的xcode中只有login.keychain-db文件,这边直接拷贝一份出来,去掉右后,然后上传即可。

    Password 开机密码
    Identities 要配置证书的完整名称
    Provisioning Profiles 证书配置文件的路径 (注意用户名要替换掉)

    keychains配置.png

    1.2.3 开始任务配置

    上面的所有配置完成后,我们就可以新建任务了,选自由风格任务,就会有如下6项相关配置:


    job_config.png
    • General 主要配置一些构建版本的相关策略
    • 源码管理 主要是管理代码源,可选git或svn,需要相关配置
    • 构建触发器 配置版本构建的触发策略
    • 构建环境 配置Keychains
    • 构建 配置打包环境、包名、输出路径
    • 构建后操作 配置构建成功后的处理(这里需要先去配置上传托管平台邮件
      job_config_0.png
      job_config_1.png
      job_config_2.png
      job_config_3.png
      job_config_4_0.png
      job_config_4_1.png
      job_config_4_2.png
      job_config_5_0.png
      job_config_5_1.png
      job_config_5_2.png

    以上全部配置完后点保存,便可以开始使用了

    最后放一个打包完,自动上传并邮件通知的截图


    job_email_result.png

    2.自动上传托管平台

    首先需要安装对应托管平台的插件,我们平常用的fir和pgyer官网上都有对应的Jenkins插件,
    下载对应的插件,然后到Jenkins管理->插件管理->高级 上传插件即可.
    上传后可在任务配置中选择要上传的平台。

    job_plugin.png

    3.邮件通知

    首先我们到Jenkins管理->系统配置,在下面可以配置相关的邮件地址和内容

    job_email_0.png
    job_email_1.png
    job_email_2.png
    job_email_3.png

    保存 over.

    三.Jenkins权限管理

    如果需要对不同项目和用户进行权限管理,则需要安装插件Role-based Authorization Strategy

    四.可能会碰到的一些问题

    1.找不到xcodebuild命令,可能是安装了多个版本的xcode,最后导致指向路径不对,可通过下面进行配置


    xcodebuild_0.png

    或直接用xcode-select命令去指向

    • xcode-select -p 查看xcode指向路径
    • xcode-select -s 切换指定的路径

    2.Archive成功,export ipa文件时失败,报以下错误:error: exportArchive: The data couldn’t be read because it isn’t in the correct format

    • jenkins在导出包的时候,好像不支持bitcode,这里需要在jenkins配置,构建里边取消bitcode(有知道不用的取消的还请告知)。

    参考

    1. xcode编译
    2. ToolChain
    3. xcodebuild命令
    4. iOS-自动化打包方案
    5. 使用jenkins实现xcode自动打包
    6. Xcode 编译工具链
    7. Jenkins针对不同项目组用户权限分配

    相关文章

      网友评论

          本文标题:iOS自动打包

          本文链接:https://www.haomeiwen.com/subject/nvpcjctx.html