iOS開發庫之(四):工程和庫聯調
問題
我們在使用這個自己建立庫或者SDK的時候會遇到除錯的問題,我們總可可能每次把framework或者.a靜態庫編譯一次然後又拖進工程除錯一次吧,這是不現實的,所以今天教大家怎樣實現工程和庫聯調。
解決
方式有兩種:工程內部拖入framework和相同workspace下除錯
第一種:工程內拖入framework
首先新建我們的主工程KODDemo:
再新建庫工程KODSDKFramework,此處以framework為例:
PS:這裡是直接建立framework的,預設是動態庫,詳細請看:
iOS開發庫之(二):靜態庫Framework的建立
iOS開發庫之(一):動態庫的建立和除錯
然後把庫工程KODSDKFramework關閉掉,留下主工程KODDemo,如果主工程KODDemo關閉了,那麼再次開啟主工程KODDemo:
進入剛剛的庫工程KODSDKFramework檔案目錄,找到.xcodeproj這個檔案:
滑鼠左鍵單擊此工程檔案KODSDKFramework並拖入到工程KODDemo中,如下:
PS: 注意此處會出現截圖中的小箭頭是正常的,那麼表示可以進行聯調了,但是如果我們之前在開啟庫工程KODSDKFramework再拖入到工程中是會報錯的,並且沒有小箭頭,所以一定要關掉KODSDKFramework工程,報錯如下圖:
具體錯誤:
/Users/KODIE/Desktop/KODSDKFramework/KODSDKFramework.xcodeproj Couldn't load KODSDKFramework.xcodeproj because it is already opened from another project or workspace
遇到這個錯誤也不要怕很簡單,就是一個工程不要同時開啟嘛,那就把之前的庫工程KODSDKFramework關掉,然後再次開啟主工程KODDemo就好了,So easy!!!
第二種:相同workspace下除錯
首先先建立一個workspace:
建立主工程KODDemo和庫工程KODSDKFramework因為以上第一種我們已經介紹了怎麼建立那我們這裡就省略了
開啟workspace,雖然毛都沒有但是還是要開啟:
將主工程KODDemo和KODSDKFramework的.xcodeproj分別拖入到workspace中,注意這裡兩個工程是並齊的位置,並且拖入時要關閉KODDemo和KODSDKFramework工程:
PS: 如果此時你把庫工程KODSDKFramework拖入到如下的位置那麼和第一種無異了:
配置:
好的,新建好工程和拖入之後沒問題那就是要做下配置了,配置很簡單都是在主工程KODDemo中配置如下的配置即可(方式一二皆是如此):
第一種:
第二種:
這樣就配置完了,但是請注意我們每編輯一次庫就需要編譯一次庫,然後再執行主工程才能看到效果,要不然還是上次編譯成功的庫的效果。
使用中遇到的問題:
當我們在進行庫和工程聯調的時候,如果出現如下報錯:
具體錯誤:
/Users/KODIE/Desktop/KODDemo/KODDemo/ViewController.m:10:9: Could not build module 'KODSDKFramework'
遇到這個問題一般都是以下問題造成的:
改成以下即可,因為這個公開的檔案就是暴露的標頭檔案,而這個標頭檔案中引用了我們其他的檔案,但是其他的檔案並沒有暴露出來就會有問題:
記得改完之後編譯以下庫,然後再編譯執行主工程就OK了。
相關文章
- iOS開發之逆向工程iOS
- iOS 開發(四) 常用第三方庫篇iOS
- iOS-靜態庫聯調中的若干問題iOS
- iOS 靜態庫開發iOS
- SQL2K資料庫開發四之刪除資料庫SQL資料庫
- iOS建立動態庫工程iOS
- iOS 開發中的『庫』(一)iOS
- iOS 開發中的『庫』(二)iOS
- 玩轉iOS開發《建立CocoaPods開發庫》iOS
- iOS開發之protocol和delegateiOSProtocol
- iOS混合開發庫(GICXMLLayout)五、Texture篇iOSXML
- iOS 靜態庫詳解與開發iOS
- iOS混合開發庫(GICXMLLayout)一、介紹iOSXML
- iOS混合開發庫(GICXMLLayout)八、熱更新iOSXML
- iOS混合開發庫(GICXMLLayout)七、JavaScript篇iOSXMLJavaScript
- iOS開發-工程結構iOS
- 三庫(開發庫、受控庫、靜態庫)的概念和個人理解
- Arduino庫和STM32的暫存器、標準庫、HAL庫、LL庫開發比較之GPIOUI
- ios靜態庫和動態庫iOS
- 獵頭-Java 開發工程師(資料庫開發)-北京Java工程師資料庫
- ios 開發中 動態庫 與靜態庫的區別iOS
- iOS元件化之私有庫iOS元件化
- 國產資料庫調研之——AntDB資料庫資料庫
- iOS 元件化開發(二):遠端私有庫的更新與子庫iOS元件化
- iOS開發之NavBar和TarBar使用技巧iOS
- libzip開發筆記(一):libzip庫介紹、編譯和工程模板筆記編譯
- iOS開發: CocoaPods遠端私有倉庫的維護-新增子庫iOS
- ios開發分析:CocoaPods私有庫建立與使用iOS
- 6年iOS開發常用的三方庫iOS
- iOS開發: 配置CocoaPods遠端私有倉庫iOS
- mysql之 資料庫開發規範MySql資料庫
- iOS開發之UITableView聯動實現城市選擇器iOSUIView
- 33 款主宰 2017 iOS 開發的開源庫iOS
- iOS整合 Flutter 混合工程開發一iOSFlutter
- 混合開發:flutter整合進iOS工程FlutteriOS
- iOS 工程開發中的 Code ReviewiOSView
- iOS 開發之— NSURLProtocoliOSProtocol
- iOS開發之WebViewiOSWebView