最近一个礼拜折腾xcode 中ipa 自动化打包,对我来说也说是磕磕碰碰。毕竟对mac下的命令行模式完全不熟悉。而且我们的项目是基于cordova的一个项目。 之前我自己对cordova 项目的命令行模式也是不了解。

于是乎就开始了漫长的尝试自己做打包过程。 可以说按照网上的一些资料来阅读,然后自己去实现。

一开始的资料便是http://www.infoq.com/cn/articles/build-ios-continuous-integration-platform-part1

自动话集成的概念。 感觉自己完全走偏了。 自动化打包和自动化集成? 是同一个感念???

但不管怎么样,也有不少的收获,从中也我了解到 可以通过xcodebuild 命令来编译生成app,也了解到其实在xcode工具中点击运行时,最终也会执行xcodebuild 命令行的。但是在我们装到手机中的格式是ipa 文件,又怎样来进行处理生成呢?

同样的在不断的搜索中也找到了有xcrun 这个命令。于是又开始学习xcodebuild 以及xcrun相关的命令,并用他们进行测试。当然这些都是在 terminal(终端)下进行的。发现这些都可以完成,并开始有了点小激动。也一直有了一种思想。自动化搞定没什么问题。小菜一碟.............

但一开始我在运行xcodebuild  我们的项目时,出现了一问题。用xcodebuild -target netcall一直提示:"CDVViewcontrol.h" file not file,而手动去生成完全可以生成app。总以为这个问题应该是个小问题,网上随便找找就是一大把的吧....结果悲剧了,一晃就是三四天过去了。。。。。还是找不到解决方案。。。。尼玛 找不到啊 有木有!

很快一周过去了,也没有相关的同事可以帮忙。只有自己去解决了,怎么办呢?  后来我换了一个思路想:既然cordova 有创建平台的语句,说不定生成app的命令也有啊。于是乎,带着这个疑问开始研究cordova本身的命令行

相关资料如下:http://cordova.apache.org/docs/en/3.4.0/guide_cli_index.md.html#The%20Command-Line%20Interface。结果是可喜的,里面果然有,但是我们这里从来没有人使用过。开始尝试,终于发现还是可以实现的。大喜。最终生成的IPA 语句很简单,如下:

#!/bin/sh

# AutoCompileScript.sh
# SQLiteDemo
#
# Created by tom on 5/5/14.
#

#指定 phonegap 存放路径?

projectPath="/Users/tom/Desktop/netcallmobile"
# cd 到指定的目录,熟悉mac 命令行的朋友完全不用解释
cd ${projectPath}

#use cordova compile and create app file
cordova prepare ios
cordova compile ios

#use xcrun to create ipa file
#相对于根目录cordova 项目生成的app 相对路径 (包含xxx.app)
appDir="platforms/ios/build/device/xxx.app"
#根据跟目录和相对路径合成  绝对路径
appPath=${projectPath}/${appDir}
#保存IPA 到指定的目录中(这里含有xxx.ipa)
ipaPath="/Users/tom/Documents/ipa/netcall.ipa"
#用xcrun命令行 将app生成ipa文件
xcrun -sdk iphoneos PackageApplication -v ${appPath} -o ${ipaPath}

最后保存在mac 下的格式为Command 后缀,这样就实现不要每次都要打开xcode然后点击build 或者achive 进行生成了(这里的shellscript 怎么运行 上文有讲到)

