iOS利用(Shell脚本)自动打包项目工程生成ipa
2016-12-15 00:34
671 查看
刚刚进入一家游戏公司,今天在研究iOS利用脚本打包项目工程。用xcode打包速度慢而且繁琐,所以选择脚本来做,在这里分享一下。
然后,编译好之后,怎么生产ipa包?
用xcrun命令
打开终端,cd到你的工程位置,然后先试一下xcodebuild命令,
执行xcodebuild需要指定你所需要对应的workspace和scheme
在执行$xcodebuild -workspace前,先查看下-list,这个可以知道xcodebuild命令下对应的参数需要填写的内容
然后执行$xcodebuild -workspace
再执行
成功后安装
下面介绍一下脚本语言
这种结果也是这套脚本的一个缺陷 需要在终端在执行一条语句将Xcarchive文件转成ipa的包
成功后如下图
这个方法虽然可以通过脚本打包,但是还是有缺陷
目前本人还在研究更方便快捷的方法
还会更新。。。。。。
打包方法
一.通过Xcode
其实当我们Xcode点击了build或者运行comand+R之后,Xcode自己执行的命令是xcodebuild这条命令.然后,编译好之后,怎么生产ipa包?
用xcrun命令
二.通过脚本
话不多说,先上手:打开终端,cd到你的工程位置,然后先试一下xcodebuild命令,
//xcrun chengpoleness@polen xcodebuild_iPA $ xcrun --version xcrun version 29. //xcodebuildchengpoleness@polen ios (develop) $ xcodebuild -version Xcode 7.1.1 Build version 7D175
执行xcodebuild需要指定你所需要对应的workspace和scheme
在执行$xcodebuild -workspace前,先查看下-list,这个可以知道xcodebuild命令下对应的参数需要填写的内容
chengpoleness@polen ios (develop) $ xcodebuild -list 2016-05-02 15:24:26.656 xcodebuild[16535:154176] [MT]PluginLoading: Required plug-in compatibility UUID ACA8656B-FEA8-4B6D-8E4A-93F4C95C362C for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XcodeColors.xcplugin' not present in DVTPlugInCompatibilityUUIDs 2016-05-02 15:24:26.661 xcodebuild[16535:154176] [MT] PluginLoading: Required plug-in compatibility UUID ACA8656B-FEA8-4B6D-8E4A-93F4C95C362C for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/OMColorSense.xcplugin' not present in DVTPlugInCompatibilityUUIDs Information about project "xxx": Targets: xxx xxxTests Build Configurations: Debug Release If no build configuration is specified and -scheme is not passed then "Release" is used. Schemes: xxx
然后执行$xcodebuild -workspace
xcodebuild-workspace/Users/chengpoleness/Documents/code/xxx/ios/xxx.xcworkspace -scheme xxx
再执行
$ xcodebuild
成功后安装
$sudo gem install gym
下面介绍一下脚本语言
#!/bin/bash #计时SECONDS=0 #假设脚本放置在与项目相同的路径下 project_path=$(pwd) #取当前时间字符串添加到文件结尾 now=$(date +"%Y_%m_%d_%H_%M_%S") #指定项目的scheme名称 scheme="DemoScheme" #指定要打包的配置名 configuration="Adhoc" #指定打包所使用的provisioning profile名称 provisioning_profile='AdHoc Profile' #指定项目地址 workspace_path="$project_path/Demo.xcworkspace" #指定输出路径 output_path="/Users/your_username/Documents/" #指定输出归档文件地址 archive_path="$output_path/Demo_${now}.xcarchive" #指定输出ipa地址 ipa_path="$output_path/Demo_${now}.ipa" #获取执行命令时的 commit messagecommit_msg="$1" #输出设定的变量值 echo "===workspace path: ${workspace_path}===" echo "===archive path: ${archive_path}===" echo "===ipa path: ${ipa_path}===" echo "===profile: ${provisioning_profile}===" echo "===commit msg: $1===" #先清空前一次 buildxctool clean -workspace ${workspace_path} -scheme ${scheme} - configuration ${configuration} #根据指定的项目、scheme、configuration与输出路径打包出archive文件 xctool build -workspace ${workspace_path} -scheme ${scheme} -configuration ${configuration} archive -archivePath ${archive_path} #使用指定的provisioning profile导出ipa #我暂时没找到xctool指定provisioning profile的方法,所以这里用了 xcodebuildxcodebuild -exportArchive -archivePath ${archive_path} -exportPath ${ipa_path} -exportFormat ipa -exportProvisioningProfile "${provisioning_profile}" #上传到firfir publish ${ipa_path} -T fir_token -c "${commit_msg}" #输出总用时 echo "===Finished. Total time: ${SECONDS}s==="
在写好脚本的前提下执行终端命令
在终端执行完后会生成Xcarchive的一个文件 如下图这种结果也是这套脚本的一个缺陷 需要在终端在执行一条语句将Xcarchive文件转成ipa的包
xcodebuild -exportArchive -exportFormat IPA -archivePath /Users/yyhApple/Desktop/LetMeSee.xcarchive -exportPath /Users/yyhApple/Desktop/LetMeSee.ipa
成功后如下图
这个方法虽然可以通过脚本打包,但是还是有缺陷
目前本人还在研究更方便快捷的方法
还会更新。。。。。。
相关文章推荐
- 用python编写ios工程自动编译、打包ipa等脚本
- shell脚本从SVN下载项目并自动打包IPA和plist文件
- 自动打包生成ipa及测试安装页面的shell脚本
- [iOS 自动打包]shell脚本使用-ipa_build 脚本使用
- 【Java工具】java项目 Idea打包发布工具,自动生成bat sh 、shell 脚本
- iOS工程自动打包 (Shell脚本打包)
- 【ios开发技术】IOS项目工程自动打包并发布(用脚本实现打包)
- IOS工程自动打包并发布脚本实现
- IOS工程自动打包并发布脚本实现
- ios外包公司—北京动点软件分享:IOS工程自动打包并发布脚本实现
- shell脚本利用Here Document ,打包C的源码并编译生成再执行。shell携代攻击程序
- 初学shell,用于将iOS项目打包ipa之前修改相关字段的问题
- IOS 通过脚本自动打包工具 webfrogs/xcode_shell
- IOS工程自动打包并发布脚本实现
- IOS工程自动打包并发布脚本实现
- iOS开发-ipa打包终极教程-使用终端和shell脚本实现
- Unity3D研究院之IOS全自动打包生成ipa
- (转) 自动编译iOS工程,生成app及ipa文件的方法
- Unity3D研究院之IOS全自动打包生成ipa
- IOS工程自动打包并发布脚本实现