博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xcodebuild和xcrun自动化编译ipa包 笔记
阅读量:6442 次
发布时间:2019-06-23

本文共 2888 字,大约阅读时间需要 9 分钟。

hot3.png

打包过程

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 
] [[-target
]...|-alltargets] [-configuration
] [-arch
]... [-sdk [
|
]] [
=
]... [
]... xcodebuild -workspace
-scheme
[-configuration
] [-arch
]... [-sdk [
|
]] [
=
]... [
]... xcodebuild -version [-sdk [
|
] [
] ] xcodebuild -list [[-project
]|[-workspace
]] 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

 

转载于:https://my.oschina.net/vimfung/blog/178354

你可能感兴趣的文章
Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序
查看>>
【CT】四、Turing Machines(2)
查看>>
【matlab】plot
查看>>
Kafka生产者APi
查看>>
有关计算机组成的分享~
查看>>
梳理回顾
查看>>
基于开源Dubbo分布式RPC服务框架的部署整合
查看>>
用C#实现智能设备上的NotifyIcon类
查看>>
HDU-2602-Bone Collector
查看>>
vs 2017 IIS EXPRESS 增加局域网访问
查看>>
POJ-2456 Aggressive cows---最大化最小值(也就是求最大值)
查看>>
解决WinSock中发送、接收多包问题
查看>>
CMDB资产管理系统开发:需求分析
查看>>
WebKit源代码里的RefPtr智能指针
查看>>
前端异常采集
查看>>
hadoop day 5
查看>>
mount什么意思
查看>>
c++-链表的回文结构
查看>>
XML模块
查看>>
编写自动化测试用例的原则
查看>>