CocoapodsでFBSDKをインストールしましたが、何らかの理由でAppDelegate.Swiftファイルにインポートできません。 XcodeプロジェクトにFBSDKキットが表示されるので、動作するはずです。
私は決してiOS開発者ではなく、Flutter SDKのシンプルなネイティブプラグインを作成しようとしています。誰でもアイデア?
-ポッドファイルは次のようになります-
# 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 ---
次のエラーatmを取得しています:FBSDKCoreKit.framework: No such file or directory
。xCodeでFrameworksフォルダーを開くと、すべてのファイル名が赤で表示されます。 しかし、Finderの正確なフォルダは空です。だから私はそれがエラーが表示されている理由だと思います。問題は、これを修正する方法です...
これは私のembedded binaries
およびlinked frameworks and libraries
プロジェクトのように見えます:
use_frameworks!
がPodfile
にないと単純に仮定します。もしそうなら、ここから次の2つの方法があります。
Runner-Bridging-Header.h
で#import <FBSDKCoreKit/FBSDKCoreKit.h>
を追加し、import FBSDKCoreKit
からAppDelegate.Swift
を削除して、コードの記述を続けます。
use_frameworks!
をPodfile
に追加し、pod install
を再度実行します。それはいくつかの他の問題をもたらすかもしれませんが、それがうまくいけば、私がそれを提案するよりも。
.xcodeproj
または.xcworkspace
を開いていますか?ココアポッドをインストールするときは必ずワークスペースであることを確認してください
cocoapods
を使用する場合、*.xcworkspace
ファイル。代わりにこのファイルを開いて、プロジェクトにFBSDK
がインストールされ、参照できるようにします。
Swiftポッドを単に使用しないのはなぜですか?
pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FacebookShare'
そして、通常のようにインポートします-
import FBSDKLoginKit
import FacebookLogin
完了したら、クリーンアップしてビルドします(command/⌘ + Shift + K)およびビルド(command/⌘ + B)。 .xcworkspace
ファイルを使用してプロジェクトを開いていることを確認してください。
Swift FBSDK here 。
Swiftポッドを使用すると、これらのフレームワークがプロジェクトに表示されます。
引き続きエラーが表示される場合は、「ビルドフォルダーのクリーンアップ」を使用して command + shift + alt + K。
ポッドをインストールするときは、最初にアプリケーションを構築する必要があります。その後、インポートはエラーの表示を停止します。
最初にプロジェクトディレクトリをクリーンアップします。そして、ビルド設定のフレームワーク検索パスに$(継承)を追加します。
CocoaPodsを使用する場合、FBSDKCoreKit.framework
などのインポートは[CP] Embed Pods Frameworks
ビルドフェーズで実行されるため、Embed Frameworks
ビルドフェーズでこれらのフレームワークへの参照を削除する必要があります。
CocoaPodsはこれらの参照を作成しません。Facebooksフレームワークをインポートする他の方法を試したことがあると思います。これらのリンクはその過程で作成されたものです。また、App-ProjectのFrameworksフォルダー内のFacebookフレームワークへの参照(スクリーンショット内でPods-Project内のものではなく赤で記述されているもの)を削除することもできますが、Pods_Runner.framework
はそのまま残します。
私の知る限り、Linked Frameworks and Libraries
セクションは有効に見えます。
それでも動作しない場合は、空のPodfileを使用して新しいXcodeプロジェクトを作成し、CocoaPods経由でのみFacebookフレームワークを含めることをお勧めします。その後、AppDelegateでFacebook-SDKをインポートすることで動作するはずです。そうでない場合は、サンプルプロジェクトを共有できます。次に、ビルド設定とビルドフェーズを確認する必要があります。何か問題がある可能性があります。それでも問題を解決できない場合は、おそらくxcode-projectを再作成し、すべてのファイルを再度インポートする必要があります。
エラーを再現するサンプルプロジェクトがなければ、それが最善のアドバイスです。
幸運を! :)
上記のヘッダー検索パスのソリューションが機能するはずです。あなたがそこに行くのが面倒な場合。ポッドファイルのコンテンツをコピーし、すべてのポッドを削除し、ポッドをインストールしてから、ポッドファイルを元に戻し、ポッドを再度インストールします。..動作するはずです;-)
Command + Shift + K
を使用してプロジェクトをクリーンアップしてから、プロジェクトを閉じ、pods
フォルダーとpod.lock
ファイルと.xcworkspace
ファイルを削除します。次にpod install
を実行して、問題が解決するかどうかを確認します。