zoukankan      html  css  js  c++  java
  • (转) xcodebuild和xcrun自动化编译ipa包 笔记

    转自:http://blog.csdn.net/totogo2010/article/details/8883100

    打包过程

    xcodebuild负责将工程源文件编译成xxx.app

    xcrun负责给xxx.app(签名并)打包成xxx.ipa

    第一步清理:xcodebuild  clean

    第二步编译:xcodebuild

    第三步打包:xcrun -sdk iphoneos PackageApplication -v path/To/xxx.app -o xxx.ipa

    bash shell入门:

    http://www.aka.org.cn/Lectures/002/Lecture-2.1.2/index.html

    使用getopts命令使用

    :表示有参数需要值

    #!/bin/bash
    while getopts h:ms option
    do 
        case "$option" in
            h)
                echo "option:h, value $OPTARG"
                echo "next arg index:$OPTIND";;
            m)
                echo "option:m"
                echo "next arg index:$OPTIND";;
            s)
                echo "option:s"
                echo "next arg index:$OPTIND";;
            ?)
                echo "Usage: args [-h n] [-m] [-s]"
                echo "-h means hours"
                echo "-m means minutes"
                echo "-s means seconds"
                exit 1;;
        esac
    done
    

      

    在使用getopts命令的时候,shell会自动产生两个变量OPTIND和OPTARG。OPTIND初始值为1,其含义是下一个待处理的参数的索引。只要存在,getopts命令返回true,所以一般getopts命令使用while循环;

    在while循环中判断 

    if getopts $param_pattern optname ;then
    			echo  "Error argument value for option $tmp_optname"
    			exit 2
    		fi
    

    可以判断参数值是否是下个参数名称,如果是,就退出

    #判断输入参数是否大与0
    if [ $# -lt 1 ];then
    	echo "Error! Should enter the root directory of xcode project after the ipa-build command."
    	exit 2
    fi
    
    #判断第一个参数是否是目录
    if [ ! -d $1 ];then
    	echo "Error! The first param must be a directory."
    	exit 2
    fi
    

      

    xcodebuild使用:

    sage: xcodebuild [-project <projectname>] [[-target <targetname>]...|-alltargets] [-configuration <configurationname>] [-arch <architecture>]... [-sdk [<sdkname>|<sdkpath>]] [<buildsetting>=<value>]... [<buildaction>]...
           xcodebuild -workspace <workspacename> -scheme <schemeName> [-configuration <configurationname>] [-arch <architecture>]... [-sdk [<sdkname>|<sdkpath>]] [<buildsetting>=<value>]... [<buildaction>]...
           xcodebuild -version [-sdk [<sdkfullpath>|<sdkname>] [<infoitem>] ]
           xcodebuild -list [[-project <projectname>]|[-workspace <workspacename>]]
           xcodebuild -showsdks
    Options:
        -usage                print full usage
        -verbose              provide additional status output
        -project NAME         build the project NAME
        -target NAME          build the target NAME
        -alltargets           build all targets
        -workspace NAME       build the workspace NAME
        -scheme NAME          build the scheme NAME
        -configuration NAME   use the build configuration NAME for building each target
        -xcconfig PATH        apply the build settings defined in the file at PATH as overrides
        -arch ARCH            build each target for the architecture ARCH; this will override architectures defined in the project
        -sdk SDK              use SDK as the name or path of the base SDK when building the project
        -parallelizeTargets   build independent targets in parallel
        -jobs NUMBER          specify the maximum number of concurrent build operations
        -showsdks             display a compact list of the installed SDKs
        -list                 lists the targets and configurations in a project, or the schemes in a workspace
        -find BINARY          display the full path to BINARY in the provided SDK
        -version              display the version of Xcode; with -sdk will display info about one or all installed SDKs
    

      

  • 相关阅读:
    力扣题解 125th 验证回文字符串
    力扣题解 242th 有效的字母异位词
    力扣题解 387th 字符串中的第一个唯一字符
    Ubuntu
    Ubuntu
    Ubuntu
    ubuntu
    go-vscode-ubuntu20.04安装部署
    go-vscode-windows安装部署
    2020年任务
  • 原文地址:https://www.cnblogs.com/greywolf/p/3459589.html
Copyright © 2011-2022 走看看