【问题标题】:adding 'use_frameworks!' in podfile is breaking app添加“use_frameworks!”在 podfile 中正在破坏应用程序
【发布时间】:2016-03-21 23:10:00
【问题描述】:

我的 iOS 应用包含 Objective-C 和 Swift 代码。现在我在 pod 文件的顶部添加了 use_frameworks! 以使用一些 swift 库。不幸的是,它开始出现编译错误。

我的 pod 版本:0.39.0

它开始抱怨 bridge.h 文件中的导入

Pod 文件包含 Objective-C 库。现在我想添加 swift 库。

我该如何解决这个问题。如果需要更多详细信息,请告诉我

use_frameworks!
platform :ios, '9.0'

xcodeproj 'Test.xcodeproj'

def devDependecies

    pod 'SocketRocket'
    pod 'CocoaLumberjack'
    pod 'MRProgress'
    pod 'GRMustache', '~> 7.3.0' 
    pod 'Realm', '=0.96.2'
    pod 'ADALiOS'
    pod 'Office365/Outlook'
    pod 'Office365/Discovery'
    pod 'AFNetworking'
    #https://github.com/youtube/youtube-ios-player-helper/issues/160
    pod 'youtube-ios-player-helper', :git=>'https://github.com/youtube/youtube-ios-player-helper', :commit=>'head'
    pod 'iOSCalendarEventParser', '=0.0.4'
    pod 'OneDriveSDK'

end


target 'Test' do
    devDependecies
end

bridge.h 文件中的示例错误:

但是这个文件存在于 pod 目录下。

【问题讨论】:

标签: ios objective-c swift cocoapods


【解决方案1】:

'youtube-ios-player-helper' 可以编译为框架。 所以从桥头中删除它,然后在你的 Swift 类中添加一个导入行

import youtube-ios-player-helper

对所有可以编译为框架的 pod 执行相同的操作

【讨论】:

    【解决方案2】:

    目前 Xcode 不允许这样做。 use_frameworks 仅适用于 swift pod 或库。如果您添加一个目标 C 库,您需要使用桥接头,因此您需要删除 use_frameworks 指令以使其工作。我发现的唯一解决方法是仅通过 pod 导入目标 C 库和可以手动添加它们的 swift 库。您可以复制类名称和内容并像创建它们一样使用它们。

    【讨论】:

    • Alex,你手动添加它们是什么意思?你是怎么做到的?
    • 对于目标 C 库,只需 pods 文件。对于 swift 库,例如 alamofire 项目(库)或 Haneke 等其他库,您可以手动添加它们。下载库,然后将项目(蓝色图标)拖到主项目下方的 xcode 中。然后转到您的项目并单击目标。选择您的主应用程序,然后转到常规选项。在 Embedded Binaries 下单击 + 图标,然后在 Product 下选择您刚刚拖动的库。而已。现在您可以在您使用的任何类中导入该库,例如 import Alamofire
    猜你喜欢
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 2017-12-08
    • 2012-02-10
    • 2022-11-30
    • 1970-01-01
    相关资源
    最近更新 更多