热更新 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 下载:动态库更新











本文转自 卓行天下  51CTO博客,原文链接:http://blog.51cto.com/9951038/1770718,如需转载请自行联系原作者
目录
相关文章
|
5月前
|
开发框架 移动开发 前端开发
除了 HMR 插件,还有哪些技术可以实现热更新?
【10月更文挑战第23天】不同的热更新技术都有其特点和适用场景。开发者需要根据项目的具体需求和技术架构,选择合适的热更新技术来提高开发效率和用户体验。同时,随着技术的不断发展,热更新技术也在不断创新和完善,未来可能会出现更多更先进的热更新技术和方法。
|
监控 Android开发
cordova实现热更新
cordova实现热更新
479 0
cordova实现热更新
转载:OSGI组件依赖
原文链接: OSGi组件依赖     OSGi doesn’t allow you to specify class visibility at the class level, but instead at the level of the containing package. 1. The header:Export-Package and The directives for the Export-Package header     当指定一个package export,默认的它的subpackage是没有exportde,需特别指定。
873 0
如何将CocoaPods与多个Framework子项目一起使用
假设主项目是MAIN_APP,两个子项目是FRAMEWORK_A和FRAMEWORK_B。
150 0
Webpack插件使用及热更新打包
Webpack插件使用及热更新打包
141 0
|
Android开发
【Android 插件化】Hook 插件化框架 ( 加载插件包资源 )(一)
【Android 插件化】Hook 插件化框架 ( 加载插件包资源 )(一)
261 0
|
Android开发
【Android 插件化】Hook 插件化框架 ( 加载插件包资源 )(二)
【Android 插件化】Hook 插件化框架 ( 加载插件包资源 )(二)
291 0
|
XML 开发工具 Android开发
buglly热更新集成遇到的那些坑
首先说明使用热修复的意义,那就是你的apk包发出去了,万一发生了紧急异常需要修复,怎么办?这时候再发包上市场审核,也是有点慢了吧?而且错误发生在apk中,无法通过后台接口修复,这时候你就需要一个强大的工具了,那就是热修复了.热修复有多个框架,目前腾讯的buglly的tinker是已经提供工具集成了,并且许多的应用都在使用,看看官方对它的介绍: 热更新能力是Bugly为解决开发者紧急修复线上bug,而无需重新发版让用户无感知就能把问题修复的一项能力。
2355 0
|
Android开发 iOS开发
Cordova 实现热更新
文章来源 http://blog.csdn.net/zhuzhiqiang_zhu/article/details/53608398 一、添加插件 说明:在这个步骤里面,以下的命令需要在项目根目录下执行 ● 新建Cordova项目 ○ cordova create CordovaHotCode com.
1728 0
|
Web App开发 Apache
MyFaces Core v2.0.7/2.1.1 发布,JSF框架
MyFaces是 JSF (JavaServerFaces) Web框架 (JSR 127)的一个实现。JavaServer(tm) Faces Web框架是一个新的实现MVC模式的规范。 这两个版本优化了 UIComponent EventListenerWrapper ,然后就是修复了一些bug。
775 0