IOS制作framework动态SDK库

本文详细介绍如何在iOS中快速创建动态库,包括资源文件、类文件、预编译头文件的导入步骤,以及如何设置暴露接口头文件,并提供动态库的调用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@废话在前

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.youkuaiyun.com/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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr_厚厚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值