簡體   English   中英

如何在iOS應用程序中將Objective-C和Swift pod集成到同一項目中

[英]How to integrate both Objective-C and Swift pods in same project in iOS app

我在iOS應用程序中做Objective-C。 但問題是我想添加幾個Objective-C apis到我之前成功添加的可可豆莢,但是,現在我想通過可可豆莢添加Swift Api,但是安裝時遇到的問題如下。

[!]用Swift編寫的Pod只能作為框架集成; 添加use_frameworks! 您的Podfile或目標選擇使用它。 正在使用的Swift Pod是:apis

但我不能手動添加它,因為它的大api和它包含子文件夾。

但是,如果我從use_frameworks中刪除“#”鍵,它就會被安裝,但是,在我的項目中找不到舊的Objective-C apis獲取文件。 即使我對通過可可豆莢安裝框架/ apis有非常基本的了解。

任何人都可以建議我如何過來這個。

use_frameworks! 只有當它們是動態框架而不是靜態庫時才會使用Objective-C pod。 大多數流行的第三方庫都使用動態框架,如AFNetworkingGoogleMaps等。

確保所有Objective-C pod都是動態框架。 如果您不確定只是使用cocoapods創建示例項目並使用use_frameworks! 嘗試逐個添加所有pod並找出哪一個是罪魁禍首。

我曾經遇到過這個問題,我做的是使用use_frameworks! 就像你提到的那樣,然后我改變了Objective-C imports的編寫方式。

命令use_frameworks! 原來每莢成框架,所以在項目h和.m文件不再可見的import像他們通常會。

因此,不要使用例如#import <AFNetworking/AFNetworking.h> ,而是使用@import AFNetworking;

根據我自己的經驗,也許這只是我項目的一個特例。 但是將所有內容都轉換為框架會減慢Xcode的編譯時間,並且由於某種原因它使我的應用程序包更大。

Podfile文件:

 platform :ios, '10.0'
    use_frameworks!

    def pods
        pod 'Alamofire', '= 4.4'
        pod 'SwiftyJSON' '= 3.1.4'
        pod 'MBProgressHUD'
    end

    target 'YourProject' do
        pods
    end

YourProject橋接,Header.h

#import <MBProgressHUD/MBProgressHUD.h>

構建設置 在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM