xcode8.3.2 shell 命令打包

使用xcodebuild 命令进行打包

首先看看命令到底有哪些
打开终端 输入 man xcodebuild

image.png

看不懂的谷歌翻译一下(程序员基本技能)

注意:以下示例shell脚本代码中的变量都需要自定义并赋值!

【清理build工作目录】在进入项目根目录后执行:

clean -configuration ${development_mode} || exit

【打包】在进入项目根目录后执行:

xcodebuild \
    archive -workspace ${project_path}/${project_name}.xcworkspace \
    -scheme ${scheme_name} \
    -configuration ${development_mode} \
    -archivePath ${build_path}/${project_name}.xcarchive  || exit

archive 指明操作是打包;

-workspace 指明需要打包的是一个workspace而不是project,

如果是打包project,这里的路径和问价明就更改为对应的project即可;

-scheme 一般和项目同名;

-configuration 指明打包模式是Debug还是Release;

-archivePath 指明打包操作的路径;

|| exit 指明如果这一条命令执行失败,则退出当前shell;

【导出安装包】在项目根目录执行:

xcodebuild -exportArchive -archivePath ${build_path}/${project_name}.xcarchive \
    -configuration ${development_mode} \
    -exportPath ${exportFilePath} \
    -exportOptionsPlist ${exportOptionsPlistPath} || exit

有一些配置项和上面的 xcodebuild archive 是相同的,所以需要两个命令的参数匹配

-exportPath 指明.ipa文件到处的路径;

-exportOptionsPlist 指明 exportOptions.plist 文件的位置,这个文件是-exportArchive必需的参数;

实测exportOptions.plist文件里可以什么都不配置,

只要Xcode的project或者workspace里设置好了对应参数就好!

如果通过Xcode打开这个exportOptions.plist文件,你也可以为其配置以下内容(资料来源):(不过我并没有任何配置也完成了ipa打包)

method: (String) The method of distribution, which can be set as any of the following:
    app-store
    enterprise
    ad-hoc
    development
teamID: (String) The development program team identifier.
uploadSymbols: (Boolean) Option to include symbols in the generated ipa file.
uploadBitcode: (Boolean) Option to include Bitcode.

觉得还不懂的可以看一下我的完整打包命令:

DATE=`date +%Y%m%d_%H%M`
#工程绝对路径
project_path=$(pwd)

#工程名
project_name=CRMForThinvent

#打包模式 Debug/Release
development_mode=Debug

#scheme名
scheme_name=CRMForThinvent

#build文件夹路径
build_path=${project_path}/build

#plist文件所在路径
exportOptionsPlistPath=${project_path}/exportOptions.plist

#导出.ipa文件所在路径
exportFilePath=${project_path}/ipa/${development_mode}${DATE}

echo '*** 正在 清理工程 ***'
xcodebuild \
clean -configuration ${development_mode} -quiet  || exit
echo '*** 清理完成 ***'

echo '*** 正在 编译工程 For '${development_mode}
xcodebuild \
archive -workspace ${project_path}/${project_name}.xcworkspace \
-scheme ${scheme_name} \
-configuration ${development_mode} \
-archivePath ${build_path}/${project_name}.xcarchive -quiet  || exit
echo '*** 编译完成 ***'

echo '*** 正在 打包 ***'
xcodebuild -exportArchive -archivePath ${build_path}/${project_name}.xcarchive \
-configuration ${development_mode} \
-exportPath ${exportFilePath} \
-exportOptionsPlist ${exportOptionsPlistPath} \
-quiet || exit

if [ -e $exportFilePath/$scheme_name.ipa ]; then
echo "*** .ipa文件已导出 ***"
open $exportFilePath
else
echo "*** 创建.ipa文件失败 ***"
fi
echo '*** 打包完成 ***'

我只是搬运工,原文链接:http://www.cnblogs.com/ficow/p/6823962.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文始发于我的博文详解Shell脚本实现iOS自动化编译打包提交,现转发至此。 目录 前言 Shell脚本涉及的工...
    zackzheng阅读 44,698评论 95 173
  • 前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段。用户们都是很挑剔的。如果一个公司的推广...
    闲云清烟阅读 7,276评论 1 4
  • 本文转自CaryaLiu's Blog。 本文最终实现的是使用脚本打 Ad-hoc 包,并发布测试,当然稍微修改一...
    M_Baron阅读 4,642评论 1 0
  • 关于 iOS 自动化打包的一点看法 如果你曾经试过做多 target 的项目,到了测试人员要测试包的时候,你就会明...
    Tsui_YuenHong阅读 11,543评论 18 63
  • 我想开个新坑,不知道写什么,你们喜欢什么样的题材? 关于开新坑,有几个疑惑。一是比较嫌弃自己的文笔,如果开新坑,不...
    当流云滑过天空阅读 1,333评论 5 4

友情链接更多精彩内容