IOS制作framework动态SDK库

来源:互联网 发布:mysql主键自增长删除后 编辑:程序博客网 时间:2024/06/05 06:19

@废话在前

IOS中库分为静态库(staitc library)和动态库(dynamic library),这里先介绍快速制作动态库的方法,目的主要是将自己写的插件或者sdk做成一个库包,供其他人快速调用而不暴露内部细节。


制作动态库工程主要提取以下原工程的几部分文件:

1.图片等资源文件;

2.核心类文件,包括第三方插件类文件和自定义类文件;

3.预编译头文件;

4.导入和原工程一样的用到的系统库;




.制作动态库工程


1.新建一个基于UIKit的动态库工程

*新建动态库工程:



*设置动态库名称等:



*运行动态库工程编译成功时Products文件夹下的framework文件即将要生成的类的动态库:



2.导入图片资源

新建一个文件夹,将所有图片资源放入文件夹中,将文件夹名字后缀改成xx.bundle做成bundle包。

命名最好整齐,使用图片的时候要加上bundle包名,最好做成常量:





3.导入类文件

将所有类文件包括第三方库类文件全部拷贝到动态库工程中;


4.预编译头文件

新建一个pch预编译文件,将原工程的pch文件中的内容原样复制进来,这个会在编译时编译到framework中;

pch预编译头文件的新建、配置方法和注意事项见文章:

http://blog.csdn.net/cordova/article/details/50853424


5.根据原工程导入必要的系统库:




6.设置暴露的接口头文件

将暴露的接口头文件及其直接引用的头文件拖入public头文件组内:




7.运行编译通过表示配置成功,此时动态库工程中已经有了我们之后需要的framework库文件。



.导出动态库文件


1.动态库类文件即Products文件夹中的.framework包文件;


2.资源文件打包之间将Assets.xcaassets的后缀名改为bundle即可,不能打包plist文件(其实图片资源不需要导入动态库工程,可以直接将原工程的图片资源打成bundle包即可)



.库文件的调用


1.将资源包和类库导入工程中,由于是动态库,需要在Embed Frameworks(没有则手动添加)中手动加入.framework库,否则崩溃报image not found错。



2.需要根据原工程需要做相应的配置,如info.plist文件的配置以及AppDelegate的设置等,调用前先运行编译通过。


3.在需要的类中导入类库调用接口:

////  ViewController.m//  sdktest////  Created by Xinhou Jiang on 16/7/19.//  Copyright © 2016年 youme Tech. All rights reserved.//#import "ViewController.h"#import <XXSDK/SDK.h> // 导入动态库@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    self.view.backgroundColor = [UIColor orangeColor];        // 初始化SDK    [SDK SDKInitWithAppID:@"46571891337916" unityVC:self];        // 调用动态库sdk的接口函数    [SDK Login:^(NSInteger result, UserInfo *info) {        if (result == 0) {            // 登录成功            // ... ...        }    }];}@end

@注:这样做的库文件只能用于真机或者模拟器,取决于动态库工程编译时的选择,不同同时通用于真机和模拟器。

1 0
原创粉丝点击