Нет такого модуля 'OneSignal'

Я пытаюсь интегрировать OneSignal SDK в Xcode 7.2.1 с директивами CocoaPods 1.0.0.b.2 и use_frameworks!, Когда я пытаюсь импортировать фреймворк в AppDelegate.swift, я получаю

Нет такого модуля "OneSignal".

У меня также есть другие рамки, включенные в Cocoapods, которые работают без проблем (например: Fabric)

Мне удалось установить OneSignal SDK с cocoapods в другом проекте, но без директивы use_frameworks!. Я использовал заголовок моста.

Ответ 1

Подписи, написанные в Swift, могут быть импортированы с помощью use_frameworks!, а CocoaPods будут жаловаться, если вы этого не сделаете, и попытайтесь импортировать модули в код Swift.

Хотя для любых модулей, не написанных в Swift, потребуется использовать заголовок моста.

Обращаясь к модулю OneSignal, руководство по началу работы инструктирует приложения, использующие Swift, включить заголовок моста для использования модуля. OneSignal: Руководство по началу работы

Ответ 3

ИЗМЕНИТЬ

Является ли OneSignal cocoapod написанным в Swift или нет? Нужен ли мне use_frameworks! или заголовок? Что работает в Xcode 8.2.1, Swift 3 и OneSignal (1.11.3)?

  • OneSignal: Руководство по началу работы на самом деле не работает в Swift 3
  • добавление import OneSignal в AppDelegate.swift на самом деле не сработало для меня
    (ошибка автозаполнения и компиляции)
  • 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 в проект и следовать диалогам. Configure bridging headers

Ответ 4

СОЗДАНИЕ (CMD + B) проекта сразу после установки контейнеров перед запуском с использованием поддержки контейнера. А также мы должны очистить всю ошибку до того, как начать использовать стручки.

Ответ 5

если у вас уже есть файл pod до начала разработки OneSignal, вам нужно добавить новую цель для 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

После добавления вышеуказанного кода в подфайл. Вы должны "установить pod" еще раз.