实现Xcode 9自动化打包

作者: 3697d6c42285 | 来源:发表于2017-11-30 17:52 被阅读1400次

    自动化打包脚本

    #!/bin/sh
    
    #需要接受3个参数 1、scheme名 2、工程目录 3、工程名字
    
    #project目录
    PROJECT_PATH=$1
    #project名称
    PROJECT_NAME=$2
    #scheme名称
    SCHEME_NAME=$3
    #现在时间(做文件夹名称使用)
    DATE=`date +%Y%m%d%H%M`
    #归档文件地址
    ARCHIVE_PATH=$PROJECT_PATH/$DATE/$SCHEME_NAME
    
    #通过archive归档出对应的xcarchive文件
    #对应步骤:
    #1、清理工程
    #2、归档工程
    #3、工程名称
    #4、设置工程Scheme
    #5、设置Debug或者Release模式
    #6、归档输出地址
    #7、特殊设置,可忽略,为了让过程更清晰
    xcodebuild clean \
    archive \
    -project "$PROJECT_PATH/$PROJECT_NAME" \
    -scheme "$SCHEME_NAME" \
    -configuration "Release" \
    -archivePath "$ARCHIVE_PATH" \
    | xcpretty
    
    echo "--------------------------------------"
    
    #通过归档文件打包出对应的ipa文件
    #对应步骤:
    #1、打包命令
    #2、归档文件地址
    #3、ipa输出地址
    #4、ipa打包设置文件地址
    xcodebuild -exportArchive \
    -archivePath "$ARCHIVE_PATH.xcarchive" \
    -exportPath "$PROJECT_PATH/$DATE" \
    -exportOptionsPlist "$PROJECT_PATH/ExportOptions.plist"
    
    open $PROJECT_PATH
    

    前排提示:需要确保工程在没使用脚本的情况下也可以成功的进行归档与打包,脚本只是为了简化过程


    遇到过的问题

    1. xcodebuild: error: The flag -scheme is required when specifying -archivePath but not -exportArchive.
      问题在于当你设置了 archivePath 的时候,必须要设置对应的是哪一个 scheme 。否则的话,命令不知道是对哪个 scheme 进行归档操作,无法继续进行
    2. This project contains no schemes.
      通过命令xcodebuild -list查找工程中包含有哪些 scheme 的时候,提示该工程没有 scheme。
      解决方法:
      1、打开管理 scheme 界面
      进入管理 scheme
      2、打开对应的 Shared 开关
      scheme 管理界面
      3.exportOptionsPlist 内容
      如果不确定exportOptionsPlist中的内容有哪些,那么可以通过 Xcode 打包来获取对应的.plist的内容,再作删减等处理。
      1、Export 对应的Archive

      2、选择 Development (其他的暂时没试过)
      打包界面
      3、 然后选择对应的配置,一直 next 直到打包出来就好
      4、打包出来之后,在文件夹中会有多个文件,ExportOptions.plist即为所需的.plist文件

    相关文章

      网友评论

      • 贪嗔痴_6a76:请问这边脚本打出来的包是dis包还是dev包
        贪嗔痴_6a76:@VirusKnight 我的目的是想同一个工程配置不同的证书,打几个包。
        贪嗔痴_6a76:@VirusKnight 请问一下知道怎么配置证书吗?我在网上找了一些,都是报错的
        3697d6c42285:具体的包的配置ExportOptions.plist中进行配置
        包括用什么证书,dis包还是dev包,是否有bitcode等
      • 上吊的豆腐:xcodebuild: error: '/Users/xijuanpu/Desktop/WoAssistantProject_T_zddb/WoAssistantProject.xcworkspace' is not a project file. 报这个错是因为什么原因?
        3697d6c42285:@上吊的豆腐 使用的不是.xcworkspace文件,而应该是工程对应的 .xcodeproj 文件

      本文标题:实现Xcode 9自动化打包

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