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

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

连接手机通过iTunes 将Framework 放入Document 下 

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

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

给大家看下我Demo 的截图  第一个按钮其实是从服务器上请求的,如果有小伙伴想了解,但是没有部署的自己服务器上的话,直接用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!

更新 FrameWork相关推荐

  1. 热更新 FrameWork

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

  2. framework调试

    framework调试 1.cd framework/base 2.在此目录下执行 mm 3.adb push out/target/product/paz00/system/framework/fr ...

  3. MTK android11 新增按键流程(framework)

    以新增一个新按键F15为例 前提是bsp部分配置好GPIO相关部分,并在mtk-kpd.kl文件中配置新增按键,与framework的qwerty.kl相对应 a.  添加与BSP配置对应关系 fra ...

  4. Android 编译系统模块 3

    Framework 模块编译概要 这一篇是对上一篇文章做了一个概要的说明,大致讲解了framework层的文件和结构. 1.cd framework/base 2.在此目录下执行 mm 3.adb p ...

  5. Android 整体设计及背后意义

    目录 1. Android设计的现实意义 1.1 发展的前提:硬件抽象 1.2 能力的枢纽:组件化 1.3 应用的基础-接口层 2. 对于我们的象征意义和实践 3. 小结 阿里妹导读:现实工作中经常可 ...

  6. android mm 修改路径,Android 编译系统模块

    在开发过程中,尤其是Framework相关开发时,有时候需要重新编译资源文件.编译顺序和注意事项如下: 1,资源文件位置:frameworks/base/core/res 2,编译后生成的文件:fra ...

  7. iOS-APP包的瘦身之旅(从116M到现在的36M的减肥之路)

    前言 我还在上一个东家的时候,我现在东家的项目写了几个功能作为外包给我做了,所以没来这家公司的时候我对这个项目就比较熟悉了:前年从上家公司离职后受邀来到现在这家公司了.接手这个APP因为急着上线功能, ...

  8. Launcher功能入口

    launcher各种功能入口 1.点击事件.点击图标.点击文件夹等等 ItemClickHandler.java public static final OnClickListener INSTANC ...

  9. Android Treble结构:Part 2 - 概述

    介绍 在前面的教程中,我们学习了Treble是如何解决Android碎片化的大致原理,使得Android可以快速更新. 借助Treble,谷歌还推出一系列测试,即VTS [记住CTS是测试Androi ...

最新文章

  1. android java 时间测试方法_一个让你开挂的Android 性能测试方法
  2. dede文章调用时过滤调 body里面的style属性和值
  3. 记录发现的一个hiredis的bug
  4. Flash小玩意图案创作:新增MulCircle和圆环
  5. 同花顺崩了上热一!网友:早盘血亏,你还不让我跑 官方回应...
  6. 仅用18天,英伟达新型GAN合成真假难辨高清明星脸
  7. CentOS 7 安装 Scrapy 记录
  8. java 修饰符全解
  9. 【NetBeans IDE 8.2链接MySQL数据库教程】
  10. C/C++语言 结构体数组初始化 结构体数组元素全部置0 memset函数将结构体数组初始化
  11. java随机抽题系统_无纸化随机抽题考试系统(Java+Hibernate 技术)
  12. 支付宝微信的刷脸支付竞赛马不停蹄
  13. Unity3d之设计模式(二)工厂模式
  14. CodeForces - 1367
  15. Robinson Crusoe chapter 8 A ship arrives at the island
  16. 02-CPU基础知识:通俗易懂方式理解主频、核心、线程、缓存、架构
  17. java 发送邮件 outlook_JavaMail发送带图片正文的邮件,outlook等邮箱不显示的问题 | 学步园...
  18. php 调用微信收货地址,php微信自动获取收货地址api用法实例详解
  19. can上位机开发资料
  20. 【STM32F429的DSP教程】第48章 STM32F429的中值滤波器实现,适合噪声和脉冲过滤(支持逐个数据的实时滤波)

热门文章

  1. DataGrid的几个小技巧
  2. Linux环境安装卸载JDK以及安装Tomcat和发布Java的web程序
  3. Redis源码解析——字典遍历
  4. WMI技术介绍和应用——Event Provider
  5. 矩阵奇异值分解简介及C++/OpenCV/Eigen的三种实现
  6. C/C++中inline/static inline/extern inline的区别及使用
  7. php $this self,php中self与$this的区别
  8. thinkphp 调用php文件上传,ThinkPHP实现带验证码的文件上传功能实例
  9. iactionresult 图片_从显式类型的ASP.NET Core API控制器(不是IActionResult)返回404
  10. python将string转换为json_python -- 将string转换成dict的方法