これが私の手順です。プロジェクトディレクトリに新しいPodfile
を作成し、次を追加しました
platform :ios, '9.0'
use_frameworks!
target 'CPod' do
pod 'AFNetworking', '~> 2.5'
pod 'ORStackView', '~> 2.0'
pod 'SwiftyJSON', '~> 2.1'
end
pod install
を起動すると、すべてがうまくいき、xcworkspace
を開きます。次にViewController.Swift
に移動し、ポッドをインポートしようとするとNo such module 'SwiftyJSON'
になり、import SwiftyJSON
になります。何か案は?
編集:SwiftyJSONはObj-CではなくSwiftベースのモジュールです
ポッドファイルをインストールした後、プロジェクトの.xcworkspaceファイル(.xcodeprojではない)を再度開く必要があります。
ハッピーコーディング:)
次を使用してポッドを再インストールすることもできます。
pod deintegrate
その後
pod install
これは私のためにこの問題を修正しました
Command + Option + Shift + Kを押してからRunを押すと、魔法が表示されます。
または、メニュー-> ProductからキーボードのOptionキーを押すと、Clean Build Folderが表示されます。
Xcodeがこれらのことをどのように行うことができるのかおもしろそうに見えますが、Podを使用してSwiftライブラリを使用し、苦労してClean Build Folderになったときに同じことが起こりました。
これがまだ他の人に役立つかどうかはわかりません。しかし、私の場合、それは.podspecファイルの依存関係を参照しないという愚かな間違いでした。
複数の内部ライブラリを備えたアプリケーションがあり、それらのライブラリも相互に依存関係があります-Podfilesで説明しましたが、podspecsでは説明しませんでした。
したがって、Podfileには次のものがあります:
アプリケーション/ Podfile
# Development Pods
pod 'ConsumingLibrary ', :path => '../ios-consuming-lib'
pod 'DependentLibrary1', :path => '../ios-library-one'
pod 'CommonCoreLibrary', :path => '../ios-common-core-lib'
ConsumingLibrary/Podfile
# Development Pods
pod 'DependentLibrary1', :path => '../ios-library-one'
pod 'CommonCoreLibrary', :path => '../ios-common-core-lib'
.podspecでも呼び出す必要があります。
ConsumingLibrary/ConsumingLibrary.podspec
# TODO
# Add here any resources to be exported.
s.dependency 'DependentLibrary1', '~> 0.1.0-RC'
DependentLibrary1/DependentLibrary1.podspec
# TODO
# Add here any resources to be exported.
s.dependency 'CommonCoreLibrary', '~> 0.1.0-RC'
ConsumingLibraryをビルドしてテストを実行できる理由を理解しようとして約2時間を無駄にしたと思いますが、アプリをビルドするとすぐに3つのライブラリすべてを消費しました。
そのようなモジュール「DependentLibrary1」はありません
No such moduleの問題を解決するpod installコマンドの後にpod updateを使用してみてください。試したところ、うまく機能しました。
ありがとう、ラトネシュワル
@jakub-truhlářが書いたように、根本的な問題はSwiftとObjective-Cライブラリを混在させるいくつかの並行性の問題のためにmodule.modulemapファイルがないことですが、それらのファイルを手動で作成するよりも、複数の派生データをクリーンアップして、プロジェクトをビルドします。プロジェクトが正常にビルドされたら、module.modulemapファイルをリポジトリにコミットして、現在のブランチを変更するなどしてこれらのファイルが失われないようにします。
ターミナルの特定の依存関係を更新しました
プロジェクトフォルダーに移動し、以下のコマンドを実行します
ポッドのポッド名を更新
私は私がする必要があります
ポッド更新ReachabilitySwift
Swiftプロジェクト内にobj-cポッドがある場合に発生することがあります(use_frameworks!
で.podfile
を使用している場合でも)。
podがインストールされていて、まだ取得している場合そのようなモジュールはありません、 これを試して:
。frameworkサフィックスが付いたパッケージファイルが必要です。フォルダーModulesを作成します。このフォルダーにmodule.modulemapという名前のファイルを作成します。コードは次のとおりです。
framework module MODULE_NAME_HERE {
umbrella header "MODULE_NAME_HERE.h"
export *
module * { export * }
link framework LINKED_FRAMEWORKS_AND_LIBRARIES_THE_POD_NEEDS_HERE
link framework "AdSupport"
link "c++"
link "z"
}
再構築そして大丈夫です。
私が開発したSwiftフレームワークで同じ問題に直面しました。フレームワークにはgitプロジェクトの依存関係があり、フレームワーク自体がメインプロジェクトにポッドとして追加されました。したがって、理想的には、podspecファイルとPodfileでも依存関係が指定されています。
メインプロジェクトからアクセスするときに問題に直面することはありませんでしたが、スタンドアロンでフレームワークを開くと、「No such module」エラーがスローされました。
根本的な原因は、最初にメインプロジェクトで、次にフレームワークプロジェクトでpodinstallを実行したため、フレームワーク自体ではなくメインプロジェクトを指すパスで基本構成が設定されていることです。
例:プロジェクトファイルでは、0091AB0C861D71C94ADD7240のようになりました/ * Pods-myframework.release.xcconfig */= {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-myframework.release.xcconfig"; path = "../../Apps/MyMainProject/Pods/Target Support Files/Pods-myframework/Pods-myframework.release.xcconfig"; sourceTree = ""; };
下記の修正を行った後、4444F5B1B35F066E57F96782/* Pods-myframework.release.xcconfig */= {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-myframework.release.xcconfig"; path = "Pods/Target Support Files/Pods-myframework/Pods-myframework.release.xcconfig"; sourceTree = ""; };
エラーを修正するには、
これらの提案をすべて試しましたが、何もうまくいきませんでした。代わりに、私のために働いていたのはポッドを分解することでした。その後、Xcode階層からポッドフォルダーを削除し、ポッドのインストールを行います。突然、うまくいきました。とにかくこれらの提案のほとんどがヒットまたはミスしているので、私に理由を聞かないでください。しかし、それが他の誰かにもうまくいくなら私は幸せです:)
CocoaPodsを古いプロジェクトに追加する際にこの問題がありました。以前のプロジェクトには既に手動でライブラリが含まれていました。ターゲットの設定で以前に設定された値のために、XcodeがCocoaPodsによって生成されたFramework Search Path
に解決されなかったために発生しました。
私を助けた解決策:
古いパスをコピーします
deleteを押して、ターゲットの列のFramework Search Path
設定を完全にクリアします-CocoaPodsによって生成されたパスがそこに表示されます
生成されたものの下に古い検索パスを追加します(まだ手動で追加したフレームワークを使用する場合にのみ必要です)
プロジェクトのクリーンアップ、派生データのワイプ、ビルド。
結果は次のようになります(1行目はXcodeによって追加され、2行目はCocoaPodsによって追加され、3行目は手動です):
ポッドの.podspec
で定義されている正しいフレームワーク名をインポートしてください。
XCodeを開いてから、ファイル->最近開いてプロジェクトのワークスペースを選択すると、この問題が発生しました。
同じワークスペース/プロジェクトのファイルシステムに2つの.xcworkspaceファイルがあることがわかりました。
正しい.xcworkspaceファイルをダブルクリックしてXCodeを開くとうまくいきませんでした。正しいものは動作するものです。
後で間違ったものを削除しました。
フレームワークmodule.modulemapファイルにリンク「c ++」を追加するとうまくいきました
複数のターゲットの場合。例えばTarget1、Target2
use_frameworks!
target 'Target1' do
pod 'Fabric'
pod 'Crashlytics'
target 'Target2' do
end
end
次に、ポッドインストールを実行します。