最近一个礼拜折腾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. winScp 跳板机到服务器

    http://jingyan.baidu.com/article/454316ab6ffe1af7a7c03a31.html?qq-pf-to=pcqq.group

  2. Python项目实战

    编程只有不断练习才能掌握其精髓,多练练网上的习题和项目,才能掌握python的精髓. Python的模块和包是出了名的多,因此你不必自己从底层开始写起,只需要看懂模块和包的使用文档就可以了,因此掌握一 ...

  3. selenium 加载RemoteDriver浏览器驱动

    title NodeWebDriver java -jar selenium-server-standalone-2.42.2.jar -Dwebdriver.ie.driver="C:\S ...

  4. C/C++中堆与栈

    本文介绍C/C++中堆,栈及静态数据区.   五大内存分区 在C++中,内存分成5个区,他们分别是堆.栈.自由存储区.全局/静态存储区和常量存储区.下面分别来介绍: 栈,就是那些由编译器在需要的时候分 ...

  5. base64 数据处理

    base64 数据处理 1. base64 字母表 2. 原理 处理原理 http://baike.baidu.com/view/469071.htm 3. iOS上的应用 iOS7 之前使用http ...

  6. struts2文件下载相关信息

    struts.xml文件配置: <span style="font-size:16px;"><?xml version="1.0" encod ...

  7. mouseenter和mouseout中间的时间控制

    为了防止鼠标快速滑过div而加的时间限制: 在看延迟绑定时候看到,这也算是延迟绑定了?:(20130909) <!DOCTYPE html> <html lang="en& ...

  8. MVC之超链接的寻址

    传统式 href直接跟链接地址URL <a href="@Model.Base.BdtUrl" target="_blank">首页</a&g ...

  9. 在jsp页面解析json的2种方法

    方法1: $(function() { $("#btn").click(function() { $.ajax({ url : "fastjson.do", s ...

  10. C语言链表

    #include<stdio.h>#include<malloc.h>#include<stdlib.h> typedef struct Node{ int dat ...