iOS - 封裝自己的Framework文件,創建、調試、生成文件、打包


最近公司要求將幾個第三方的SDK封裝成一個公司自己控制的SDK,以前沒怎么接觸過,所以查了一天資料,大概搞明白是怎么做的了,在這里做個記錄。

 

現在開始!

 

一、創建Framework文件:

1.Xcode -> File --> New --> Projict..  -->  Framework & Libaary  --> Cocoa Touch Feamework

2.創建一個類文件來調試

//
//  ShowAccountName.h
//  ShowNameSDK
//
//  Created by SJQ on 2019/6/21.
//  Copyright © 2019 西門依北. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@protocol ShowAccountNameDelegate <NSObject>

//返回你的姓
- (void)isFinshWithYourFirstName:(NSString *)firstName;

@end

@interface ShowAccountName : NSObject

@property (nonatomic, weak) id <ShowAccountNameDelegate> delegate;

//傳入的名字
@property (nonatomic, copy) NSString *accountName;

//打印你的名字
- (void)showNameWithAccount;

@end

NS_ASSUME_NONNULL_END
//
//  ShowAccountName.m
//  ShowNameSDK
//
//  Created by SJQ on 2019/6/21.
//  Copyright © 2019 西門依北. All rights reserved.
//

#import "ShowAccountName.h"

@interface ShowAccountName()

@property (nonatomic, copy) NSString *firstName;

@end

@implementation ShowAccountName

- (void)showNameWithAccount {
    NSLog(@"你的名字:%@",self.accountName);
}

- (void)setAccountName:(NSString *)accountName {
    _accountName = accountName;
    if (self.accountName.length == 0) {
        self.firstName = @"未檢測到姓名";
    } else {
        self.firstName = [self.accountName substringToIndex:2];
    }
    
    //觸發代理
    if ([self.delegate respondsToSelector:@selector(isFinshWithYourFirstName:)]) {
        [self.delegate isFinshWithYourFirstName:self.firstName];
    }
}

@end

3.配置屬性

  •  TAGETS -> Build Settings -> Dead Code Stripping 設置為  NO;
  •  TAGETS -> Build Settings -> Link With Standard Libraries  設置為 NO;
  •  TAGETS -> Build Settings -> Mach-O Type 設置為 Static Library;
  •  增加armv7,armv7s,  TAGETS -> Build Settings -> Architectures -> Architectures 增加 armv7,armv7s
  •  設置Headers  TAGETS -> Build Phases -> Headers  -> Public  把要暴露的.h文件拖到這個目錄下

以下是圖片示例:

 

 

 

 

 

4.需要在ShowNameSDK.h文件里面添加所創建使用到的 文件頭

#import <ShowNameSDK/ShowAccountName.h>

 

二、調試完成的Framework功能

就在剛剛新建的Framework項目里面新建調試Demo,

 

 

然后切換TARGETS里面的項目就好了,調試的時候在 General -> Linked Frameworks and Libraries 下添加 你新建的Feamework文件進行調試。

 

三、生成完整的Framework 文件

1.選中模擬器,運行程序

2.選中真機,運行程序

3.在Finder中找到 Framework 文件

 

 

編譯程序會分別編譯成兩個版本,真機和模擬器,我們要做的就是要把這兩個版本合成一個通用的版本,要把framework文件下的 ShowNameSDK合成一個

 

打開終端:

lipo -create  路徑1 路徑2 -output  新文件路徑

路徑1 路徑2 為上面兩個framework文件下的 ShowNameSDK文件路徑,新文件路徑我是放到桌面上的

然后把生成好的ShowNameSDK文件(注意名字要一樣)去替換兩個Framework中的一個目錄下的ShowNameSDK文件,然后拷貝這個.framework文件,這個.framework就是我們最終要的!

四、打包

打包會出現bug ,我檢查了代碼發現是生成.framework文件的時候有些配置配錯了,下次再遇到再記錄

 

 

 

 

 

 

參考資料:

https://www.cnblogs.com/oc-bowen/p/7478461.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM