繁体   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