iOS的Framework靜態庫
靜態庫VS動態庫
- 靜態庫不需要簽名,動態庫需要簽名。
製作混編靜態庫
庫內部Swift呼叫OC的標頭檔案
Swift呼叫OC時,庫裡面不能使用bride
橋接檔案,需要將OC標頭檔案加入到工程標頭檔案中XFramework.h
。-
庫內部OC呼叫Swift的標頭檔案
所有庫內部編譯的Swift標頭檔案都在<XFramework/XFramework-Swift.h>
裡面,OC呼叫時匯入標頭檔案<XFramework/XFramework-Swift.h>
。#import <XFramework/XFramework-Swift.h>
⚠️Swift檔案類的許可權可以使用
open
和public
,擴充套件的許可權使用public
。⚠️Swift4.0的方法如果要在OC使用,必須手動新增
@objc
才能編譯到<XFramework/XFramework-Swift.h>
標頭檔案中。最好對所有的Swift介面都加上@objc public
。 -
對外提供訪問檔案:
在庫工程的Build Phases中
Headers
裡面管理標頭檔案。供外部訪問的OC檔案加入到
Public
中。Swift檔案建議都加入到
Private
中。Swift檔案加入到Public
後會對外開放原始碼。
新增庫:
庫可以直接使用.framework
或者子工程新增。
使用
.framework
使用子工程
呼叫庫檔案:
-
呼叫庫的OC檔案:
OC標頭檔案一般都在
XFramework.h
中:#import <XFramework/XFramework.h>
Swift標頭檔案一般都在
<XFramework/XFramework-Swift.h>
中:#import <XFramework/XFramework-Swift.h>
-
呼叫庫的Swift檔案:
有兩種方式都可以。
-
一種是在本地
bridge
中新增標頭檔案,另一種方式是。#import <XFramework/XFramework.h> #import <XFramework/XFramework-Swift.h>
-
在Swift中匯入Framework
import XFramework
-
擴充套件問題
需要在Targets的build setting選項下有Other linker flags的設定加上-Objc
或者-all_load
或者-force_load
。
-all_load
表示對所有庫加上鍊接庫。
-force_load
只對指定庫加。
-force_load $(SRCROOT)/XFramework.framework/XFramework
Demo地址
上傳中...
相關文章
- iOS - 靜態庫.a 和 framework 詳解iOSFramework
- iOS中的動態庫,靜態庫和framework介紹iOSFramework
- ios靜態庫和動態庫iOS
- iOS 靜態庫 與私有庫iOS
- iOS動態庫和靜態庫的運用iOS
- iOS 靜態庫詳解與開發iOS
- 自建 iOS 靜態庫並用 pod 管理iOS
- iOS中動/靜態庫支援bitcode的問題iOS
- iOS應用程式瘦身的靜態庫解決方案iOS
- iOS-靜態庫聯調中的若干問題iOS
- 靜態庫與動態庫
- iOS 靜態庫-因為CPU架構引起的小問題iOS架構
- linux下的靜態庫與動態庫Linux
- 深入iOS系統底層之靜態庫介紹iOS
- iOS逆向--注入framework庫到appiOSFrameworkAPP
- 動靜態庫
- 靜態庫生成
- C靜態庫的建立與使用--為什麼要引入靜態庫?
- android下java的靜態庫和動態庫AndroidJava
- Android NDK祕籍--編譯靜態庫、呼叫靜態庫Android編譯
- iOS拆分,合併靜態庫以壓縮打包空間iOS
- cmake:生成靜態庫和動態庫
- 簡述Linux下的靜態庫和動態庫Linux
- ABAP程式碼靜態分析工具SQF - Support Query FrameworkFramework
- [Linux]動靜態庫Linux
- Linux共享庫、靜態庫、動態庫詳解Linux
- iOS動態庫的使用iOS
- iOS 常用除錯方法:靜態分析iOS除錯
- 玩轉 iOS 開發:Aggregate 指令碼版本《模擬器與真機靜態 Framework 合成教程》iOS指令碼Framework
- 靜態資源公共庫
- 動態連結庫與靜態連結庫
- linux 動態庫 靜態庫 函式覆蓋Linux函式
- vsstudio中靜態庫lib的除錯除錯
- 一、靜態庫和動態庫,Makefile專案管理專案管理
- 資料庫靜態脫敏資料庫
- Linux 靜態庫生成及呼叫Linux
- CMake和靜態庫順序
- 靜態庫和動態庫的製作以及Bundle資原始檔的使用