文档章节

xcodebuild和xcrun自动化编译ipa包 笔记

vimfung
 vimfung
发布于 2013/11/22 17:21
字数 543
阅读 3027
收藏 10

打包过程

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

 

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

共有 人打赏支持
vimfung

vimfung

粉丝 60
博文 59
码字总数 85338
作品 4
广州
技术主管
私信 提问
加载中

评论(1)

创意总监
创意总监
借鉴
IOS自动化打包介绍

来自: 百度搜索研发部 http://stblog.baidu-tech.com/?p=1295 摘要 随着苹果手持设备用户的不断增加,ios应用也增长迅速,同时随着iphone被越狱越来越多的app 的渠道也不断增多,为各个渠道...

长平狐
2012/08/13
189
0
IOS自动化打包介绍

摘要 随着苹果手持设备用户的不断增加,ios应用也增长迅速,同时随着iphone被越狱越来越多的app 的渠道也不断增多,为各个渠道打包成了一件费时费力的工作,本文提供一种比较智能的打包方式来...

华宰
2012/01/05
4.9K
1
iOS提交ipa包时出现"The binary file XXX libswiftRemoteMirror.dylib is not permitted"

IOS打包主要分为Archive打包和.app文件打包,题主之前一直用着.app文件打包的,但是之前提交一个混编的swift项目打的包的时候,提交ipa报错如下: Paste_Image.png 提示:ERROR ITMS-90171:...

某杰
2016/12/15
0
0
IOS 使用xcodebuild xrun 编译 打包app 小结分享

我做了差不多10年的开发,从以前学vfp,c,vb,java,然后玩了3个月c#就不自量力地去应聘.net程序员了,后面怀着拼一拼的心态转去玩symbian,又搞了几年的IOS,这两年又转行做项目管理,再到今...

肖XX
2016/02/24
914
1
使用mac进行ios几种命令行打包方式

随着ios平台的发展以及发布要求的多样性,测试的需求,自动打包可一定程度上提高效率。 自动打包的方式有如下几种: 一、使用xcodebuild进行打包 参考apple文档:https://developer.apple.com...

HillYoung
2015/07/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mac java多版本控制

vim ~/.bash_profile ORACLE_JAVA_6_HOME="/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home"ORACLE_JAVA_7_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents......

晨猫
9分钟前
1
0
[转载]Qlist的用法

QList是一种表示链表的模板类。 QList是Qt的一种泛型容器类。它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作。 QList、QLinkedList和QVector提供的操作...

shzwork
9分钟前
0
0
谷歌的JavaScript编写风格中 13点值得我们注意的!

  对于那些还不熟悉JavaScript的编写风格的人,谷歌提供了编写JavaScript的编写风格指南,谷歌风格指南 其中列出了编写干净、可理解代码的最佳风格实践。   对于编写有效的JavaScript来说...

peakedness丶
24分钟前
3
0
Spring Boot2中配置HTTPS

1.生成证书 使用jdk,jre中的keytool.exe生成自签名的证书,需要配置JAVA_HOME和path环境变量,即jdk的环境变量。命令如下: keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA ...

voole
31分钟前
4
0
Spring Cloud Alibaba 新版本发布:众多期待内容整合打包加入!

在Nacos 1.0.0 Release之后,Spring Cloud Alibaba也终于发布了最新的版本。该版本距离上一次发布,过去了整整4个月!下面就随我一起看看,这个大家期待已久的版本都有哪些内容值得我们关注。...

程序猿DD
34分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部