我有一個帶2個體繫結構片(armv7,arm64)的胖靜態庫。 我試圖使它與swift一起工作,並將其包裝到Cocoa Touch Framework中。在可可觸摸框架中包裝靜態庫
我做什麼:
- 創建可可觸摸框架項目
- 將.A靜態庫頭
- 設置
OTHER_LDFLAGS
到-all_load
- 設置
ONLY_ACTIVE_ARCH
到NO
- 設置
VALID_ARCHS
和ARCHS
到armv7
和arm64
- 與發佈構建配置構建從DerivedData /../../產品
- 搶.framework文件/
當我把這個.framework到我迅速的項目,加入到嵌入式二進制文件一節中我針對一般設置,導入框架並使用其中的一個類,我得到undefined symbols for architecture arm64
或undefined symbols for architecture armv7
。
編輯:
不知道它是否有幫助,但我注意到,靜態庫的大小約爲34MB,但生成的.framework的大小約爲12MB。
編輯2:
我在靜態庫和生成的動態庫上運行nm -arch arm64 -g myLibraryName
。動態庫不包含靜態庫具有的所有符號。看起來像XCode構建過程剝離了很多。
爲了說明您是否想要在您的框架中分發該庫?你只是想能夠在你的框架內使用庫,或者你是否也試圖將庫展示給嵌入框架的應用程序?最後有一個'.dylib'版本可用的靜態庫? – tdbit
@tdbit我想將靜態庫包裝到Cocoa Touch Framework,因爲我想用swift。如你所知,swift不支持靜態庫。不,'.dylib'不可用。 – tailec
確保您正在創建圖書館。請查看以下鏈接以獲取創建動態框架的正確方法。 > https://www.insert.io/frameworkios8xcode6/ > https:// possiblemobile。com/2016/08/ios-frameworks-part-2-build-and-ship/ – pdubal