OC項目加入swift第三方庫遇到的坑


https://www.jianshu.com/p/96d868dcd69c

2017.07.07 16:23* 字數 295 閱讀 5218評論 2喜歡 4

首先,在OC項目的Podfile文件中添加如下

use_frameworks!

pod 'PromiseKit', '~> 4.2.2' #任意一個swift庫

然后pod install

接着編譯command+r

會有報錯。

先不管報錯,xcode提示修改項目配置,主要是修改

ALWAYS_SEARCH_USER_PATHS = NO;

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

如果沒有提示,請自行到project.pbxproj文件中找到ALWAYS_SEARCH_USER_PATHS改為NO;

在其上面添加一行ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

然后就是修改報錯

以前沒有加入use_frameworks!前OC調用Pod引入的第三方庫時,是這樣調用的#import <YYKit.h>,現在全部給它加上frame前綴#import <YYKit/YYKit.h>

記住不要按照xcode的提示去修改,它提示你把<>改為"",這樣就真的找不到頭文件了。

這是一個艱苦的過程,我足足改了100+個文件,還好有批量替換☺

如果你也和我一樣用到mattt大神的Ono,或者其他比較古老的第三方庫,或許你也碰到這樣的問題(如果沒看到,clean后再看)

 


引用Ono.h地方

 

是的,已經添加frame前綴Ono了,還是報錯;

一共報了2處錯誤,第一個就是它,一開始以為是frame前綴拼錯了,用代碼提示來寫也不對。

跳轉到Ono.h文件里邊也沒發現報錯

 

 

Ono.h.png

 

想着處理第二個問題再說咯,這時發現了問題的端倪

 


第二個問題才是重點! ONOXMLDocument.h.png

 

問題描述是:Include of non-modular header insider framework module 'xxxx'

解決方案是在Build Setting中修改Allow Non-modular includes in Framework Modules 為YES

 

參考資料:include of non-modular header inside XXXX

 

 

OC項目引入使用swift編寫的三方庫后,報錯

 

2018年01月15日 15:20:38 jinrui_w 閱讀數:1488

 

版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/jinrui_w/article/details/79064975

OC項目引入使用swift編寫的三方庫后,報錯

  • 錯誤描述:The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This setting can be set in the build settings editor.
  • 解決辦法: 
    • 選中Pods項目
    • TARGETS選擇對應的使用swift編寫的三方庫
    • 切換到Build Setting選項
    • 在搜索框輸入swift language搜索
    • 將Swift Language Version中的Unspecified改為對應的Swift版本(Swift 3.2)
    • 重新build項目,這是可能會報一些Swift的語法錯誤,修改一下就OK了。 

Alt text

 

 

OC項目Cocoapods導入Swift庫出錯解決辦法

https://blog.csdn.net/niumanxx/article/details/80481426

2018年05月28日 14:24:52 niumanxx 閱讀數:1088

 

版權聲明:未經博主允許不得轉載。 https://blog.csdn.net/niumanxx/article/details/80481426

由於本人在開發過程中主要用的是OC語言,所以pod的都是OC庫,Podfile里又沒加use_frameworks!

所以一直都是.a類型的。后來因為需求需要用到一個只有swift版本的庫,就使用use_frameworks!將所有.a庫變成了.framework。然后信心滿滿地運行工程,結果GG。

 

最后歸納出幾個需要注意的點:

1.將用到的庫提示找不到的,從#import <xxx.h>改為#import "xxx.h";

2.找到Target->Build Settings->Other Linker Flags,把Pod進來的庫,

比如:改成,不是Pod進來的不用改;

 

3.點擊pods Target如圖:,,再點擊Build Setting,如圖:

搜索Swift Language Version,將版本設置為Swift庫能支持的最高版本,如圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM