使用通知扩展会导致 Cocoapods 出现问题

Posted

技术标签:

【中文标题】使用通知扩展会导致 Cocoapods 出现问题【英文标题】:Using a Notification Extension causes issue with Cocoapods 【发布时间】:2018-06-28 18:39:18 【问题描述】:

我的应用中有一个通知扩展程序。但是,当我构建我的应用程序时,它与 pod FBSDKLoginKit 冲突。它在 FBSDKCoreKit 中给了我以下错误:

'sharedApplication' is unavailable: not available on ios (App Extension) - Use view controller based solutions where appropriate instead.

我的 Podfile 看起来像这样(我错过了不相关的 pod):

workspace 'MyApp'
platform :ios, '10.0'

target 'MyApp' do
  use_frameworks!
  project 'MyApp.xcodeproj'
  pod 'FBSDKLoginKit'
  pod 'OneSignal', '>= 2.6.2', '< 3.0'

  target 'OneSignalNotificationServiceExtension' do
    pod 'OneSignal', '>= 2.6.2', '< 3.0'
  end
end

我该如何解决这个问题?

【问题讨论】:

据我了解,您在非控制器视图类中调用“sharedApplication”。所以它与你的 podfile afaik 无关。尝试将扩展继承到 UIViewController 以进行测试,然后重试。 Facebook的FBSDKLoginKit框架出现错误,使用Cocoapods导入。我无法控制这段代码。 查看此链接。它可能会帮助你。 ***.com/questions/34225213/… 【参考方案1】:

OneSignalNotificationServiceExtension 目标移出 Podfile 中的主要目标。不要忘记在其中定义use_frameworks!

workspace 'MyApp'
platform :ios, '10.0'

target 'MyApp' do
  use_frameworks!
  project 'MyApp.xcodeproj'
  pod 'FBSDKLoginKit'
  pod 'OneSignal', '>= 2.6.2', '< 3.0'
end

target 'OneSignalNotificationServiceExtension' do
  use_frameworks!
  pod 'OneSignal', '>= 2.6.2', '< 3.0'
end

pod install,清理并构建,这应该可以解决问题?

【讨论】:

以上是关于使用通知扩展会导致 Cocoapods 出现问题的主要内容,如果未能解决你的问题,请参考以下文章