徹底解決 OBJC CLASS

2022-09-17 02:48:12 字數 2009 閱讀 2115

最近在使用靜態庫時,總是出現這個問題。下面總結一下我得解決方法:

1. .m檔案沒有匯入   

在build phases裡的compile sources 中新增報錯的檔案

2. .framework檔案沒有匯入

靜態庫編譯時往往需要一些庫的支援,檢視你是否有沒有匯入的庫檔案

同樣是在build phases裡的link binary with libraries中新增

3. 重複編譯,可能你之前複製過兩個地方,在這裡新增過兩次,刪除時系統沒有預設刪除編譯引用位址

在build settings裡搜尋search paths  將裡面library search paths 中沒有用到的位址刪除

4. 最後乙個問題,出在靜態庫生成上面。系統編譯生成的靜態庫有兩個,乙個真機呼叫的,乙個模擬器呼叫的。

當你在真機測試時匯入模擬器靜態庫,執行就會報錯;同樣在模擬器測試時呼叫真機靜態庫也會報錯。

解決這一問題也很簡單,就是將兩個靜態庫合併,生成乙個相容的靜態庫。

通過show in finder 找到兩個靜態庫檔案,將兩個檔案複製到乙個資料夾裡,當然要進行重新命名啦,否則就覆蓋了。

下面開啟終端,cd到存放兩個檔案的資料夾。

通過lipo[空格]-create[空格] [真機靜態庫檔名][空格] [模擬器靜態庫檔名][空格]-output[空格] [合併後的檔名]

再把這個生成的檔案匯入你的工程就可以了。

最近在使用靜態庫時,總是出現這個問題。下面總結一下我得解決方法:

1. .m檔案沒有匯入   

在build phases裡的compile sources 中新增報錯的檔案

2. .framework檔案沒有匯入

靜態庫編譯時往往需要一些庫的支援,檢視你是否有沒有匯入的庫檔案

同樣是在build phases裡的link binary with libraries中新增

3. 重複編譯,可能你之前複製過兩個地方,在這裡新增過兩次,刪除時系統沒有預設刪除編譯引用位址

在build settings裡搜尋search paths  將裡面library search paths 中沒有用到的位址刪除

4. 最後乙個問題,出在靜態庫生成上面。系統編譯生成的靜態庫有兩個,乙個真機呼叫的,乙個模擬器呼叫的。

當你在真機測試時匯入模擬器靜態庫,執行就會報錯;同樣在模擬器測試時呼叫真機靜態庫也會報錯。

解決這一問題也很簡單,就是將兩個靜態庫合併,生成乙個相容的靜態庫。

通過show in finder 找到兩個靜態庫檔案,將兩個檔案複製到乙個資料夾裡,當然要進行重新命名啦,否則就覆蓋了。

下面開啟終端,cd到存放兩個檔案的資料夾。

通過lipo[空格]-create[空格] [真機靜態庫檔名][空格] [模擬器靜態庫檔名][空格]-output[空格] [合併後的檔名]

再把這個生成的檔案匯入你的工程就可以了。

徹底解決 OBJC CLASS

最近在使用靜態庫時,總是出現這個問題。下面總結一下我得解決方法 1.m檔案沒有匯入 在build phases裡的compile sources 中新增報錯的檔案 2.framework檔案沒有匯入 靜態庫編譯時往往需要一些庫的支援,檢視你是否有沒有匯入的庫檔案 同樣是在build phases裡的...

徹底解決 OBJC CLASS

1.m檔案沒有匯入 在build phases裡的compile sources 中新增報錯的檔案 2.framework檔案沒有匯入 靜態庫編譯時往往需要一些庫的支援,檢視你是否有沒有匯入的庫檔案 同樣是在build phases裡的link binary with libraries中新增 3....

徹底解決 OBJC CLASS

最近在使用靜態庫時,總是出現這個問題。下面總結一下我得解決方法 1.m檔案沒有匯入 在build phases裡的compile sources 中新增報錯的檔案 2.framework檔案沒有匯入 靜態庫編譯時往往需要一些庫的支援,檢視你是否有沒有匯入的庫檔案 同樣是在build phases裡的...