文章

 大家好,我是DelphiTeacher,一个Delphi狂热爱好者。

Embarcadero在4月22号发布了XE4,4月25号在深圳开了发布会。

因为目前这方面的中文资料相当少,不知道XE4到底有了哪些更新(Delphi在ARM编译器下的对象引用计数,字符串方面做了很大的更改),哪些要注意,我也很想知道用Delphi开发IOS应用是否可行,是否还是像XE2那像困难重重,问题多多。

想必大家也很想体验一把在IOS Device(iPhone,iPad,iPod Touch)上运行用Delphi开发的应用程序的那种感觉,所以我写了这份教程,将配置Delphi For IOS开发环境的步骤以及遇到的一些问题与大家分享。

1、首先准备电脑操作系统


有三种方案可以选择(当然还有其他):

    苹果电脑Mac系统+虚拟机安装Windows
    PC电脑Windows系统+虚拟机安装Mac系统
    苹果电脑Mac系统+PC电脑Windows系统(两台电脑)

Mac系统的要求:OS X 10.7 Lion以上,OS X 10.7 Lion以上

Windows系统的要求:WinXP~Win8,个人建议最好是Win7

MacBook Pro

Win7
我使用的是MacBook Pro,15寸,i7 CPU,4G内存,系统是Mountain Lion 10.8.3,然后再装VMWare Fusion虚拟机,虚拟机上装的是Win7系统。


我的建议是,电脑配置越高越好,硬盘最好是固态的,不然,用起来十分卡,虽然也可以跑,但不益于自己的身心健康(哈哈,这当然没有得到医学证实)。





2、准备iOS Device


真机调试,前提当然是你必须得有真机,也就是iOS Device,比如iPhone,iPad,iPod Touch。

如果暂时没有,那么也可以使用XCode的模拟器iOS Simulator。


iOS Device上的操作系统必须是iOS 5.1以上。


我使用的是iPhone 4,系统是6.1.2,已越狱。
iOS Device
越狱教程请百度,很简单,先备份SHSH,再用越狱软件(像RedSn0w,evasi0n)。

越狱之后需要安装Cydia,然后再安装AppSync,不然编译好的App文件传输不到iOS设备里面,也就不能真机调试。
如果你只需要运行(不调试)编译好的App文件,你也可以将App打包成iPA文件,安装到iOS Device上运行。



3、在Mac上安装XCode和Command Line Tools


XCode和Command Line Tools都可以在苹果开发者网站上下载的到:

https://developer.apple.com/downloads


大家最好下载最新版本的XCode 4.6.2,以及最新的Command Line Tools,如图:

XCode 4.6.2
注意:不要在XCode中安装Command Line Tools(也就是打开Xode,菜单中选择XCode->Preferences…的Downloads页中选择Command Line Tools来装),如下:
安装Command Line Tools

我一开始是这样安装Command Line Tools的,结果在XE4中运行iOS工程的时候出现“Wrapper init failed:(null)”这样的错误提示:
“Wrapper init failed:(null)”

我就怀疑是XE4没有检测到我在Mac系统下安装了Command Line Tools,然后下载Command Line Tools的独立安装包安装一下就解决了。






4、在Windows上安装XE4


XE4的下载地址:

http://altd.embarcadero.com/download/radstudio/xe4/delphicbuilder_xe4_win.iso

安装序列号(全功能,有源码):

MNFA-A3D8PK-F4BBAE-FCQN

DR大侠的XE4 License Generator:

http://bbs.2ccc.com/topic.asp?topicid=426483

当然您也可以安装lsuper大牛的lite版,盒子地址:

http://bbs.2ccc.com/topic.asp?topicid=426730


安装完之后,大家可以看一下XE4可以新建的工程类型:

File->New:
File->New:

是不是多出了FireMonkey Mobile Application这一个选项呀!

然后你再点击这个菜单项,弹出FireMonkey Mobile Application的工程类型选择向导窗体:

有以下几种类型:

    Blank Application(空应用程序)
    3D Application(3D应用程序)
    Header/Footer(页头页脚风格的应用程序)
    Header/Footer with Navigation(页头页脚带导航按钮的应用程序)
    Phone Master-Detail(手机主从风格的应用程序)
    Tabbed(分页应用程序)
    Tabbed with Navigation(分页带导航按钮的应用程序)
    Tablet Master-Detail(平板主从风格的应用程序)
