frameWork热更新

工作中遇到想要绕过AppStore直接更新App的要求!
这里友情提示下,看了很多资料只是是实现了功能,但在项目中并没有真正用到!
资料大多都显示会被拒,这个说的是个人级的,好像企业级的不会这样,仅仅是项目需要做的尝试!

下面进入主题,建立framework工程!
 屏幕快照 2016-04-03 下午2.10.47.png
这里把想要改变的东西封装到FrameWork以便实现热更新,提一下关于BundiD 一定要一致,在打包的时候一定在Edit scheme —— >Run 选择Release如图:
 屏幕快照 2016-04-03 下午9.31.21.png
因为你要跑在真机上,所以这个要选择Release
另外将包含你想要放出的方法类添加的Head中
 屏幕快照 2016-04-03 下午9.32.29.png
OK 点击Run的到动态库然后 showinFinder
![  屏幕快照 2016-04-04 上午1.11.11.png
这就得到动态库了,然后 我们开始主程序!
主程序这里没什么好说的 主要是讲frameWok倒入就行另外在加载资源的时候要用绝对路径,因为所有的东西在Document 主程序要实现
 屏幕快照 2016-04-04 上午1.17.49.png
作为主程序和Frmework的桥接

这里需要提醒大家的ATS配置以及证书BundiD的一致,另外这个只向下兼容支持到8.0!
这里我用了两种方法一是部署在自己公司的服务器一种是利用iTunes 做了简单的测试,iTunes 测试一顶要在plist文件中添加Application supports iTunes file sharing 并设置为Yes 这样你才能通过iTunes 共享!
 屏幕快照 2016-04-03 下午11.31.02.png
运行一下 主程序跑到真机上!

连接手机通过iTunes 将Framework 放入Document 下
 屏幕快照 2016-04-03 下午11.52.12.png

这里 你就 可以根据iTunes 实时共享 !
做到改变Framework间接改变手机App的Framework 做到热更新的目的

这里在提下 我放倒服务器上通过请求如何做的!
首先 我获取权限使得后台同意让我放在自己公司上的服务器下,这里如何放置就不说了很简单,又不是自己搭服务器!想自己搭服务器的可以自己百度!

给大家看下我Demo 的截图
 屏幕快照 2016-04-03 下午11.47.32.png
第一个按钮其实是从服务器上请求的,如果有小伙伴想了解,但是没有部署的自己服务器上的话,直接用iTunes 用第二个按钮就行了!

这里值得一提的是 由于公诉网慢,我发邮件打了个zip包,本想是解压后再放上去,结果搞错了放了个zip 上去,于是请求回来的是一个zip包,于是我觉得这样很好我又做了一次解压操作,这样使得下载的资源会有所减小!

用到了一个别人写的三方解压GSPZipArchive!
这里主要是底层封装的C语言程序 据网上有人反映 已经在mac和windows两端测试通过,都可以正常压缩带有中文的文件,并能正常解压。

只不过 在mac 默认是UTF- 8 在window 上变成了GBK

解决办法打开源码 直接改为 UTF-8   
如 :zipOpenNewFileInZip ( _zipFile ,( const char *) [newname UTF8String ],// UTF-8方式编码
这样就可以了!
另外再 说下 AFN3.0 以及2.0   网上已经有很多资料了 这里我想说的是请求头以及请求体!

请求头的设置: NSString* sessionid = [[NSUserDefaults standardUserDefaults] objectForKey:kSessionID];
    if (sessionid && [sessionid length])
        return @{ @"COOKIE": [NSString stringWithFormat:@"sessionid=%@", sessionid]};
获取到到一个字典key是COOKIE value是sessionid=%@
[sessionManager.requestSerializer setValue:obj forHTTPHeaderField:key];
请求体设置:AFN 中的constructingBodyWithBlock:formData 后拼接你的参数
打击运行下看看效果吧!被拒应该是肯定的但是这种方法确实是可以做到绕过AppStore!


需要服务器更新的同学将URL 改成自己的服务器在Net里:

Demo下载:动态库FrameWork

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GameFramework热更新是指在游戏运行过程中,通过动态加载修改过的资源或代码,实现对游戏内容的更新。这种更新方式可以避免重新发布整个游戏版本,使得游戏的更新更加灵活和及时。 GameFramework热更新的实现原理主要分为两步:资源的下载和加载。 首先,资源的下载是指将服务器上最新的资源文件下载到本地设备的过程。游戏会连接到服务器下载更新的资源文件,这些文件会覆盖原有的资源文件或者更新某些资源的内容。下载过程中可以使用断点续传等技术,提高下载效率和稳定性。 其次,资源的加载是指游戏在运行时,将已经下载到本地的更新资源文件加载到内存中使用。游戏会根据新的资源文件更新游戏内容,比如更新游戏关卡、角色模型、音效等。通过动态加载更新的资源,游戏可以实现不停机、不掉线的更新过程。 使用GameFramework热更新有许多优势。首先,热更新可以提供及时的内容更新,不需要用户手动更新游戏版本。其次,相对于发布整个游戏版本,热更新可以节省带宽和服务器资源。此外,热更新还可以修复游戏中的bug、优化游戏性能和添加新功能等。 然而,GameFramework热更新也存在一些限制。首先,对于一些核心资源或代码的更改,可能需要重新发布整个游戏版本才能生效。其次,过于频繁的热更新可能会增加游戏的运行负担和下载时间。此外,需要确保热更新的安全性,避免被恶意篡改或注入恶意代码。 综上所述,GameFramework热更新是一种方便、灵活的游戏更新方式,可以实现及时更新游戏内容,提升用户体验。但在实施过程中需要注意资源下载和加载的效率、安全性等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值