iOS利用(Shell脚本)自动打包项目工程生成ipa
来源:互联网 发布:淘宝脱毛仪器有效果吗 编辑:程序博客网 时间:2024/06/05 02:15
刚刚进入一家游戏公司,今天在研究iOS利用脚本打包项目工程。用xcode打包速度慢而且繁琐,所以选择脚本来做,在这里分享一下。
打包方法
一.通过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
成功后如下图
这个方法虽然可以通过脚本打包,但是还是有缺陷
目前本人还在研究更方便快捷的方法
还会更新。。。。。。
0 0
- iOS利用(Shell脚本)自动打包项目工程生成ipa
- iOS工程自动打包 (Shell脚本打包)
- IOS自动打包生成IPA
- [iOS]自动生成ipa脚本
- ios使用shell脚本打包ipa软件包
- iOS自动打包并发布IPA脚本
- 【ios开发技术】IOS项目工程自动打包并发布(用脚本实现打包)
- 自动打包生成ipa及测试安装页面的shell脚本
- shell自动打包ipa
- shell自动打包IPA
- [iOS]shell 自动打包工程
- shell脚本从SVN下载项目并自动打包IPA和plist文件
- 自动打包生成IPA
- 利用xcode和iTunes将cocos2dx工程打包生成ipa
- 【Xcode】Shell脚本自动打包ipa加企业版签名
- 用 shell 脚本快速打包 iOS ipa 文件
- iOS使用脚本打包iPA
- ios xcodebuild命令行自动打包 shell脚本
- 将.csv格式转换成.txt
- Primary Master Configuration ( /etc/salt/master )
- JAVASE第8天笔记
- java几种基本的排序方法,快速排序,冒泡排序,选择排序,插入排序
- JAVASE第9天笔记
- iOS利用(Shell脚本)自动打包项目工程生成ipa
- 收录的一些教程网站
- 大神教你safari删插件技巧!
- JAVASE第10天笔记
- Day4 自定义控件/ListView/RecyclerView
- Minion Primary Configuration(/etc/salt/minion)
- JAVASE第11天笔记
- JAVASE第12天笔记
- 复制多级文件夹