[iOS] Delphi/C++ Builder 如何编写、调试及发布 iOS 程序

第一步:准备 OSX 设备

要编写和调试 iOS 程序,你至少需要一台 OSX 的设备(可以是虚拟机,也可以是真正的 Mac 设备,例如黑苹果或Macbook Pro),否则后面的步骤是没法进行的。

如果你使用 VMWare workstation 或 VirtualBox 来安装虚拟机,则可以参考以前的文章:

VirtualBox:【转】在Win7/Win8下使用VirtualBOX虚拟机安装OS X 10.9 Mavericks,还有一个老外的教程,是在 VirtualBox 5.1 上安装 OSX 的,可以参考下。

VMWare :虚拟机 VMware 12安装Mac OS X 10.11

当然,你也可以反过来,在 OSX 上安装 Windows 虚拟机,比如  Parallels Desktop。

在这里要注意以下问题:

  • OSX 主机的 IP 地址应该是固定不变的,否则你得每次更改配置的 IP 地址,太麻烦。
  • OSX 主机和安装有开发工具的 Windows 主机之间,必需保证 Windows 主机能够通过 IP 直接访问 OSX 的 IP,或者通过 NAT 转发等规则,能够直接访问 OSX 主机的 64211 端口。
  • 如果 OSX 位于虚拟机内,则虚拟机的USB 接口要使用 USB 2.0,而不是 3.0,不要以为版本越高越好,否则连接真正的 iPhone 或 iPad 时可能认不出来设备(也许以后的版本会改进这一点,但目前版本不行)
  • 内存越大越好,OSX 至少需要 2GB,运行模拟器推荐 4 GB 以上,所以你的物理机应配置 4GB 以上的内存,越大当然越好。

第二步:在 OSX 设备上安装 X Code。

第三步:在苹果官网注册一个开发者账号,然后登录开发者账号,下载并安装你的开发者证书。

第四步:安装 Platform Assistant。

在Delphi/C++ Builder 安装目录下,找到 Platform Assistant,默认安装的情况下,它位于:C:\Program Files (x86)\Embarcadero\Studio\17.0\PAServer\PAServer*.pkg。注意这个的版本要与 IDE 的版本一致,比如 Berlin 的就是 PAServer18.0.pkg。

第五步:在 OSX 中启动 PAServer。

上面四步的内容可以参考:[译]RAD Studio 移动开发(西雅图版)-在Mac(iOS)上配置你的开发环境

第六步:配置 IDE 所在的物理或虚拟机,让其能够连接到 Platform Assistant。

参考:[译]RAD Studio 移动开发(西雅图版)- 配置你 Windows PC上的开发环境(iOS)

第七步:创建工程并联机调试。

如果你要使用模拟器调试你的 iOS 程序(注意 C++ Builder 暂时不支持),那么现在就已经准备好,可以新建一个工程,目标平台选择 iOS Simulator ,然后在目标设备列表选择要模拟的设备就好了。如果你要连接真机调试,那么你现在需要将你的 iOS 设备(iPhone&iPad)连接到 OSX 主机上,然后目标平台选择 iOS Device-64 bit 或 iOS Device-32 bit ,在 Target 结点上右键刷新看看是否列出了你的设备,如果没有列出,检查是否 OSX 虚拟机的 USB 是 3.0 的,或者是否接入到虚拟机。iPhone 5S 开始都是 64 位设备,如果不考虑 iPhone 5 之类的老设备,可以只编译 64 位版本,否则,你应该编译的是 64+32 的版本。这里需要提醒一下:

  • 模拟器默认是英文,你需要自己进设置里切换为中文。
  • 模拟器第一次启动比较慢,耐心等待。
  • 模拟器因为是 X86 的,所以调试会比较快,但是有些功能可能没有,就得连真机了。
  • 连接真机调试时,注意不要锁屏,否则会安装超时。
  • 你的程序如果访问网络,请一定要使用域名的方式来访问,请注意你使用的组件兼容IPv6,以保证 IPv6 兼容性。你可以为相应的域名添加 AAAA 解析记录,但不是必需(苹果目前使用NAT64 来将 IPv6 的调用转换为IPv4,如果你的域名服务商不支持 AAAA 记录,可以将域名免费转到 DNSPod,然后添加 AAAA 记录,此部分内容请参考:[网络] 为阿里云 CentOS 6.x 添加 IPV6 支持 一文中的相关步骤说明)

第八步:发布你的应用到苹果应用商店。

这两步的相关说明,可以参考:[iOS] 在发布你的 iOS 应用时的注意事项。编写 iOS 应用时,应注意它的各种限制,避免被驳回浪费大家的时间。

好了,如果有什么需要补充的,欢迎大家一起交流。

分享到: