iOS SDK开发

一、SDK动态库开发(包含第三方库,以MBProgressHUD为例)

       1、创建动态库,选择 Cocoa Touch Framework

        2、在SDK中导入MBProgressHUD库,并创建一个SDKDemoViewController,SDKDemoViewController中有两个按钮,一个showHUD,一个dismiss

        3、配置XCODE,例如 Build Active Architchture Only 设置为No,Other Linker Flags,添加 -ObjC

        4、设置公开头文件,在 Build Phases 里设置 Headers 的public,并需要在SDKDemo.h文件中import引入

        5、若SDK中有xib、图片等资源都需要添加到Bundle中,所以要创建Bundle,点击File-New-Target-ios-Bundle,取名为SDKDemoBundle,将资源添加到Bundle,配置Bundle

        6、编译Bundle,在products目录下,会发现生成的Bundle

        7、为SDK添加脚本,作用是将模拟器的sdk和真机的sdk合成一个,使它同时适用于真机和模拟器。

        8、创建测试工程,将SDK、bundle都导入

        9、上架APPStore,需要将i386 x86_64两个平台删除后,才能正常提交。

 

二、静态库开发

      1、创建动态库,选择 Cocoa Touch Static Library

      2、编写逻辑代码,(分别在模拟器和真机)command + B

      3、show in finder,合并.a文件

 

三、静态库和动态库的区别

       1、静态库在程序编译时会被链接到目标代码中,而动态库在程序运行时才被载入

       2、静态库在链接时,会被完整的复制到可执行文件中,如果多个App都使用了同一个静态库,那么每个App都会拷贝一份,缺点是浪费内存。动态库不会复制,只有一份,程序运行时动态加载到内存中,系统只会加载一次,多                 个程序共用一份,节约了内存(这是系统动态库)。我们自己使用 Cocoa Touch Framework 制作的动态库是放到 app bundle 中,运行在沙盒中的,不过 iOS8 上开放了 App Extension 功能,可以为一个应用创建插件,                这样主app和插件之间共享动态库还是可行的。

        3、静态库的好处:

              1、模块化,分工合作,提高了代码的复用及核心技术的保密程度

              2、避免少量改动经常导致大量的重复编译连接

              3、也可以重用,注意不是共享使用

        4、动态库的好处:

              1、可以将最终可执行文件体积缩小,将整个应用程序分模块,团队合作,进行分工,影响比较小

              2、多个应用程序共享内存中得同一份库文件,节省资源

              3、可以不重新编译连接可执行程序的前提下,更新动态库文件达到更新应用程序的目的

 

四、静态库和动态库的相同点

       静态库和动态库都是闭源库,只能拿来满足某个功能的使用,不会暴露内部具体的代码信息

      

转载于:https://www.cnblogs.com/xiaonizicome/p/10911151.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值