egret 发布ios记录

时间:2023-01-10 18:47:46

根据官方文档http://developer.egret.com/cn/github/egret-docs/Native/native/hybrid/hybrid/index.html

将现有的项目发布成Hybird。

发布成功之后,使用xcode打开xcworkspace工程。

然后点击运行按钮。成功调用启动了iphone模拟器,但是内容确实一片空白,即手机模拟器屏幕上显示的是一片空白。

到这里为止,我再次回到官方文档查看。

逐个排查工程模版。

1.默认工程是从本地启动游戏。

 我没有做任何改动,那就是从本地启动游戏。

1.1 启动流程

    1.1.1初始化EgretWebViewLib;

[EgretWebViewLib initialize:@"/egretGame/preload/"];
// "/egretGame/preload/"是缓存目录,在应用的document目录下。

      成功;

  

         1.1.2检查游戏资源是否已经部署到本地服务器;

[EgretWebViewLib checkLoaded:zipFilePath Host:host]
// zipFilePath是游戏资源zip的绝对路径
// host是游戏映射到哪个url下,如host为"https://egret.com/game/",对应的游戏url为"https://egret.com/game/index.html"

  

   这里要怎么部署到本地服务器呢?这里的游戏资源是指什么?如果需要将游戏资源部署到本地服务器,那么本地服务器是指那个什么服务?是否需要手动重新启动一个本地服务?

       1.1.3 将游戏资源部署到本地服务器

ZipFileLoader* loader = [EgretWebViewLib createZipFileLoader:zipFilePath Host:host Delegate:self];
[loader start];

   这里是否只需要调用了这一句,就会将资源部署到本地服务器?如果是的话,那么是将什么资源部署到本地服务器?这个肯定需要一个源文件放上去,这个源文件在哪里?

    1.1.4 启动游戏  包括了启动本地服务器, 启动游戏。

[EgretWebViewLib startLocalServer]; // 启动本地服务器
[EgretWebViewLib startGame:gameUrl SuperView:self.view]; // 启动游戏

  

    这里的1.1只是一种启动方式,另外还有如下3种启动方式:

           启动方式2:直接启动游戏  

[EgretWebViewLib startGame:gameUrl SuperView:self.view];
// gameUrl是游戏的url地址

     启动方式3:从Resources目录启动游戏(0.1.11版本添加)

[EgretWebViewLib startLocalServerFromResource];
[EgretWebViewLib startGame:indexFilePath SuperView:self.view];
// indexFilePath是游戏的index.html文件相对于Resources的路径

  如下图所示,indexFilePath为”game/index.html”。需要确认游戏资源目录已经添加到”Copy Bundle Resources”中。

egret 发布ios记录egret 发布ios记录

 

 

 

 

  启动方式4:下载游戏资源到本地,从本地启动游戏

    1.检查本地游戏资源版本(根据文件名判断是否加载过)

[EgretWebViewLib checkLoaded:];

    2.下载游戏资源

ZipFileLoader* loader = [EgretWebViewLib createZipFileLoader: Delegate:];
[loader start];

    3.启动本地服务器和游戏

[EgretWebViewLib startLocalServer];
[EgretWebViewLib startGame: SuperView:];

  

 

到此,我还是没有看到我应该如何处理才能够跑得起来。

 

 

----------------------------上面都是废话---------------------------

改成使用ios,而不是hybird方案。

然后发布web包,将web包的release里面的放到ios工程的game目录下,将代码里面使用localhost即可运行。