我试图将Xcode 7.2.1中的OneSignal SDK与CocoaPods 1.0.0.beta.2和use_frameworks!
指令集成。
当我尝试在AppDelegate.swift中导入框架时,我得到了
没有这样的模块' OneSignal'。
我还有Cocoapods提供的其他框架没有问题(例如:Fabric)
我设法在另一个项目中安装带有cocoapods的OneSignal SDK,但没有use_frameworks!
指令。我使用了桥接头。
答案 0 :(得分:7)
用Swift编写的Pod可以用use_frameworks!
导入,如果你不这样做,CocoaPods会抱怨并尝试用Swift代码导入pod。
虽然任何没有用Swift编写的pod都需要使用桥接头。
引用OneSignal窗格,入门指南指示使用Swift的应用程序包含桥接标头以便使用该窗格。 OneSignal: Getting Started Guide
答案 1 :(得分:1)
另一件值得提及的是Getting error "No such module" using Xcode, but the framework is there
如果框架标头已包含在桥接头文件中,那么您不必在Swift源文件中导入它。
答案 2 :(得分:1)
修改
是不是用Swift写的OneSignal cocoapod?我需要use_frameworks!
还是桥接?什么在Xcode 8.2.1,Swift 3和OneSignal(1.11.3)中有效?
import OneSignal
添加到AppDelegate.swift
实际上对我不起作用
(没有自动完成和编译错误)use_frameworks!
在这种特定情况下毫无帮助使用此桥接头(†):
#import "OneSignal/OneSignal.h"
在App Delegate中:
func application(_ application: UIApplication, didFinishLaunchingWithOptions
launchOptions: [UIApplicationLaunchOptionsKey: Any]?)
-> Bool {
_ = OneSignal.init(launchOptions: launchOptions,
appId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
...
}
答案 3 :(得分:0)
在开始使用pod帮助之前立即安装pods(CMD + B)项目。而且我们还必须在开始使用pod之前清除所有错误。
答案 4 :(得分:0)
如果在开始开发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之后。您必须再次“ pod安装”。
答案 5 :(得分:0)
您需要键入以下命令。它已为我修复:
$ pod deintegrate
$ pod install
我的Podfile:
# 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