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ù)。