开发iPhone等iOS平台的移动应用时需要使用Mac本,但是Mac本都比较昂贵,所以可以采用Windows7上利用VMWare安装Mac操作系统的方法来模拟ios开发环境,达到降低成本的目的。
10年积累的网站设计制作、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计制作后付款的网站建设流程,更有尼河口免费网站建设让你可以放心的选择与我们合作。
相关配置
操作系统:windows7旗舰版
Work station:VMWare10
Mac操作操作系统:OS X 10.8
安装VMWare
检测CPU是否支持虚拟化 检测工具 securable.exe。设置过程如下:重新开启——F1——BIOS——Advanced——cpu Setup——intel Virtualization Technology——Enabled——F10保存退出。
安装VMWare的Mac补丁
将补丁文件下载之后,解压缩。打开安装文件的windows目录,右键以管理员身份运行install.cmd。
创建虚拟机
VMWare安装好之后,选择"文件"---"新建虚拟机",进入到创建虚拟机的界面,选择自定义,点击下一步选择“稍后安装操作系统”,点击“下一步”,操作系统类型上选择“Apple Mac OS X”,版本上选择10.8,点击“下一步”,设置虚拟机的名称和安装的路径,点击“下一步”,设置好处理器数量之后,点击下一步,将网络连接方式最好设置成桥接,这样就可以和物理机实现同网段,接下来几步,都可以设置为默认方式。
将代理换回国内的淘宝后,重新执行一遍安装命令
如果Ruby环境不够新,可能需要更新以下:
在执行
的时候,可能会比较慢,这时候不要慌,可以通过
查看当前的安装进度
如果Mac自带的Ruby版本不够新,可以参考我的另一篇文章
在按照步骤执行的过程中遇到任何问题希望大家多多交流
【必选】Mac OS X操作系统的电脑,Apple ID,iphone 真机
( 若不需要“GPS”、“照相机”、“蓝牙”等功能可使用iphone模拟器)
Xcode是IOS开发的免费的IDE(集成开发环境)
截至目前,其最新版本为10.1,我们可以在App Store中轻松取之。(速度较慢,请耐心等待 ????)
选择“iOS”和“Single View App”并点击“Next”
填写工程基本信息
选择工程存放位置,如下我的位置
如下图工程创建成功,但有红色的感叹号:‘Signing for "HelloWorld" requires a development team’
Xcode在调试iphone真机时需要Team账号(即Apple ID),所以需要设置下(点击add account),添加apple id后关闭窗口,然后回到下图
选择刚才创建的team,红色感叹号消失
USB连接iPhone手机,分分钟,在下图上红框中可以选择已连接的手机。
这时,有可能会有ios系统不兼容提示(“OS version lower lower than deployment target”),即你开发针对的目标系统过高了。这时,在下图下红框中,适当调整Target的iOS版本号,直到没有不兼容的提示。运行“Hello World”
然后会遇到如下问题:解决详见 我的另一篇文章
????IOS:xcode提示“codesign 想要访问您的钥匙串中的密钥”
第一次调试真机时,会要求手机通过信任(如下图),点击OK,然后操作手机,依次选择:设置-通用-设备管理-“你的Apple ID”-信任“你的Apple ID”-信任。
编译成功,真机桌面生成图标
点击桌面图标,打开盖应用“zhenji”
开始编译安装:
一、X11编译:
1.进入qt-x11-opensource-src-4.5.0源码目录。
./configure -no-openssl
在我这里必须加上-no-openssl选项,否则在make过程中,编译到ssl时会报错。出错信息为:
ssl/qsslsocket_openssl_symbols_p.h:264: error: variable or field ‘q_sk_free’
declared void
ssl/qsslsocket_openssl_symbols_p.h:264: error: ‘STACK’ was
not declared in this scope
ssl/qsslsocket_openssl_symbols_p.h:264: error:
‘a’ was not declared in this scope
ssl/qsslsocket_openssl_symbols_p.h:265: error: ‘STACK’ was not declared in this
scope
ssl/qsslsocket_openssl_symbols_p.h:265: error: ‘a’ was not declared
in this scope
……
……
默认安装路径为
/usr/local/Trolltech/Qt-4.5.0。可用--prefix 指定其他安装路径。
2. gmake
# linux下一般可直接用make代替gmake。如果要加快编译速度,就加上 -jx ,x表示最大的线程数。
3.
gmake install
二、qt-embedded-x86编译:
1.进入qt-embedded-linux-opensource-src-4.5.0-x86源码目录。
./configure -prefix
/usr/local/Trolltech/QtEmbedded-4.5.0-x86 -embedded x86 -no-openssl -qt-gfx-qvfb
-qt-kbd-qvfb -qt-mouse-qvfb
先后配置了安装目录、嵌入式架构(x86)。同时也跟X11版本一样,配置了
-no-openssl,没有这一项的话,make的过程中会出现跟编译X11时一样的错误。再后面的几项是为了更好的配合qvfb,网上说如果没有这几项,安装好qt-embedded-x86后想在qvfb上调试程序时,会出现类似下面的错误:
Error opening buffer device /dev/fb0QScreenLinuxFb::connect: No such
file or directory
2. gmake
跟x11版一样
3. gamke
install
三、qt-embedded-arm:
与前面两个不同,在编译arm版本的qt-embedded前,必须确认已经安装了交叉工具链,编译过程中要生成许多arm架构的库,所以必须有arm-linux-gcc、arm-linux-g++等工具。我用的是友善提供的arm-linux-gcc-4.5.1版本。
1. 进入qt-embedded-linux-opensource-src-4.5.0-arm源码目录。
./configure -prefix
/usr/local/Trolltech/QtEmbedded-4.5.0-arm -embedded arm -no-openssl
-qt-libpng
指定了安装路径、嵌入式架构。同时也跟X11版本一样,配置了
-no-openssl,没有这一项的话,make的过程中会出现跟编译X11时一样的错误。
另外,还增加了一项,
-qt-libpng,这个选项应该是关于png相关的库,指定用qt自带的png库。如果没有这一项,我这里会出现如下错误:
image/qpnghandler.cpp: In member function 'virtual QVariant
QPngHandler::option(QImageIOHandler::ImageOption) const':
image/qpnghandler.cpp:950:35: warning: 'png_info_struct::width' is deprecated
(declared at
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:639)
image/qpnghandler.cpp:950:35: warning: 'png_info_struct::width' is deprecated
(declared at
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:639)
image/qpnghandler.cpp:950:55: warning: 'png_info_struct::height' is deprecated
(declared at
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:640)
image/qpnghandler.cpp:950:55: warning: 'png_info_struct::height' is deprecated
(declared at
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:640)
make[1]: *** [.obj/release-shared-emb-arm/qpnghandler.o] 错误 1
make[1]:
*** 正在等待未完成的任务....
make[1]: Leaving directory
`/root/qt4.5.0/qt-embedded-linux-opensource-src-4.5.0-arm/src/gui'
make:
*** [sub-gui-make_default-ordered] 错误 2
看起来像是我的交叉工具链跟这个QT版本匹配的不太好,Qt好像不太兼容交叉工具链的png.h头文件中定义的数据结构。加上 -qt-libpng
可解决此问题。
四、qvfb:
这时QT就已安装成功。但是还需要额外安装qvfb。
进入qt-x11-opensource-src-4.5.0源码包目录,然后
cd tools/qvfb
在qvfb源码目录下运行
make
会在qt-x11-opensource-src-4.5.0/bin下生成qvfb,我们将它copy至/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin下即可。
end:
到这里,QT的开发环境基本就搭建好了,利用 qt-embedded-x86 和 qvfb
工具可以很方便的调试QT程序,调试好的程序再经 qt-embedded-arm
编译就可在开发板上运行(还有个小问题,我现在编译好的QT程序虽然可以在开发板上运行,但是运行时触摸屏不能用,只能用USB鼠标控制,想支持触摸屏貌似还需要移植tslib库,等我折腾完了再回来把相关内容补充上)。
现在,越来越多的iOS项目需要用到Web开发技术,尤其是HTML5方面的。
如果是开发标准界面的Web开发,可以使用Dashcode,我打算另写一篇文章介绍。这里的开发环境,是针对自定义界面的,从应用范围来看,也更广泛一些。
首先是开发环境,因为比较熟悉Eclipse,使用的是Eclipse插件WTP来开发Html、Css和Javascript。我直接安装的是 SpringSource Tool Suite(是Spring定制的Eclipse版本,带wtp插件),因为后续还要使用Grails开发服务器端的动态内容。