首页 文章

如何在iOS应用程序中将Objective-C和Swift pod集成到同一项目中

提问于
浏览
2

我在iOS应用程序中做Objective-C . 但问题是我想添加几个Objective-C apis到我之前成功添加的可可 beans 荚,但是,现在我想通过可可 beans 荚添加Swift Api,但是安装时遇到的问题如下 .

[!]用Swift编写的Pod只能作为框架集成;将 use_frameworks! 添加到您的Podfile或目标以选择使用它 . 正在使用的Swift Pod是:apis

但我不能手动添加它,因为它的大api和它包含子文件夹 .

但是,如果我从use_frameworks中删除“#”键,它就会被安装,但是,在我的项目中找不到旧的Objective-C apis获取文件 . 即使我对通过可可 beans 荚安装框架/ apis有非常基本的了解 .

任何人都可以建议我如何过来这个 .

3 回答

  • 0

    use_frameworks! 仅适用于 Objective-C pod,如果它们是动态框架而不是静态库 . 大多数流行的第三方库都使用动态框架,如 AFNetworkingGoogleMaps 等 .

    确保所有 Objective-C pod都是动态框架 . 如果您不确定只是使用 cocoapods 创建示例项目并使用 use_frameworks! . 尝试逐个添加所有pod并找出哪一个是罪魁祸首 .

  • 1

    我曾经遇到过这个问题,我所做的就是像你提到的那样使用 use_frameworks! ,然后我改变了Objective-C imports 的编写方式 .

    命令 use_frameworks! 将每个pod变为一个Framework,因此在您的项目中,.h和.m文件不再像通常那样对_1439865可见 .

    结果,而不是使用例如 #import <AFNetworking/AFNetworking.h> ,你做 @import AFNetworking;

    根据我自己的经验,也许这只是我项目的一个特例 . 但是将所有内容都转换为框架会减慢Xcode的编译时间,并且由于某种原因它使我的应用程序包更大 .

  • 0

    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>
    

    构建设置
    enter image description here

相关问题