【问题标题】:How can I use Chartboost with Cocoapods in Swift?如何在 Swift 中将 Chartboost 与 Cocoapods 一起使用?
【发布时间】:2015-07-23 21:54:02
【问题描述】:

这是我的 Podfile

platform :ios, 8.0
use_frameworks!

pod "ChartboostSDK"
pod "SVProgressHUD"

SVProgressHUD 正在变成一个框架,但由于某种原因 Chartboost 不是。

这当然会使 Chartboost 的导入在我的代码中不起作用。

【问题讨论】:

    标签: xcode swift cocoapods swift2 chartboost


    【解决方案1】:

    直接使用CocoaPods的Swift不支持ChartboostSDK库,需要通过以下方式手动集成:

    1.首先,解压缩 SDK 包并将 Chartboost 框架 放入您的 Xcode 项目中。确保您还链接了这些框架:

    • StoreKit
    • Foundation
    • CoreGraphics
    • UIKit

    2.然后您需要添加一个 Swift 桥接头,以便您从 Swift 类中与旧的 Objective-C 类进行通信。如果您打算将部分代码库保留在 Objective-C 中,则需要一个。您可以通过以下方式手动创建它:

    1. 将新文件添加到 Xcode(文件 > 新建 > 文件),然后选择 “Source” 并单击 “Header File“

    2. 将文件命名为“YourProjectName-Bridging-Header.h”。

    3. 导航到您的项目构建设置并找到“Swift Compiler – Code Generation” 部分。您可能会发现在搜索框中输入“Swift Compiler” 以缩小结果范围会更快。注意:如果您没有“Swift 编译器 - 代码生成”部分,这意味着您可能还没有将任何 Swift 类添加到您的项目中。添加 Swift 文件,然后重试。

    4. 在“Objective-C Bridging Header”旁边,您需要添加头文件的名称/路径。如果您的文件位于项目的根文件夹中,只需将头文件的名称放在那里。示例:“ProjectName/ProjectName-Bridging-Header.h”或简称“ProjectName-Bridging-Header.h”。

    5. 打开您新创建的桥接头并使用#import statements 导入您的Objective-C 类。此文件中列出的任何类都可以从您的 swift 类中访问。

    您的桥接头必须包含在以下几行中:

    #import <UIKit/UIKit.h>
    #import <Chartboost/Chartboost.h>
    #import <Chartboost/CBNewsfeed.h>
    #import <CommonCrypto/CommonDigest.h>
    #import <AdSupport/AdSupport.h>
    

    您可以在他的iOS Integration 帮助手册中阅读有关使用 Charboost 的后续步骤的更多信息。

    希望对你有所帮助。

    【讨论】:

    • 你是在告诉我,我没有遇到问题的所有其他库(如 SVProgressHUD、AFNetworking、SDWebImage)都支持 swift 吗?即使是在 6 个月前最后一次更新的 JBKenBurnsView,甚至在可可足类实现快速使用之前也能正常工作。好奇怪……
    • 是的,例如 AFNetworking 是一个 Objective-C 库,它的继承者是 Swift 中的 Alamofire。如果你想在 Swift 中使用 Objective-C 代码,你需要按照我之前告诉你的去做。
    • 嗯,不,我在之前的评论中提到的所有其他 Objective-C 库都不是这种情况。由于 Cocoapods 框架和自 0.36 版以来实现的 Swift 支持,我在 Podfile 中使用 use_frameworks! 让所有其他库在没有桥接头的情况下工作
    • Cocoapods 不仅支持 Swift,还取决于允许 Swift 支持它的库的创建者。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    相关资源
    最近更新 更多