Xcode framework 的編譯及測試
阿新 • • 發佈:2019-01-10
建立 Framework 工程
- 新建 Cocoa Touch Framework
- 編寫 Podfile
- pod install 安裝第三方依賴
- 開啟 .xcworkspace
- 新增要公開的標頭檔案到 Build Phases / Headers / Public 下
- command+B,編譯 framework
建立測試工程
- 在靜態庫的工作空間中,新建一個 Target,選擇 Single view applictation,作為測試工程
- 選擇這個 Target,在 Build Phases 中,在 Target Dependencies 下新增已經編譯好的 framework 作為依賴
- 在測試工程的 General / Linked Frameworks and Librarys 中新增這個 framework
- 在測試工程中編寫呼叫程式碼,進行除錯
常見錯誤:
- dyld: Library not loaded: @rpath……Reason: image not found
將 framework 改為靜態庫,mach-o type 設為 Static Library,然後重新編譯 framework
編譯錯誤:找不到第三方 cocoapods 庫的標頭檔案
修改 Podfile 檔案,在測試工程的 target 下增加必要的 pod。
如果 framework 和測試工程的 pod 相同,也可以用 .each 迴圈:
targets = ['YLYIndoorNavigation','YLYIndoorNavigationDemo']
targets.each do |t|
target t do
pod 'AFNetworking'
pod 'FDFullscreenPopGesture', '~> 1.1'
... ...
end
end
然後 pod install。
編譯出錯:Undefined symbols for architecture i386:
“___gxx_personality_v0”, referenced from:
在工程中新增新增 libstdc++.dylib 即可。
Archive 時報錯:ld: library not found for -lAFNetworking
在 Link Binary with Libraries 中,新增相關 pod 庫(比如libAFNetworking.a 等)。
Archive 出錯:bitcode bundle could not be generated because ‘xxxx’ was built without full bitcode.
將 Target 的 Enable Bitcode 設定為 NO。