最近一个礼拜折腾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. NumPy(Numeric Python)使用方法

    NumPy官网 参考:<Python数据分析基础教程:NumPy学习指南> 用Python做科学计算(好东西) NumPy是python的核心库,是python机器学习编程的最底层的库,不 ...

  2. DialogFragment 自定义弹窗

    layout文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:a ...

  3. LocalStorage在Chrome里的实现

    前段时间我们在实现CanTK-Runtime时,也曾在V8基础上模拟过浏览器的LocaleStorage功能,其实现非常简单:每个domain的数据使用的单独文件存储,因为同一时间只有一个游戏运行,所 ...

  4. 实现 像网易云音乐 播放列表那样的弹出型Dialog

    如图 所示是点击Test之后的 弹出的Dialog (请无视我工程的命名) 20161017/**加入点击回调,假设dialog里放了一个TextView*/ 得先写一个点击回调 public int ...

  5. 扩展Date的DateAdd方法--计算日期

    Date.prototype.DateAdd = function(strInterval, Number) { var dtTmp = this; switch (strInterval) { ca ...

  6. IE7局部滚动区域下绝对定位或相对定位元素不随滚动条滚动的bug

    尽管在项目中测试人员已经慢慢淡化了IE6的测试,但是IE7依然还是要纳入测试范围. 最近碰到一个IE7的蛋疼bug,在页面上设置了一个局部的滚动区域,在拖动滚动条的时候,滚动区域内设置了相对定位或绝对 ...

  7. centos nginx 安装

    1.下载 wget http://nginx.org/download/nginx-1.7.8.tar.gz 2.解压 tar -zxvf nginx-1.7.8.tar.gz 3.切换目录 cd n ...

  8. [saiku] 配置saiku实时展现查询数据

    缘起: 在默认的情况下,saiku是不能对数据进行实时展现的,只能通过刷新按钮或者重启服务器来刷新数据 这样以来会有很多的麻烦,每天得手动去刷新,这个操作只有管理员可以操作,在刷新以前客户看到的都是缓 ...

  9. ERP开发分享 1 数据库表设计

    这是我的ERP设计经验分享系列,今天讲的是数据库的表设计(1),主要阐述: 1.单字段的主键:2.使用int32作为主键类型:3.使用版本字段处理乐观锁定:4.生效字段标明是否允许“被使用”:5.锁定 ...

  10. Linux sed命令实例详解

    简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的 ...