问题
I've installed FBSDK with Cocoapods but can't import it in my AppDelegate.swift file for some reason. The FBSDK kit appears in my Xcode project so I feel like it should be working.
I'm not an iOS developer by any means, I'm just trying to write a simple native plugin for Flutter SDK. Anyone an idea?
--Here is what the pod file looks like--
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
if ENV['FLUTTER_FRAMEWORK_DIR'] == nil
abort('Please set FLUTTER_FRAMEWORK_DIR to the directory containing Flutter.framework')
end
target 'Runner' do
use_frameworks!
# Pods for Runner
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'
# Flutter Pods
pod 'Flutter', :path => ENV['FLUTTER_FRAMEWORK_DIR']
if File.exists? '../.flutter-plugins'
flutter_root = File.expand_path('..')
File.foreach('../.flutter-plugins') { |line|
plugin = line.split(pattern='=')
if plugin.length == 2
name = plugin[0].strip()
path = plugin[1].strip()
resolved_path = File.expand_path("#{path}/ios", flutter_root)
pod name, :path => resolved_path
else
puts "Invalid plugin specification: #{line}"
end
}
end
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
---EDIT---
I''m getting the following error atm: FBSDKCoreKit.framework: No such file or directory
.When I open the Frameworks folder in xCode, all file names are in red:
But that exact folder in Finder is empty. So I guess that's why the error is showing. The question is how to fix this...
This is what my embedded binaries
and linked frameworks and libraries
look like in the project:
回答1:
- Select your Project Target
- Go to Build Settings.
- Search for Header Search Paths.
- Add this value $(SRCROOT)/Pods with recursive, then Xcode will resolve the path for you.
回答2:
I'll naively suppose you don't have use_frameworks!
in you Podfile
. If that's true, than you have two ways to go from here:
In your
Runner-Bridging-Header.h
add#import <FBSDKCoreKit/FBSDKCoreKit.h>
, removeimport FBSDKCoreKit
fromAppDelegate.swift
and just continue writing the code.Add
use_frameworks!
to yourPodfile
and runpod install
again. That might bring some other issues, but if that works, than I'd suggest it.
回答3:
Are you opening the .xcodeproj
or the .xcworkspace
? Make sure it is the workspace whenever you install a cocoapod
回答4:
If you use cocoapods
, it should have generated a *.xcworkspace
file for you. Open this file instead so your project can see the FBSDK
installed and has reference to it.
回答5:
Why not simply use the Swift pods?-
pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FacebookShare'
and then import as normal, like-
import FBSDKLoginKit
import FacebookLogin
Once done, do a clean and build (command/⌘ + Shift + K) and Build (command/⌘ + B). Make sure you are using the .xcworkspace
file to open the project.
More info on Swift FBSDK here.
Once you use the Swift pods, you should see these Frameworks in your project.
If you still continue to see the error then "Clean the build folder" using command + shift + alt + K.
回答6:
When you install your pods, you must build your application first. Then your imports stop showing errors.
回答7:
Start by cleaning your project using Command + Shift + K
then close the project and delete the pods
folder and the pod.lock
file and your .xcworkspace
file. Then run pod install
and see if that fixes the issue.
回答8:
First Clean your project directory. And add $(inherited) in framework search path in Build settings.
回答9:
As importing the FBSDKCoreKit.framework
etc. will be performed in the [CP] Embed Pods Frameworks
build phase when using CocoaPods, you should remove the references to these frameworks in the Embed Frameworks
build phase.
CocoaPods will not create those references, I assume you have tried other ways of importing the Facebooks frameworks, and these link have been created in the process. You can also delete the references to the Facebook frameworks in the Frameworks Folder of you App-Project (the ones in your screenshot written in red, not the ones in the Pods-Project!), but keep the Pods_Runner.framework
there.
From what I can tell, your Linked Frameworks and Libraries
section looks valid.
If it still doesn't work, I'd advise you to create a new Xcode Project with an empty Podfile, and only include the Facebook frameworks via CocoaPods. Importing the Facebook-SDK in the AppDelegate should work then, otherwise I can share a sample project with you. Then you should check your build setting and build phases, maybe something is wrong there. If you still can't figure out the problem, you will probably need to re-create you xcode-project and import all your files again.
Without a sample Project that reproduces the error, that's the best advise I can give.
Good Luck! :)
回答10:
The above solutions for Header Search Path should work. If you are too lazy to go there. Copy podfile content, remove all pods, pod install, then revert your podfile, pod install again.... Should work ;-)
来源:https://stackoverflow.com/questions/44808305/cant-import-dependency-installed-with-cocoapods