FireMonkey Mobile Application

其实在XCode(苹果软件的开发工具)新建iOS工程时,也会出现同样功能的窗体:

你在FireMonkey Mobile Application的工程类型选择向导窗体中选择第一个“Blank Application”,就可以看到FOR IOS的窗体设计器:

“Blank Application”
FOR IOS的窗体设计器是一个iOS Device的界面(这里是一个iPhone),有iPad, iPhone,iPhone5,以及CustomDevice这些选择,在窗体设计区最右上角的下拉框中进行选择。
iOS Device的界面

也可以去掉iOS Device的边框,在窗体设计区右上角按一下这个按钮,那么窗体设计器就会变成这个样子:
去掉iOS Device的边框

还可以90度,180度,270度旋转窗体设计器,按钮也是在窗体设计区右上角的按钮:










5、Mac上安装RAD PAServer XE4


相比过去版本的PAServer命令行工具,XE4里,将PAServer做成了一个App应用程序,只需要双击就可以运行了:

Mac上安装RAD PAServer XE4

PAServer的安装程序依旧在XE4的安装目录下:

Embarcadero\RAD Studio\11.0\PAServer\RADPAServerXE4.pkg
PAServer的安装程序
可以用U盘,网络共享等方式把安装程序拷到Mac下,然后安装。





6、配置Connection Profile连接到Mac


安装完XCode,Command Line Tools,XE4和PAServer后,就可以配置Connection Profile了,IDE用它来连接Mac,并在Mac上运行调试OS X和iOS应用程序。


添加Connection Profile的步骤如下:

在XE4的IDE中,菜单Tools->Options,在弹出的Options窗体右边列表中选择Environment Options->Connection Profile Manager,按下Add…按钮,弹出创建Connection Profile的向导窗体,

输入Profile的名称,选择Platform为OS X:

Tools->Options

填写Mac的IP地址或机器名(对于IP地址经常变动的,建议填写机器名),PAServer的端口号,以及密码:
填写Mac的IP地址

填完之后,点击Test Connection来测试一下是否连接,结果出现

Test Connection
这是因为我还没有在Mac上运行PAServer(如果已经运行了,那么就是以上的连接配置有问题,需要检查),好,我们现在来在Mac上运行PAServer,在应用程序或Dock中双击RAD PAServer XE4,

双击RAD PAServer XE4 图2
会打开PAServer的命令行终端,提示我们输入密码,这里你输入一个密码,然后按回车,就可以了(不要关闭这个窗体,关闭这个窗体就意味着PAServer结束运行):
打开PAServer的命令行终端


我们再来测试一下刚才这个连接:

测试连接
OK,连接成功,按Finish按钮保存。


如果出现下面这个提示窗体,那么就是密码不正确。

在我们装完PAServer之后,在Mac的当前用户目录下会有一个RADPAServer目录:
RADPAServer目录

XE4会通过PAServer将编译好的APP传输到Mac下的这个目录里,
Mac目录
目录名是根据你Windows的用户名+Profile名来取的,可能是对中文支持不好,

如果你的Windows用户名是中文,那么可能会出现Deploy失败的情况,也就是不能将编译好的APP传输到Mac下,所以你的Windows用户名应该要不包含中文的。




7、导入iOS SDK


导入SDK的步骤如下:
导入SDK

在XE4的IDE中,菜单Tools->Options,在弹出的Options窗体右边列表中选择Environment Options->SDK Manager,按下Add…按钮,弹出创建SDK的向导窗体,


选择平台为iOS Device,选择我们之前创建的Connection Profile,选择一个iOS SDK版本,
选择iOS SDK版本

点击OK,它会自动Update Local File Cache,


Update Local File Cache 1

Update Local File Cache 2

Update Local File Cache3



好了,现在我们选择的SDK就会被添加进去了


