zoukankan      html  css  js  c++  java
  • iOS 命令行打包--xcworkspace

    参考:

    打包的具体操作步骤:

      https://www.jianshu.com/p/6a0aa8cd2e97

    打包时使用到的参数详解,参考这篇:

      https://debugtalk.com/post/iOS-Android-Packing-with-Jenkins-details/index.html

     

    xcodebuild命令详解:

      https://www.jianshu.com/p/770d5df137bf 

     注意:

    补充一点:

      xcodeproj和xcworkspace的区别是:xcworkspace使用了cocoapods来管理第3方库 

      采用Cocoapod管理项目依赖,每次拉取最新代码后直接编译可能会报错。这往往是因为其他同事更新了依赖库(新增了第三方库或升级了某些库),而本地还采用之前的第三方库进行编译,从而会出现依赖库缺失或版本不匹配等问题。

      应对的做法是,在每次build之前都更新一下Cocoapod。

    # Update pod repository
    pod repo update
    # Install pod dependencies
    pod install

     

      配置完后,先进行构建 ,可以 拉到代码 再进行第2步的修改

     

      可以看到已经将代码 clone到本地了

     

     

    在执行正式的脚本前,要做一些准备工作:

    ios使用pods管理第三方库,每次构建job时,需要先更新pods库

    。和python中用pip管理第3方库类似。不更新第3方库,将导致程序中依赖第3方库的功能不可用

    export LANG=en_US.UTF-8
    # xcworkspace文件所在目录 
    TARGET_PATH="trunk/5iwork/ios"
    #Podfile路径
    PODFILE=${WORKSPACE}/${TARGET_PATH}
    
    cd ${PODFILE}
    
    echo -e "============Update pod repository============"
    pod repo update
    
    echo -e "============Install pod dependencies============"
    echo ${PODFILE}
    pod install

    注意这些命令要在项目目录xcworkspace文件所在目录执行

    打包脚本:

    ## !/bin/sh
    ## 项目名
    TARGET_NAME="cbs_new5iwork"
    ## xcworkspace文件所在目录 
    TARGET_PATH="trunk/5iwork/ios"
    ## Scheme名
    SCHEME="cbs_new5iwork"
    ##=======================
    ## 编译类型
    BUILD_TYPE=staging #jenkins布署环境,通过代码配置的:打包uat时选择的是staging|线上对应的是Release,Release包需要开发打包
    #BUILD_TYPE="Release" #测试编译类型
    ## 当前目录
    SORCEPATH=${WORKSPACE}  #jenkins job配置目录 
    #SORCEPATH="/Users/5i5j/Desktop" #测试路径
    # workspace名
    SPACE=${WORKSPACE}/${TARGET_PATH}/${TARGET_NAME}.xcworkspace
    ##xcarchive文件的存放路径
    ARCHIVEPATH=${SORCEPATH}/build/${SCHEME}.xcarchive
    ## ipa文件的存放路径
    EXPORTPATH=${SORCEPATH}/build/${SCHEME}
    ## ExportOptions.plist文件的存放路径
    #EXPORTOPTIONSPLIST=$SORCEPATH/build/ExportOptions.plist
    EXPORTOPTIONSPLIST=${WORKSPACE}/${TARGET_PATH}/cbs_new5iwork/Resources/ExportOptions.plist
    
    ## 导出后的ipa路径
    EXPORTPATHIPA=${SORCEPATH}/build/${SCHEME}/${SCHEME}.ipa
    
    
    
    ## 清理老的xcarchive文件
    rm -rf ${ARCHIVEPATH}
    
    echo -e "============First Build Clean============"
    ## 清理缓存
    xcodebuild clean -workspace ${SPACE} -scheme ${SCHEME} -configuration ${BUILD_TYPE}
    
    echo -e "============Build Clean============"
    ## 输出关键信息
    echo -e "  TARGET_NAME    : ${TARGET_NAME}"
    echo -e "  BUILD_TYPE    : ${BUILD_TYPE}"
    echo -e "  SORCEPATH    : ${SORCEPATH}"
    echo -e "  ARCHIVEPATH    : ${ARCHIVEPATH}"
    echo -e "  EXPORTPATH    : ${EXPORTPATH}"
    echo -e "  EXPORTOPTIONSPLIST    : ${EXPORTOPTIONSPLIST}"
    
    echo -e "============Build Archive============"
    
    ## 导出archive包
    xcodebuild archive -workspace ${SPACE} -scheme ${SCHEME} -archivePath ${ARCHIVEPATH}  -configuration ${BUILD_TYPE}
    
    echo -e "============Build Archive Success============"
    
    echo -e "============Export IPA============"
    
    ## 导出IPA包
    xcodebuild -exportArchive -archivePath ${ARCHIVEPATH} -exportPath ${EXPORTPATH} -exportOptionsPlist ${EXPORTOPTIONSPLIST}
    
    echo -e "============Export IPA SUCCESS============"
    
    ## 编译完成时间 20181030_0931
    BUILD_DATE="$(date +'%Y%m%d_%H%M')"
    
    ## info.plist路径
    PROJECT_INFOPLIST_PATH="${SORCEPATH}/${TARGET_PATH}/${TARGET_NAME}/Info.plist"
    ## 取版本号
    BUNDLESHORTVERSION=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" "${PROJECT_INFOPLIST_PATH}")
    ## 取build值
    VERSION=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${PROJECT_INFOPLIST_PATH}")
    ## ipa更名规则  项目名V版本_年月日_时分
    IPANAME="${TARGET_NAME}V${BUNDLESHORTVERSION}_${BUILD_DATE}.ipa"
    ## 更名后ipa路径
    EXPORTPATHNEWIPA=${EXPORTPATH}/${IPANAME}
    
    echo -e "============Export end :${BUILD_DATE}============"
    echo -e "============IPA Old Name: ${EXPORTPATHIPA}============"
    echo -e "============IPA New Name: ${EXPORTPATHNEWIPA}============"
    
    ## IPA更名
    cp $EXPORTPATHIPA $EXPORTPATHNEWIPA
    
    echo -e "============Create New Name Success============"
    
    ## 删除老IPA
    ##rm $EXPORTPATHIPA
    
    ##echo -e "============Delete Old Name Success============"
  • 相关阅读:
    苹果MAC OS查看MAC地址及修改ip
    win10系统绑定本地IP和mac地址
    CentOS7 配置阿里云yum源,非常之简单
    Prism框架研究(一)
    如何建立一个WCF服务并将其发布到IIS上
    SQL Server2012如何导出sql脚本并且还原数据库
    WPF设置软件界面背景为MediaElement并播放视频
    一个加载时带动画效果的ListBoxItem
    无法将从VSS中的解决方案添加到TFS的源代码管理器中
    关于WPF中Popup中的一些用法的总结
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/11174289.html
Copyright © 2011-2022 走看看