Read this manual in English

iOS 开发

iOS 要求 所有 运行于手机或者平板电脑上的应用 必须 使用 Apple 核发的 certificate 和 provisioning profile 进行签名. 本教程介绍了 iOS 平台的游戏打包. 在开发阶段, 推荐使用 开发用app 以利用热重载功能实现对移动设备的无线推送.

Apple 签名过程

iOS 应用安全包含几个要素. 通过访问 Apple’s iOS Developer Program 可以得到必要的工具. 如需注册, 请访问 Apple’s Developer Member Center.

Apple Member Center

Certificates, Identifiers & Profiles 部分包含了所有所需工具. 在这里可以创建, 删除和编辑:

Certificates
Apple 为开发者颁发的加密证书. 分为开发证书和发布证书两种. 开发证书用以在沙盒环境中测试某些功能比如应用内购. 发布证书是将应用发布到 App Store 时用的证书. 在设备上测试之前要用证书对应用进行签名.
Identifiers
应用id. 用于多个应用的通配符id (类似 some.prefix.*) 是允许的. 应用id也在集成某些服务时使用, 比如 Passbook, Game Center 之类的. 这种情况下不支持通配符id. 因为使用服务时 bundle identifier 必须与应用id一致.
Devices
用于开发的设备要注册 UDID (Unique Device IDentifier, 见下文).
Provisioning Profiles
提供商档案与应用id与开发设备的证书相关. 这样可以确保让谁的哪个应用可以运行于哪个设备上.

在 Defold 中给应用做签名时, 需要提供加密证书和提供商档案文件.

::: 注意 Member Center 页面的一些功能在 Xcode 里也可以进行—前提是先安装好Xcode. :::

Device identifier (UDID)
iOS 设备的 UDID 可以通过wifi或者线路连接计算机查找. 打开 Xcode 选择 Window ▸ Devices and Simulators. 选中设备就会显示出序列号和UDID.

Xcode devices

如果没安装 Xcode也可以从 iTunes 里查看. 首先选中要查看的设备.

itunes devices

  1. Summary 页, 可以找到 Serial Number.
  2. 点击 Serial Number 一次, 它会切换成 UDID. 再点击下去还会显示其他设备信息. 这里我们找到 UDID 即可.
  3. 右键点击 UDID 那一长串字符, 选择 Copy 即可将其存入剪贴板, 在 Apple 开发中心注册设备时就可以直接粘贴填入了.

使用免费账户开发应用

从 Xcode 7 开始, 所有人都被允许安装 Xcode 并且免费开发设备应用. 无需注册iOS开发者. Xcode 会为设备自动核发一个临时开发者证书 (有效期1年) 和一个临时应用提供商档案 (有效期1周).

  1. 连接设备.
  2. 安装 Xcode.
  3. 在 Xcode 注册并登录 Apple ID.
  4. 新建项目. 最简单的 “Single View App” 就好.
  5. 选择 “Team” (自动生成) 并为app设置 bundle identifier.
  6. 确保 Xcode 为app生成了 Provisioning ProfileSigning Certificate.

  7. 编译并且在设备上运行. 首次运行, Xcode 会提示打开开发者模式并为调试做好准备. 可能要等待一会儿.
  8. 确定应用正常运行后, 在硬盘上找到编译好的app. 可以在 “Report Navigator” 的编译报告里找到app位置.

  9. 找到app, 右键选择 Show Package Contents.

  10. 把 “embedded.mobileprovision” 文件拷贝出来.

这个供应商档案文件连同加密证书可以在 Defold 为应用签名, 有效期为一周.

档案过期后, 可以在 Xcode 里如法炮制再次生成临时档案文件.

iOS应用打包

如果你有加密证书和这个供应商档案文件, 就可以在编辑器里打包应用了. 从菜单中选择 Project ▸ Bundle... ▸ iOS Application....

Signing iOS bundle

选择证书和档案. 设置架构 (32 bit, 64 bit 和 iOS 模拟器) 再选择打包模式 (Debug 或者 Release). 也可以取消选择 Sign application 跳过签名步骤留待后面完成.

::: 注意 要在模拟器中测试游戏 必须取消 Sign application 选项. 否则的话游戏能安装却不能运行. :::

点击 Create Bundle 并选择打包应用存放位置.

ipa iOS application bundle

可以在 game.project 项目配置文件的 iOS 部分 设置应用的图标, 启动屏幕 storyboard 等等.

创建 storyboard

使用 Xcode 创建 storyboard. 启动 Xcode 新建一个项目. 选择 iOS 和单视图应用:

Create project

点击 Next 继续配置项目并输入名称:

Project settings

点击 Create 完成项目创建. 接下来就可以创建 storyboard 了:

The project view

把需要的图片拖入项目. 然后打开 Assets.xcassets, 再把图片拖放到 Assets.xcassets 中去:

Add image

打开 LaunchScreen.storyboard 点击加号 (+) 按钮. 输入 “imageview” 找到 ImageView 控件.

Add image view

把控件拖放到 storyboard 上:

Add to storyboard

从下拉列表中选择刚才放入 Assets.xcassets 的图片:

进行摆放位置等操作, 还可能加入些文字标签或者其他界面组件. 制作好之后选择 Product -> Build. 等编译处理完成.

最后一步, 拷贝编译生成的 LaunchScreen.storyboardc 文件. 打开仿达, 把 LaunchScreen.storyboardc 文件粘贴到你的 Defold 项目目录:

/Library/Developer/Xcode/DerivedData/YOUR-PRODUCT-NAME-cbqnwzfisotwygbybxohrhambkjy/Build/Intermediates.noindex/YOUR-PRODUCT-NAME.build/Debug-iphonesimulator/YOUR-PRODUCT-NAME.build/Base.lproj/LaunchScreen.storyboardc

::: 注意 社区牛人 Sergey Lerg 已把上述步骤 录成了视频 供大家参考. :::

安装 iOS 打包应用

编辑器对iOS应用打包后生成 .ipa 文件. 要安装此文件, 可以使用 Xcode (通过 “Devices and Simulators” 窗口). 或者使用命令行工具 ios-deploy 或者使用 iTunes.

可以使用 xcrun simctl 命令行工具与 Xcode 的 iOS 模拟器进行交互:

# 显示可用设备列表
xcrun simctl list

# 启动 iPhone X 模拟器
xcrun simctl boot "iPhone X"

# 在模拟器上安装 your.app
xcrun simctl install booted your.app

# 启动模拟器
open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app

Did you spot an error or do you have a suggestion? Please let us know on GitHub!

GITHUB