--- id: publishIOS.html title: 打包 iOS app --- egret-ios-support是Egret打包为原生ios APP的方案,你可以使用egret-ios-support将你的HTML5游戏打包为ipa文件,并提供给用户安装。 具体使用方法如下: ## 预备知识 为了顺利完成本教程,请确认您已熟练掌握以下知识: * 了解文件、文件夹的概念,以及创建,移动、复制、重命名和删除等知识。 * 了解终端、命令行、Shell其中之一,会启动她,并能通过命令行执行的方式完成上一条的相关操作 * 了解如何下载文件并解压缩文件 * 了解以下术语: * 编写游戏逻辑需要:JavaScript、TypeScript、nodejs、npm * 打包iOS App需要:Objective-C、C++、Xcode ## 文档概述 本文会完整的展示如何在一个已经安装npm管理包的环境中全新安装Egret核心包、Egret的iOS支持包,最终在模拟机中运行Demo的过程。 本文分为三部分:第一部分为iOS开发环境的安装、第二部分为Egret游戏框架的安装、第三部分创建一个完整iOS App的示例。 ## iOS开发环境安装 ### 安装iOS开发环境——Xcode 运行App Store,在搜索项查找“Xcode”,下载并安装即可 ![](56664988d7d76.png) ## 安装Egret游戏框架 ### 预备知识 运行Mac OS X的Terimal应用:在Finder中打开Applications文件夹,再打开Utilities文件夹,找到Termial应用,双击运行。如下图: ![](566649891032b.png) 进入你的工作目录,在演示中,我们的的工作目录为“labs/”,工作目录为空文件夹,如下图: ![](566649892b54a.png) ![](5666498952fbd.png) 接下来,为我们的游戏建立一个projects文件夹,运行 ``` $ mkdir projects ``` 如下图: ![](56664989695f4.png) ![](566649898fba5.png) ### 下载Egret的iOS支持包 创建Egret Support文件夹 ![](56664989b625e.png) *下载Egret ios支持包* 下载[egret-ios-support](http://www.egret.com/downloads/ios.html),将egret-ios-support放置在“labs/egret-support/”文件夹下,如下图: ![](56664989d5c4a.png) ## 创建一个iOS打包的示例 ### 创建一个Egret项目 这里创建一个名称为`ACoolHtmlGame`的项目,使用命令如下: ``` $ egret create ACoolHtmlGame ``` 如图: ![](5666498a0f7f5.png) ![](5666498a4f6be.png) ### 编写你的游戏项目 接下来要做的事情就是编写你的游戏项目逻辑。这里我们不进行操作,使用默认的项目来进行演示。 ### 创建你的ios项目工程 #### 从你的HTML5游戏创建ios项目工程 回到我们的游戏工程文件夹“labs/projects/”下,我们通过一个新的命令来创建适用于ios的项目,该命令创建项目时,需要指定原有HTML5工程和你的egret-ios-support路径。命令如下: ``` $ cd projects/ $ egret create_app ACoolIosGame -f ACoolHtmlGame -t ../egret-support/egret-ios-support ``` >`create_app`命令可用来创建适用于ios的项目工程。`ACoolIosGame`则是该工程的工程名。 `-f`参数则指定我们的HTML5游戏项目,我们直接将刚刚创建的HTML5项目路径填写进入即可。 `-t`参数则是ios项目工程的模板,我们需要指定“egret-ios-support”项目路径。 下图为运行命令演示: ![](5666498a7cff0.png) 运行命令后,你将看到新生成的ACooliosGame项目文件夹,该文件夹结构如下: ![](5666498aa996b.png) 自此,我们已经创建了一个完整的ios工程,我们来看一下当前的文件层级: ``` labs/-+ +-- egret-core/-+ # egret +-- egret-support/-+ # egret 支持库 | +-- egret-ios-support/ # ios支持 +-- projects/-+ | +-- ACoolIosGame # ios工程 | +-- ACoolHtmlGame # html应用 ... ``` ### 编译iOS游戏 #### 导入项目 打开ACoolIosGame文件夹,双击“ACoolIosGame.xcodeproj”,等待Xcode加载完成 ![](5666498ac908d.png) ### 测试项目 点击Xcode的Run命令,直接进入iOS模拟器运行 ![](5666498ae5860.png) 下图为运行效果 ![](5666498b20f9b.png) 如需生成ipa包,请访问[苹果开发网站](http://developer.apple.com/),注册开发者账号,阅读相关设置即可。 自此,完成了使用Egret实现一个iOS游戏应用的全过程。 ### 项目开发的整体流程 我们推荐的开发方式:在原有的HTML5游戏项目中进行开发,开发测试ok,再编译到iOS平台。下面为大家演示一下流程: 1、创建一个HTML5游戏: `egret create ACoolHtmlGame` 2、创建对应的iOS游戏 `egret create_app ACoolIosGame -f ACoolHtmlGame -t ../egret-support/egret-ios-support` 3、测试一下各个平台游戏 4、在ACoolHtmlGame中开发游戏,一个小步进的开发后,我们要开始编译我们的游戏并在浏览器上测试,这是使用 `egret build ACoolHtmlGame --runtime native -e` 这行命令执行了两项任务:1.编译TypeScript到JavaScript,2.将编译出的文件同步到Xcode项目中。这里需要注意的有两点:1.编译的项目是*HTML5项目,2.不要更改iOS项目的位置*,项目位置的设置将在高级教程给出, 3.此时HTML5项目会失效,想查看HTML5项目,请使用 `egret build ACoolHtmlGame -e` 来使得HTML5项目生效,此时iOS项目失效。 5、此时可以使用egret startserver ACoolHtmlGame 启动游戏服务,这样浏览器就能观察到实现的游戏逻辑了。 6、接下来回到ACoolIosGame的Xcode工程中,使用Xcode来清除、重新编译、调试项目,这样就可以在手机上得到和HTML项目的游戏逻辑了。 7、返回4,不断的迭代。