Facebook cocoapods' sharedApplication'不可用:iOS上不可用(App Extension)

时间:2018-01-05 23:35:38

标签: ios swift facebook fbsdk

我已经通过cocoapods安装了facebook sdk,但我收到以下错误:

  

' sharedApplication'不可用:iOS上不可用(应用程序   扩展) - 适当时使用基于视图控制器的解决方案   代替。

与FBSDKCoreKit / FBSDKAppEvents.m中的第701行有关

  

UIViewController * vc = [UIApplication sharedApplication] .keyWindow.rootViewController.presentedViewController;

为什么会发生这种情况,我该如何解决? podfile:

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

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

frameworks
  use_frameworks!

  # Pods for testapp

pod 'FLAnimatedImage', '~> 1.0'
pod 'SDWebImage', '~> 4.0'
pod 'FacebookLogin'
pod 'FacebookShare'
pod 'FacebookCore'

 pod 'OneSignal', '>= 2.5.2', '< 3.0'


  target 'testappTests' do
    inherit! :search_paths
    # Pods for testing
  end

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

  target 'testappUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

4 个答案:

答案 0 :(得分:3)

这对我有什么帮助: Pods 项目 - &gt;选择包含此错误的目标 - &gt; 构建设置 - &gt;将仅限App-Extension-Safe API 设置为

您可能必须对其他FB框架执行相同的操作

答案 1 :(得分:2)

尝试评论OneSignalNotificationServiceExtension目标&amp; pod,清理,安装并再次运行

答案 2 :(得分:1)

我有同样的问题,我解决了 将require only App-Extension-Safe Api设置为no 好像所有的facebook pod require only App-Extension-Safe Api都设置为yes所以我必须为所有xcodeproject,target,all facebook pods设置no, 你重新安装pod时可以找到require only App-Extension-Safe Api in build setting for pods,target,and project 重要提示,重置为是

答案 3 :(得分:0)

您可以将以下代码段添加到Podfile中,以编程方式解决此问题。

如果您使用的是广告连播,则可以将以下代码段添加到Podfile中以解决此问题:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'No'
    end
  end
end

这会将所有pod项目目标的require only App-Extension-Safe Api设置为No,并应使您的构建成功。