首先我想提一下既然是跨平台的方案,还为什么要搭建各个平台的开发环境。Phonegap+HTML5的方案不是搞出一个在任何平台都能无需编译就能运行的package,而是一种能让Javascript与native相整合的方案,因此基于它做出的软件包依然是具有各个平台特性的package,只不过里面大部分的业务逻辑都是基于Javascript来开发的,但不代表所有,所以需要在各个平台的开发环境上来编译调试和最后的打包部署,虽然phonegap也出了个build platform: https://build.phonegap.com/,但这个肯定是不够用的。对于我这个只搞Java的人,搭建各个平台的开发环境着实花了不少时间。
IOS的开发环境搭建是最搞人的,但对于有Mac本并且拥有IOS开发者帐号的朋友来说,可以略过这篇文章,我这里谈开发环境搭建是基于既没有Mac本也没有开发者帐号,Apple是一个把技术和产品搞得很封闭的公司,开发IOS不但对硬件软件有严格要求,对其中的版本也是限制很严,这导致我们这些走开源技术路线的人很不习惯。但没办法,你只能被动地被Apple牵着鼻子走,没有太多其他选择。
好了,这篇文章的目的很简单,就是需要一个开发环境(零成本)能开发和打包基于Phonegap的IOS应用。
具体说来,有四个任务:
- Mac环境搭建
- 在真机(iphone/ipad)上部署和调试
- 调试Phonegap源码
- 调试Javascript
1)Mac环境搭建
我已在《在AMD的WIN7上搭建IOS开发环境(mac 10.6.8 + xcode 4.2) 》里详细记录了整个搭建过程。试用了个把星期,基本上还是能满足开发工作的需求,但如果需要很流畅的体验,一是需要加装内存,另外就是最好能搭在SSD上,不过这两样现在也不贵,1000元足矣。
2)在真机(iphone/ipad)上部署和调试
如果只用在模拟器上看看效果,那就不用考虑这一步。Apple的IOS开发者帐号是每年99美元,它除了能可以访问各种文档资源外,最重要一点就是开发者需要用它生成合法证书,并把应用部署到App store和真机上,当然,如果产品已开发完成并计划投入市场的话,这个钱肯定是要花的,但对于那些还在门外试水的朋友来说,没必要这么快就被Apple套牢。我所需要就是能从xcode上直接在真机上部署和调试应用程序。
首先是要破解xcode。这个步骤有很多文章写了详细步骤,我也是照着这些步骤完成的,比较靠谱的是这篇文章:http://kqwd.blog.163.com/blog/static/4122344820117191351263/,这里我需要强调的是做这些步骤之前请在VMWare上打个snapshot,避免搞坏了无法回头,这也是在虚拟机上搞开发的最大好处。
然后就是要越狱iphone/ipad,这个我就更不用累诉了,相信拥有iphone/ipad的朋友都研究过如何越狱。但这里我还没探明清楚的是不是非得越狱才能调试或部署ipa,不过我试过在没越狱的iphone上是不行的,但应该只要做到部署ipa到真机就可以了。
最后是xcode识别真机,直接在真机上调试应用。这一步把我卡了很长时间,一直在虚拟机的Mac无法识别ipad,在硬件设备表却能看到ipad,开始我一直怀疑是虚拟机的问题,但虚拟机识别USB硬盘是没问题的。结果原因很简单,是itune的版本太低,升级到最新版本后就成功了。(从这里也能感受到Apple的手腕,用各种手段让你不得不更新它所有相关产品)。成功识别后,能在run或windows/Organizer里看到连接上的device,这是就和在模拟器里调试一样了。
3)调试Phonegap源码
能调试Phonegap源码还是很必要的,一是可以学习一下整个流转机理,二是便于调试自己写的或加装的plugin。
首先根据官方guide:
Getting Started with iOS,搭建好项目结构。然后:
- 删除“Cordova.framework”
- 把CordovaLib.xcodeproj从phonegap源码包里拖到xcode里,拖放位置请看下图:
- 选择主项目(starteam-mobile-ios)的“Build Phases”,在“Link Binary With Libraries”下添加“Workspace”下的“libCordova.a”,如图:
- 在“Target Dependencies”添加“CordovaLib”,如图:
- 编辑“Build Settings”里的“Other Linker Flags”,添加“-all_load -Obj-C”配置项
- 把Phonegap源码包里的“VERSION”文件拖到“Supporting Files”文件夹下:
- 主项目和CordovaLib.xcodeproj下的Architectures改为:Standard (armv7),不然编译时会报gcc相关的错,如图:
- 编译整个项目,如果成功也就代表可以调试phonegap源码了。
phonegap源码还没来得及看,主要是对objective-c不熟,不过发现一个学习IOS开发很不错的视频资源:《iOS
SDK基础教程》,虽然是全英文,但用迅雷看能在线匹配到很多章节的字幕,配合很不错的视频演示,英语应该不是问题。
4)调试Javascript
在真机上出了Javascript错误是非常难调试的,这需要一系列工具来支持,我准备把它和其他移动平台上javascript调试单独作为一个主题来详细研究,这里就暂时不多说了。
到此,IOS上Phonegap开发环境也就搭建完成,虽然是零成本,但耗了不少时间,有没有必要大家自己斟酌,确实有兴趣可以尝试一下,但对于已下定决心搞IOS的朋友还是赶紧买Mac吧(我也正在努力地向老婆大人申请预算),尝试这些只是为了试水,让自己更加坚定地迈入IOS的大门。
分享到:
相关推荐
Xamarin是一个跨平台开发框架,这一框架的特点是支持用C#开发IOS、Android、Windows Phone和Mac应用,这套框架底层是用Mono实现的。 Mono是一款基于.NET框架的开源工程,包含C#语言编译器、CLR运行时和一组类库,能...
HTML5移动开发---面向iOS和Android平台,清华大学出版社。
本书是一本iOS项目分析与实战的教程,旨在帮助读者实际动手做出一些iOS项目,同时也能够学习到一些理论知识。 本书收录了6个iOS项目,这些项目是在iOS开源社区下载的。涵盖了:工具类应用、体育类应用、效率类应用、...
uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架,开发者编写一套代码,可编译到iOS、Android、微信小程序等多个平台。该资源有自己独到的见解,适合小白使用,有vue或小程序开发经验者更容易上手。
AndroidS开发环境搭建---在myeclipse里面开发android环境的...OBject-c开发环境的搭建,Xcode和ios sdk和模拟器的安装,还有我使用的是Vmware里面安装黑苹果,然后进行开发。 黑苹果的下载地址安装文档里面已经注明了。
基于ios平台的移动应用开发--消防安全指南.docx
由于基于C++和STL特点使其广泛应用于游戏开发、移动互联网产品开发,目前最新版本为3.0alpha,由于其代码的开源特性和跨平台支持,可以快速开发移动游戏并部署到Android、iOS等平台,已经有超过百款的Ccoos2d-x的...
iOS开发------Widget(Today Extension)插件化开发1
REACT NATIVE跨平台移动项目实战参考:现实中,Android和iOS两大移动操作系统分庭抗礼的局面决定了注定会有类似RN这样跨平台移动开发框架的出现,只不过各家实现的思路不同而已。
资源名称:HTML5移动开发-面向iOS和Android平台内容简介:《新手学HTML5移动开发:面向iOS和Android平台》第1部分从第1章~第8章。第1章首先介绍了HTML4.01的基本原理,第2章通过生动且复杂的教程介绍了HTML5,其中...
移动开发领域 Object-C 语言在 iOS 开发中的应用.md
iOS 6开发从入门到实战--高清版.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
资源名称:iOS开发视频教程资源目录:【】iOS开发视频教程-第01讲-iOS历史介绍【】iOS开发视频教程-第02讲-XCode安装【】iOS开发视频教程-第03讲-UIView_PPT【】iOS开发视频教程-第04讲-UILabel【】iOS开发视频教程-...
连通mac和windows开发的好书,支持在windows下做IOS的开发
苹果开发- iOS-邓白氏-编码申请
iOS开发进阶篇-成为iOS开发高手-源码
从零开始学iOS7开发系列教程-事务管理软件开发实战-Chapter111
从零开始学iOS7开发系列教程-事务管理软件开发实战-Chapter131
从零开始学iOS7开发系列教程-事务管理软件开发实战-Chapter171