ios - Swift 5.1でコンパイルされたモジュールは、Swift 5.1.2コンパイラーでインポートできません
xcode swift5.1 (2)
わかりました、WWDCビデオを見ると判明します、彼らはそれを説明します: https://developer.apple.com/videos/play/wwdc2019/416/ : https://developer.apple.com/videos/play/wwdc2019/416/
フレームワークのビルド設定で[
配布用ライブラリ
の
ビルド
]オプションを[
はい
]に設定する必要があります。そうしないと、swiftコンパイラーは、古いライブラリーをロードできる将来のコンパイラーの鍵となる
.swiftinterface
な
.swiftinterface
ファイルを生成しません。
これは、project.pbxprojファイルで次のようになります。
BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
このフラグを設定すると、Xcode 11.0(swift 5.1)を使用してコンパイルしたフレームワークをXcode 11.2(swift 5.1.2)でコンパイルでき、すべてが正常に動作しているように見えます。
この質問/回答が、すべてのWWDCビデオを視聴していないすべての人にとって役立つ参考になることを願っています
Xcode 11.0を使用して従来の
RxSwift.framework
スタイルパッケージにコンパイルしたフレームワーク(この場合はRxSwift)があります。
これはXcode 11.0に正常にインポートされ、11.1でも問題はありませんでした
今日、AppleのXcode 11.2のリリース時にアップグレードしましたが、次のエラーが表示されます。
Swift 5.1でコンパイルされたモジュールは、Swift 5.1.2コンパイラーでインポートできません
私はコンパイラの不一致を迅速に処理するのに慣れており、Xcode 11.2を使用してRxSwiftを再コンパイルして続行できることを知っていますが、Swift 5.1の見出し機能は モジュールの安定性 でした。
モジュールの安定性があるため、フレームワークは新しいXcodeのリリースごとに再コンパイルを続ける必要はないという印象を受けましたが、明らかにそうではありません。
ここで何が起こっているのかを説明できる人がいれば、とても感謝しています。 Xcode 11.2にはバグがありますか? または、Xcode 11.0で最初にコンパイルしたときにモジュールの安定性が必要だと何らかの形で伝える必要がありましたか?
サードパーティライブラリのインポートと同じエラーが発生しました。 Xcodeのツールチェーンを使用して修正し、 https://swift.org/download/#releases //swift.org/download/#releasesから2019年9月19日リリースを取得しました。 その後、ライブラリを再インポートする必要があり、機能しました。