19

我正在尝试将Xcode 7.2.1 中的OneSignal SDK与 CocoaPods 1.0.0.beta.2 和use_frameworks!指令集成。当我尝试在 AppDelegate.swift 中导入框架时,我得到

没有这样的模块“OneSignal”。

我还有 Cocoapods 中包含的其他框架,它们可以正常工作(例如:Fabric)

我设法在另一个项目中安装了带有 cocoapods 的 OneSignal SDK,但没有use_frameworks!指令。我使用了桥接头。

4

6 回答 6

11

用 Swift 编写use_frameworks!的 Pod 可以用 .

尽管任何不是用 Swift 编写的 pod,都需要使用桥接头。

参考 OneSignal pod,入门指南指示使用 Swift 的应用程序包含一个桥接头以使用该 pod。OneSignal:入门指南

于 2016-02-09T12:54:12.783 回答
6

您需要键入这些命令。它为我修复了它:

$ pod deintegrate
$ pod install

我的播客文件:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'Your_Project_Name' do
  # Comment the next line if you don't want to use dynamic frameworks

  # Pods for Das Gedenken
pod 'OneSignal'


end

target 'OneSignalNotificationServiceExtension' do
  #only copy below line
  pod 'OneSignal'
end
于 2020-06-28T11:33:01.363 回答
5

如果在开始开发 OneSignal 之前已经有 pod 文件,则需要为 OneSignalNotificationServiceExtension 添加新目标。

    target 'OneSignalNotificationServiceExtension' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for OneSignalNotificationServiceExtension
  pod 'OneSignal', '>= 2.5.2', '< 3.0'

  end

将上述代码添加到 podfile 之后。您必须再次“安装”一次。

于 2019-07-11T08:21:39.057 回答
1

另一件要提的是,使用 Xcode 出现错误“没有这样的模块”,但框架在那里

如果框架头文件已经包含在桥接头文件中,那么您不必在 Swift 源文件中导入它。

于 2016-08-01T12:24:47.493 回答
1

编辑

OneSignal cocoapod 是不是用 Swift 编写的?我需要use_frameworks!还是桥接头?什么在 Xcode 8.2.1、Swift 3 和 OneSignal (1.11.3) 中有效?

  1. OneSignal:入门指南在 Swift 3 中实际上并不适用
  2. 添加import OneSignalAppDelegate.swift实际上对我不起作用
    (没有自动完成和编译错误)
  3. use_frameworks!在这种特定情况下没有帮助

Xcode 8.2.1、Swift 3、OneSignal 1.11.3

  • 使用此桥接头(†)

    #import "OneSignal/OneSignal.h"
    
  • 在应用程序委托中:

    func application(_ application: UIApplication, didFinishLaunchingWithOptions
                     launchOptions: [UIApplicationLaunchOptionsKey: Any]?)
                     -> Bool {
        _ = OneSignal.init(launchOptions: launchOptions,
                           appId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
        ...
    }
    

  • (†) 添加正确设置的桥接头的一种简单方法是简单地将新的 Objective-C 源文件添加到项目中并按照对话框操作。 配置桥接头
于 2017-01-03T19:21:51.527 回答
0

在开始使用 pod 之前安装 pod 后立即构建(CMD+B)项目有帮助。而且我们必须在开始使用 Pod 之前清除所有错误。

于 2018-02-22T12:45:08.570 回答