注:如果遇到弹出“No SDKS Founds…..”这个提示窗体(我之前遇到过,没有截图截下来),
“No SDKS Founds…..”
那是因为你没有选择Command Line Tools所使用的XCode版本(可能是装了多个XCode版本有关),需要打开XCode,打开菜单XCode->Preferences…,在Locations那一页最后一个Command Line Tools选择一个XCode版本,就可以了。


选择一个XCode版本





8、在XCode中连接真机测试


打开XCode,File->New Project…,在弹出的窗体中选择“Empty Application”
选择“Empty Application”

输入工程的名称,

输入工程的名称
然后选择工程存放路径,保存完之后,我们就创建了一个iOS工程,里面没放何控件,
创建iOS工程
在左上角选择一个模拟器,然后按Run按钮运行这个程序,就会出现一个模拟器,然后运行我们刚才新建的这个空工程(我们在XE4选择iOS Simulator调试我们的程序也是使用XCode里的这个模拟器的)

选择一个模拟器

模拟器调试完毕了,我们来试一下真机调试。

在XCode主窗体的右上角,

XCode主窗体
按一下最右边的这个按钮,Organizer,会弹出下面这个窗体:

Organizer
然后把真机连接到电脑上,真机就会出现在Devices列表中,如下图我连接到Mac的iPhone 4:

连接Mac的iPhone 4
添加为开发设备之后,设置上的黄灯会变绿(表示可以真机调试):

表示可以真机调试
然后选择刚才连接的真机来运行我们的工程(无签名真机调试请百度):

我是参考下面两个贴子:

http://blog.csdn.net/lovenjoe/article/details/7524420

http://mobile.51cto.com/iphone-387974.htm

主要是在Mac系统中添加一个“iPhone Developer”的签名,步骤如下:


1.打开 Mac OS X 操作系统自带的 实用工具 中的 钥匙串访问 程序
2. 在钥匙串访问程序的菜单中选择 证书助理 -> 创建证书 …
3.证书的名称一定要写 “iPhone Developer”,以避免不必要的麻烦
4. 身份类型为 自签名根证书 ,证书类型选 代码签名
5. 勾选 让我覆盖这些默认值 并继续
6. 随便输入一个的序列号。保证序列号和证书名称唯一就可以了
7. 输入证书信息,因为是私有证书,随便写一下就行
8. 后面选择框都用默认值就好了

 

完成后你就可以在钥匙串访问中看到这个新创建的名为 “iPhone Developer” 的自行签名的根证书了。它被标红警示 “此证书不被信任”,表示其并非权威机构认证生成的。这没有关系,因为我们在上一步已经搞定了 iOS 设备了。

该步骤只需一次。

  “iPhone Developer”

 

 

 

可以在Organizer窗体中的Screenshots,点击右下角的New Screenshot(截取手机上的屏幕):

截取手机上的屏幕
OK,成功在真机上运行!





9、在XE4上连接真机测试


我们用XE4自带的Demo来做测试,

打开Samples\FireMonkeyMobile\iOSControls工程,

Samples\FireMonkeyMobile\iOSControls工程
在工程管理器视图的Target Platforms中双击iOS Device,再双击Debug,然后按F9运行。

Target Platforms

Target Platforms 1
Target Platforms2


来张照片吧:



 生成ipa(app安装包)

 

生成ipa(app安装包)

 

假设此安装包的名称是 Hello.app,点击右键,选择”显示包内容“,这样就可以打开这个Hello.app文件夹了(iOS下,每个app程序其实是一个文件夹),

在此文件夹中有一个info.plist文件,双击打开它,新增加一个名为SignerIdentity的key字段,内容为“Apple iPhone OS Application Signing“。

然后将Hello.app拖到iTunes就生成ipa了。默认名字应该是Hello.ipa。


如果要将此ipa分发出去,可以在iTunes中的Hello.ipa文件上点击鼠标右键,选择"在Finder中显示",就可以得到生成后的ipa安装文件了。

 

 

 

 

 

 


结束语:

真机调试成功了之后,还需要花很长的时间来写一些代码来测试数据库,网络,自定义控件等方面,如果这些我觉得这些方面都OK,我也会写些APP到苹果商店中去,遇到一些说 XE4开发iOS不行的人我就可以理直气壮的跟他说:“you are wrong!”