zoukankan      html  css  js  c++  java
  • XCode 自动化打包总结

       最近一个礼拜折腾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 怎么运行 上文有讲到)

  • 相关阅读:
    设计模式学习每日一记(1.简单工厂模式)
    poj1068
    设计模式学习每日一记(2.外观模式)
    qooxdoo一句话备忘录[不断更新]
    设计模式学习每日一记(4.抽象工厂)
    C# 各种数据类型的最大值和最小值常数
    ASP.NET中实现二级或多级域名(修改UrlRewrite)
    网站中定时发送邮件
    重提URL Rewrite(1):IIS与ASP.NET
    Server Application Unavailable 的解决方法
  • 原文地址:https://www.cnblogs.com/kingbo/p/3709942.html
Copyright © 2011-2022 走看看