XCode 自动化打包总结的更多相关文章

  1. Jenkins+ Xcode+ 蒲公英 实现IOS自动化打包和分发

    Jenkins+ Xcode+ 蒲公英 实现IOS自动化打包和分发 直接入正题: Screen Shot 2015-09-18 at 16.56.20.png Mac上安装Jekins jekins下 ...

  2. ios实现fastlane自动化打包

    终于抽出时间来学习自动化打包了,app在测试阶段一天总会经历好几次的打包,每次打包真是身心疲惫,刚打完的包说不定就被测试妹子反应还要微调什么地方,我就真的有气没法出,打一次包怎么也得浪费十几分钟,还不 ...

  3. 使用Jenkins集成和自动化打包资料

    1.手把手教你利用Jenkins持续集成iOS项目 http://www.jianshu.com/p/41ecb06ae95f 2.Jenkins+ Xcode+ 蒲公英 实现IOS自动化打包和分发 ...

  4. Xcode 自动打包之旅【本文摘自智车芯官网】

    由于公司项目很多,作为iOS端的开发工程师,在打包和上传App Store过程中超级费时,而且往往会有频繁更改需求重新打包.上传的情况.这些过程让我不胜其烦.之前有听说过自动打包,一直没有时间尝试,此 ...

  5. iOS Jenkins 自动化打包构建

    前言 在测试app项目过程中,通常都是需要开发打测试包给到测试,但是无论是iOS还是Android的打包过程都是相当漫长的,频繁的回归测试需要频繁的打包,对于开发同学影响还是蛮大的.因此在这种情况下, ...

  6. xcodebuild 自动化打包

    altool 文档 使用xcode自带的xcodebuild 命令通过脚本进行打包 打包->导出ipa, 两行关键的脚本代码 1.Archive xcodebuild archive -arch ...

  7. IOS自动化打包介绍

    IOS自动化打包介绍  标签: app打包 , Ios打包 , iphone打包 , iphone自动化打渠道包    分类:无线客户端技术, 贴吧技术 摘要 随着苹果手持设备用户的不断增加,ios应 ...

  8. iOS使用fastlane自动化打包到fir(最全最详细流程)

    # iOS使用fastlane自动化打包到fir(最全最详细流程)1. **首先确认是否安装了ruby,终端查看下ruby版本**> ruby -v终端输出:ruby 2.4.1p111 (20 ...

  9. Mac Jenkins+fastlane 简单几步实现iOS自动化打包发布 + jenkins节点设置

    最近在使用jenkins 实现ios自动化打包发布蒲公英过程实践遇到了一些坑,特意记录下来方便有需要的人. 进入正题: 一.安装Jenkins 1.Mac上安装Jenkins 遇到到坑 因为 Jenk ...

随机推荐

  1. 大S《美容大王》内容80%都是没用的东西

    揭20位明星真实人品 我在她大陆的企划公司工作过,见过她N次了,对人态度蛮不错的,而且很爱开玩笑,但感觉很假很抠门.只要一回公司她就黏着请她吃饭.她很主动很霸道,她和周渝民交往,原因之一就是周什么都听 ...

  2. 【Unity技巧】Unity中的优化技术

    http://blog.csdn.net/candycat1992/article/details/42127811 写在前面 这一篇是在Digital Tutors的一个系列教程的基础上总结扩展而得 ...

  3. js将long日期格式转换为标准日期格式

    <script language="javascript"> //扩展Date的format方法 Date.prototype.format = function (f ...

  4. 73条日常Linux shell命令汇总,总有一条你需要!

    转载: 73条日常Linux shell命令汇总,总有一条你需要! 1.检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 && echo &q ...

  5. 各大互联网公司2014前端笔试面试题–JavaScript篇

    很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习js更是大有裨益. 而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正确, ...

  6. Python--关于 join 和 split

    .join() join将 容器对象 拆分并以指定的字符将列表内的元素(element)连接起来,返回字符串(注:容器对象内的元素须为字符类型) >>> a = ['no','pai ...

  7. Java的内存回收机制

    原文出处: cnblogs-小学徒V 在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C ...

  8. SqlServer关闭与启用标识(自增长)列

    1 --添加新列 2 ALTER TABLE TABLENAME ADD ID int 3 --赋值 4 UPDATE TABLENAME SET ID = IDENTITY_ID 5 --删除标识列 ...

  9. win7开启硬盘AHCI

    问题描述:装win7的时候没有在AHCI模式下安装,而是在IDE模式下安装的,后来安装完毕以后想更改成AHCI模式,可是更改以后启动电脑蓝屏并重启 解决方法: 如果是在IDE模式下安装的系统,由于在安 ...

  10. java 三大框架 介绍

    三大框架:Struts+Hibernate+Spring Java三大框架主要用来做WEN应用. Struts主要负责表示层的显示 Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作 ...