zoukankan      html  css  js  c++  java
  • iOS开发系列-自动化分发测试打包

    概述

    项目在测试阶段需要频繁打包给测试人员,对于这些固定化的操作我们可以使用自动化的手段去解决,将时间放在有意义的事情上。
    xcodebuild 是苹果发布自动构建的工具。

    Shell脚本打包

    xcrun PackageApplication方式在Xcode升级到8.3已就过期了,苹果建议我们使用xcodebuild -exportArchive的方式。

    我们平时通过Xcode执行Run命令,生成iPa的中间主要分为两个大的步骤:

    1. xcodebuild archive生成ProjectName..xcarchive文件
    2. xcodebuild -exportArchive将1步骤中的.xcarchive生成ipa安装包

    打包脚本编写

    创建一个xcodebuild.sh用来编写脚本如下:

    #!/bin/bash
    
    ZWProjectName="TestProj"
    ZWScheme="TestProj"
    ZWConfiguration="Release"
    
    ZWDate=`date +%Y%m%d_%H%M`
    ZWWorkspace=`pwd`
    echo "workspace=$ZWWorkspace-----------------------"
    ZWBuildDir="$ZWWorkspace/build"        #build路径
    ZWBuildTempDir="$ZWBuildDir/temp/$ZWDate"    #构建过程中的文件
    HCIpaDir="$ZWBuildDir/ipa"                                #生成ipa文件路径
    
    #-------PackageApplication已经不推荐使用了 warning: PackageApplication is deprecated, use `xcodebuild -exportArchive` instead.-----
    
    xcodebuild archive 
    -workspace "$ZWWorkspace/$ZWProjectName.xcodeproj/project.xcworkspace" 
    -scheme "$ZWScheme" 
    -configuration "$ZWConfiguration" 
    -archivePath "$ZWBuildTempDir/$ZWProjectName.xcarchive"
    #CODE_SIGN_IDENTITY="" #证书
    #PROVISIONING_PROFILE="" #描述文件UUID
    
    xcodebuild 
    -exportArchive 
    -archivePath "$ZWBuildTempDir/$ZWProjectName.xcarchive" 
    -exportPath "$HCIpaDir/$ZWDate/" 
    -exportOptionsPlist "./exportOptionsPlist.plist" 
    #CODE_SIGN_IDENTITY="" #证书
    #PROVISIONING_PROFILE="" #描述文件UUID
    

    对于证书文件与描述文件我们可以添加,如果这里没有填写,那么会默认按着xcode的当前配置。如果你想在这里配置,可通过下面的方式来获取CODE_SIGN_IDENTITY与PROVISIONING_PROFILE对应的内容。

    CODE_SIGN_IDENTITY的获取

    在钥匙串找到我们的证书,右键显示简介,可查看对应证书的CODE_SIGN_IDENTITY

    PROVISIONING_PROFILE的获取

    描述文件UUID的获取,安装的的描述文件在电脑的安装路径/Users/haifeng/Library/MobileDevice/Provisioning Profiles。点击对应的证书预览中就可以看到UUID。

    exportOptionsPlist.plist

    对于通过xcodebuild -exportArchive方式生成ipa需要一个exportOptionsPlist.plist文件。主要描述了打包的一些信息。这个可能随着xcode版本会变化,我们可以通过第一次使用Xcode手动打包一次生成不止ipa还有一个ExportOptions.plist的文件。我们只需要将这个文件名修改exportOptionsPlist.plist就可以了。

    执行脚本自动化打包

    Xcode配置

    在执行脚本之前确保一下配置

    • 当前编译配置release
    • 由于我这里没有开发者账号密码 我手动配置

      配置完后编译项目不存在报错就可以了,可以继续下面的流程。

    将我们编写的xcodebuild.sh与exportOptionsPlist.plist放在Project.xcodeproj的同目录下,终端执行脚本。

    这里我在生成ipa的工程中报错,发现不会主动创建ipad文件夹原因导致,这里我展示通过手动在build目录下创建ipa文件夹解决的。

    分发

    我这里通过蒲公英进行发布。这是在上面的脚本添加了蒲公英官方文档中的分发脚本。

    #通过蒲公英提供的上传应用 API,调用系统的 curl 命令来上传应用。
    FilePath="$HCIpaDir/$ZWDate/${ZWScheme}.ipa"
    UKey="User key" #开发者的用户 Key,在应用管理-API中查看
    ApiKey="API key" #是开发者的 API Key,在应用管理-API中查看 注意不是APPKey
    
    chmod -R 777 "${FilePath}"
    curl 
    -F "file=@${FilePath}" 
    -F "uKey=${UKey}" 
    -F "_api_key=${ApiKey}" 
    https://www.pgyer.com/apiv2/app/upload
    

    关于蒲公英uKey与_api_key的获取在应用管理-API中查看 注意不是应用的APPKey

    再次执行脚本,终端最终输出如下,就代表上传应用成功。

  • 相关阅读:
    HTML5结构
    HTML5新增的非主体元素header元素、footer元素、hgroup元素、adress元素
    CF GYM 100703G Game of numbers
    CF GYM 100703I Endeavor for perfection
    CF GYM 100703K Word order
    CF GYM 100703L Many questions
    CF GYM 100703M It's complicate
    HDU 5313 Bipartite Graph
    CF 560e Gerald and Giant Chess
    POJ 2479 Maximum sum
  • 原文地址:https://www.cnblogs.com/CoderHong/p/8931562.html
Copyright © 2011-2022 走看看