web-dev-qa-db-ja.com

Cocoapodsと共にインストールされた依存関係をインポートできません

CocoapodsでFBSDKをインストールしましたが、何らかの理由でAppDelegate.Swiftファイルにインポートできません。 XcodeプロジェクトにFBSDKキットが表示されるので、動作するはずです。 enter image description here

私は決して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フォルダーを開くと、すべてのファイル名が赤で表示されます。 enter image description hereしかし、Finderの正確なフォルダは空です。だから私はそれがエラーが表示されている理由だと思います。問題は、これを修正する方法です...

これは私のembedded binariesおよびlinked frameworks and librariesプロジェクトのように見えます: enter image description here

13
Bram Vanbilsen
  1. プロジェクトターゲットを選択してください
  2. ビルド設定に移動します。
  3. ヘッダー検索パスを検索します。
  4. この値$(SRCROOT)/ Podsを再帰的に追加すると、Xcodeがパスを解決します。

enter image description here

22
Bryan Norden

use_frameworks!Podfileにないと単純に仮定します。もしそうなら、ここから次の2つの方法があります。

  1. Runner-Bridging-Header.h#import <FBSDKCoreKit/FBSDKCoreKit.h>を追加し、import FBSDKCoreKitからAppDelegate.Swiftを削除して、コードの記述を続けます。

  2. use_frameworks!Podfileに追加し、pod installを再度実行します。それはいくつかの他の問題をもたらすかもしれませんが、それがうまくいけば、私がそれを提案するよりも。

4
S2dent

.xcodeprojまたは.xcworkspaceを開いていますか?ココアポッドをインストールするときは必ずワークスペースであることを確認してください

3

cocoapodsを使用する場合、*.xcworkspaceファイル。代わりにこのファイルを開いて、プロジェクトにFBSDKがインストールされ、参照できるようにします。

2
Lawrence Tan

Swiftポッドを単に使用しないのはなぜですか?

pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FacebookShare'

そして、通常のようにインポートします-

import FBSDKLoginKit
import FacebookLogin

完了したら、クリーンアップしてビルドします(command/⌘ + Shift + K)およびビルド(command/⌘ + B)。 .xcworkspaceファイルを使用してプロジェクトを開いていることを確認してください。

Swift FBSDK here

Swiftポッドを使用すると、これらのフレームワークがプロジェクトに表示されます。

enter image description here

引き続きエラーが表示される場合は、「ビルドフォルダーのクリーンアップ」を使用して command + shift + alt + K

1
Annjawn

ポッドをインストールするときは、最初にアプリケーションを構築する必要があります。その後、インポートはエラーの表示を停止します。

0
antonin bouchal

最初にプロジェクトディレクトリをクリーンアップします。そして、ビルド設定のフレームワーク検索パスに$(継承)を追加します。

0
Bhavesh Patel

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を再作成し、すべてのファイルを再度インポートする必要があります。

エラーを再現するサンプルプロジェクトがなければ、それが最善のアドバイスです。

幸運を! :)

0
b_ray

上記のヘッダー検索パスのソリューションが機能するはずです。あなたがそこに行くのが面倒な場合。ポッドファイルのコンテンツをコピーし、すべてのポッドを削除し、ポッドをインストールしてから、ポッドファイルを元に戻し、ポッドを再度インストールします。..動作するはずです;-)

0
iSaalis

Command + Shift + Kを使用してプロジェクトをクリーンアップしてから、プロジェクトを閉じ、podsフォルダーとpod.lockファイルと.xcworkspaceファイルを削除します。次にpod installを実行して、問題が解決するかどうかを確認します。

0
Harry Singh