iOS開(kāi)發(fā) 封裝SDK

category是項(xiàng)目開(kāi)發(fā)中經(jīng)常用到的,把category打包成靜態(tài)庫(kù)是沒(méi)有問(wèn)題的,但是在使用這個(gè)靜態(tài)庫(kù)時(shí),
調(diào)用category中的方法時(shí)會(huì)發(fā)生找不到該方法的運(yùn)行時(shí)錯(cuò)誤(selector not recognized),
解決的辦法是在使用靜態(tài)庫(kù)的工程中配置other linker flags的值為 -ObjC -all_load

1,創(chuàng)建項(xiàng)目,選擇Framework
截屏2020-05-25 上午11.44.06.png

2,常規(guī)命名
截屏2020-05-25 上午11.44.49.png

3,設(shè)置兼容版本,版本這個(gè)看需求吧
截屏2020-05-25 上午11.50.15.png

4,修改動(dòng)態(tài)庫(kù)為靜態(tài)庫(kù),我們創(chuàng)建的framework默認(rèn)是動(dòng)態(tài)庫(kù),蘋果審核中如果發(fā)現(xiàn)動(dòng)態(tài)庫(kù)的話似乎會(huì)審核不通過(guò),所以我們要將Mach-O Type設(shè)置為靜態(tài)庫(kù) Static Library
截屏2020-05-25 上午11.52.39.png

5,導(dǎo)入所需要封裝的代碼,這里先直接創(chuàng)建演示,創(chuàng)建HelloWorld類,常規(guī)創(chuàng)建
截屏2020-05-25 上午11.58.11.png

6,HelloWorld.h中

//
//  HelloWorld.h
//  MySDK
//
//  Created by Twinkleo on 2020/5/25.
//  Copyright ? 2020 Twinkleo. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface HelloWorld : NSObject

- (void) logTest;

@end

NS_ASSUME_NONNULL_END

7,HelloWorld.m中

//
//  HelloWorld.m
//  MySDK
//
//  Created by Twinkleo on 2020/5/25.
//  Copyright ? 2020 Twinkleo. All rights reserved.
//

#import "HelloWorld.h"

@implementation HelloWorld

- (void) logTest {
    NSLog(@"SDK測(cè)試-----Hello World");
}

@end

8,設(shè)置需要公開(kāi)給用戶的頭文件,下面的直接拖拽到Public中
截屏2020-05-25 下午12.00.33.png

變?yōu)?div id="u0z1t8os" class="image-package">
截屏2020-05-25 下午12.02.45.png

9,設(shè)置頭文件,頭文件引用
截屏2020-05-25 下午12.03.58.png

10,模擬器下編譯一下
截屏2020-05-25 下午1.58.10.png

11,切換到真機(jī)狀態(tài),左側(cè)framework變紅,開(kāi)始編譯
截屏2020-05-25 下午1.58.30.png

12,Generic iOS Device下編譯以后
截屏2020-05-25 下午1.58.39.png

13,選中,右鍵Show in Finder
截屏2020-05-25 下午2.01.26.png

14,對(duì)應(yīng)真機(jī)和模擬器狀態(tài)下的sdk
截屏2020-05-25 下午2.04.03.png

15,合并,打開(kāi)終端,格式

lipo -create 模擬器framework的路徑 真機(jī)framework路徑 -output  新的路徑
截屏2020-05-25 下午2.10.08.png

16,在根目錄下會(huì)拿到新的framework,替換掉原來(lái)的
截屏2020-05-25 下午2.14.50.png

17,拿到最終的MySDK.framework

18,測(cè)試剛才生成的MySDK.framework

19,新建一個(gè)iOS項(xiàng)目,將剛才生成的MySDK.framework直接拖到項(xiàng)目中
截屏2020-05-25 下午2.27.27.png

20,測(cè)試
截屏2020-05-25 下午2.31.33.png

21,打完收工,基本完成。

后續(xù)還會(huì)有一些其他細(xì)節(jié),之后會(huì)添加上,暫時(shí)先就這些吧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容