使用动态链接库的方式动态实现更新

原创 2015年11月21日 18:52:25


1.创建动态链接库。
路径:demo下的,生成动态链接库的工程/MyTestDynamic
Xcode默认不支持创建此类iOS工程,只好选择OS X的对应项目。选择Cocoa Library
Type 选择为 Dynamic.
Base SDK选择 iOS x.x, Architectures 选择 Standard. 
删除所有的OS X frameworks, 添加 iOS SDK的 Foundation.framework.
工程内实现了一个外部需要调用的视图类(此处是这个库的功能点,可以只打印日志)
为了编译通过,需要修改Xcode的一些文件。demo下的:生成动态链接库的工程/Xcode需要修改的文件/
2.测试工程。
路径:demo下的,测试工程/TestLoaclController
内部增加了一个按钮点击事件,此处增加了加载链接库的方法
设置info.plist,Application supports iTunes file sharing属性设置为YES
详见测试工程代码
3.iTunes将动态链接库生成的文件MyTestDynamic.dylib添加到测试工程里面
demo下有一个生成好的动态链接库文件,在demo下的,已经生成好的测试库/MyTestDynamic.dylib。可以直接使用
4.运行测试工程,点击按钮,动态加载
5.动态更新动态链接库,再次拷贝,此时需要重启一下工程,内容已经更新
6.注意
创建动态链接库的工程与测试工程的证书使用一个
动态链接库被加载过以后,即便更新也需要重新启动程序,才会生效
注意:使用动态链接库的方式动态更新模块,技术上可以实现。但苹果审核不通过。
1.创建动态链接库。
路径:demo下的,生成动态链接库的工程/MyTestDynamic
Xcode默认不支持创建此类iOS工程,只好选择OS X的对应项目。选择Cocoa Library
Type 选择为 Dynamic.
Base SDK选择 iOS x.x, Architectures 选择 Standard. 
删除所有的OS X frameworks, 添加 iOS SDK的 Foundation.framework.
工程内实现了一个外部需要调用的视图类(此处是这个库的功能点,可以只打印日志)
为了编译通过,需要修改Xcode的一些文件。demo下的:生成动态链接库的工程/Xcode需要修改的文件/
2.测试工程。
路径:demo下的,测试工程/TestLoaclController
内部增加了一个按钮点击事件,此处增加了加载链接库的方法
设置info.plist,Application supports iTunes file sharing属性设置为YES
详见测试工程代码
3.iTunes将动态链接库生成的文件MyTestDynamic.dylib添加到测试工程里面
demo下有一个生成好的动态链接库文件,在demo下的,已经生成好的测试库/MyTestDynamic.dylib。可以直接使用
4.运行测试工程,点击按钮,动态加载
5.动态更新动态链接库,再次拷贝,此时需要重启一下工程,内容已经更新
6.注意
创建动态链接库的工程与测试工程的证书使用一个
动态链接库被加载过以后,即便更新也需要重新启动程序,才会生效
注意:使用动态链接库的方式动态更新模块,技术上可以实现。但苹果审核不通过。
版权声明:VIC

相关文章推荐

高并发的服务器模式

原文:http://zhidao.baidu.com/link?url=Kh3xUKbWjeqdEYjrS9CwVaTTTLbHDre9Gbw_eN5j-cBFnrMJahPW_vlB_cLgYd22...

DLL动态库的创建,隐式加载和显式加载

动态库的创建 打开VS,创建如下控制台工程,工程命名为DllTest: 在弹出的对话框中选择“DLL”后单击“完成”按钮: 在工程中新建DllTest.h和DllTest.cpp...
  • dcrmg
  • dcrmg
  • 2016-12-02 20:32
  • 805

运行过程中链接动态链接库与编译过程中链接动态库的区别

我们调用动态链接库有两种方法:一种是编译的时候,指明所依赖的动态链接库,这样loader可以在程序启动的时候,来所有的动态链接映射到内存中;一种是在运行过程中,通过dlopen和dlfree的方式加载...

对静态库,共享库,动态加载库的理解

转载来源:http://blog.sina.com.cn/s/blog_8f3985400100uw5k.html 在上面原文基础上整理了一下,主要突出了重点内容。         库文件一般就是...

动态库的设计与实现

编写DllMain函数 DllMain函数是DLL模块的默认入口点。当Windows加载 DLL模块时调用这一函数。系统首先调用全局对象的构造函数,然后调用全局函数DLLMain。DLLMain函数...

C#加载C、C++动态库的方法

1、针对托管动态库的调用 本文章中的外部调用函数声明如下: public delegate int PutValue(string name, string value); Assembly as...

linux下的动态库与静态库

今天就来谈一下linux中比较重要的一个知识点–静态库和动态库。说到静态库和动态库啊,不得不提的就是程序编译链接的过程,现在有很多的IDE我们很少去关注程序编译链接的本质,但是其背后的运行机制却是必须...

VS之动态库实现和调用

程序开发中,经常会使用到动态库,那么动态库该如何实现和调用呢?本文通过一个简单的例子实现。

为什么模板不支持分离编译

首先我要介绍分离编译的概念?一个程序由若干个原文件共同实现,每个源文件单独编译生成目标文件,然后再将所有的目标文件链接起来生成单一的可执行程序的过程.ps.我所理解的分离编译就是不在同一个.h或.cp...

VC中怎么加载静态和动态链接库

调用DLL,首先需要将DLL文件映像到用户进程的地址空间中,然后才能进行函数调用,这个函数和进程内部一般函数的调用方法相同。Windows提供了两种将DLL映像到进程地址空间的方法: 1. 隐式的加...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)