美文网首页
iOS自动打包并发布测试版本

iOS自动打包并发布测试版本

作者: Dincoln | 来源:发表于2017-10-09 21:44 被阅读0次

    本文主要涉及一下几个方面的内容:

    1、xcodebuild的介绍

    2、使用xcodebuild打包生成Ad-hoc的ipa文件

    3、将打包好的文件上传到测试平台

    3、将过程脚本化

    xcodebuild简介

    xcodebuild 是苹果自己发布的自动构建的工具,Xcode的Command Line Tools自带该工具,一般不需要我们手动安装。在Xcode8以前还可以使用xctool来实现,但是xctool在Xcode8以后不再支持build功能,Facebook团队推荐转回官方的xcodebuild,坑爹的我还花了一段时间研究。

    我们需要在目标工程目录下执行 xcodebuild 命令,xcodebuild -help可查看相关的说明,里面的说明十分详细。

    xcodebuild打包生成

    打包ipa我们主要用到以下几条命令:

    1. xcodebuild clean -project $projectname -scheme $schemeName
      清理工程,避免出现一些奇怪的错误
    2. xcodebuild archive -project $projectname -scheme $schemeName -configuration $configuration -archivePath
      生成Archive文件
    3. xcodebuild -exportArchive -archivePath $archivePath -exportPath $exportPath -exportOptionsPlist $exportOptionsPlist
      从Archive文件导出ipa

    -project:项目名称,如果工程目录里面里面有多个工程,必须指定,如果项目使用了cocoapods,此处应该使用-workspace,即

    xcodebuild archive -workspace $projectname -scheme $schemeName -configuration $configuration -archivePath

    -archivePath:Archive文件导出目的路径

    -exportPath:ipa文件导出路径’

    -scheme:指定scheme

    -configuration:指定版本release或者debug

    以上两个可以通过-xcodebuild -list查看可用值

    -exportOptionsPlist:打包的相关配置参数,该参数是一个.plist文件路径,里面包含一些我们打包需要用到的配置,例如:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">;
    <plist version="1.0">
    <dict>
            <key>method</key>
            <string>enterprise</string> 
            <key>compileBitcode</key> 
            <false/>
    </dict>
    </plist>
    

    对于大部分情况我们只需要指定这两个参数,更多详细的可参照xcodebuild -help里面的说明。
    此外,-list, -showBuildSettings, -showsdks 的参数可以查看项目或者工程的信息。

    上传到测试平台

    本人使用的是fir,下载安装命令行客户端

    fir publish filePath(ipa文件路劲)

    如果使用的是其他的发布平台,将上传脚本替换成对应平台的即可

    过程脚本化

    #!/bin/sh
    #项目路径
    projectfile=/Users/my/Desktop/PackDemo
    
    #工程文件路径
    project=PackDemo.xcworkspace
    
    #scheme名称
    scheme=PackDemo
    
    #target名称
    target=PackDemo
    
    #编译版本
    configuration=Release
    
    #archive文件路径
    archivePath=~/desktop/打包/$target/$target.xcarchive
    
    #ipa包导出路径
    exportPath=~/desktop/打包/$target
    
    #打包配置文件路径
    exportOptionsPlist=$projectfile/exportOptionsPlist.plist
    
    #上传时,ipa包路劲
    publishPath=$exportPath/$target.ipa
    
    #进入项目所在文件
    cd $projectfile
    
    # 清理工程
    xcodebuild clean -workspace $project -scheme $scheme -configuration $configuration
    
    #上传fir
    function upload
    {
        fir publish $publishPath
        rm -r $archivePath
    }
    
    #导出ipa文件,会在$exportPath路径生成ipa文件
    function export
    {
    xcodebuild -exportArchive -archivePath $archivePath -exportPath $exportPath -exportOptionsPlist $exportOptionsPlist
    if [ $? -eq 1 ]
    then
    echo "ipa导出失败"
    read
    else
    clear
    echo "ipa导出成功"
    # upload
    fi
    }
    
    #archive项目,会在$archivePath路径生成PackDemo.xcarchive文件
    function archive
    {
    xcodebuild archive -workspace $project -scheme $scheme -configuration $configuration -archivePath $archivePath
    if [ $? -eq 1 ]
    then
    echo "编译失败"
    read
    else
    clear
    echo "编译成功"
    export
    fi
    }
    
    #开始执行
    archive
    

    到此完成了自动化打包脚本,本人习惯为每个项目都生成一个对应的脚本,里面写好打包的工程配置,内容都基本相同,只需要修改对应的路径参数即可,每次需要打新的测试包,只需打开对应的脚本文件即可。
    另外,Application Loader命令行可以让我们通过脚本上传App Store,详细的教程请参考苹果文档https://itunesconnect.apple.com/docs/UsingApplicationLoader.pdf

    相关文章

      网友评论

          本文标题:iOS自动打包并发布测试版本

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