[解決済み] Swift 5.1 でコンパイルしたモジュールを Swift 5.1.2 のコンパイラでインポートできない
質問
フレームワーク(この例ではRxSwift)をXcode 11.0を使ってコンパイルし、伝統的な
RxSwift.framework
スタイルパッケージ
Xcode 11.0でも11.1でも問題なくインポートできました。
今日、AppleのXcode 11.2のリリースに伴い、アップグレードしたところ、エラーが表示されました。
Swift 5.1 でコンパイルされたモジュールは Swift 5.1.2 コンパイラでインポートできません。
私はSwiftコンパイラのミスマッチには慣れているので、Xcode 11.2を使用してRxSwiftを再コンパイルして続行すればいいことは承知していますが、Swift 5.1の主要な機能は次のとおりです。 モジュールの安定性 .
モジュールの安定性が確保されたので、フレームワークは新しいXcodeのリリースごとに再コンパイルし続ける必要はないだろうという印象を持っていましたが、明らかにそうではありませんね。
何が起こっているのか、説明できる方がいらっしゃいましたら、ぜひお願いします。それとも、Xcode 11.0でコンパイルしたときに、モジュールの安定性を求めることを伝える必要があったのでしょうか?
解決方法を教えてください。
WWDCのビデオを見ると、そのことがよくわかります。 https://developer.apple.com/videos/play/wwdc2019/416/
を設定する必要があります。
ビルド設定 > ビルドオプション > 配布用ライブラリのビルド
オプションを
はい
をフレームワークのビルド設定に追加してください。そうしないと、swift コンパイラは必要な
.swiftinterface
これは、将来のコンパイラが古いライブラリをロードできるようにするための鍵になります。
これはproject.pbxprojファイルの中で次のように終わります。
BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
このフラグを設定すると、Xcode 11.0 (swift 5.1) でコンパイルしたフレームワークを Xcode 11.2 (swift 5.1.2) で使用することができ、すべてが正しく動作しているように見えます。
この質問と回答が、WWDCのビデオを全部見ていない皆さんの参考になれば幸いです。
それでもエラーが発生する場合は、次のページに進んでください。 製品情報 > クリーンビルドフォルダ と ビルド をもう一度。
関連
-
IOSラーニングノート「このクラスはxxxのキーバリューコーディングに対応していません」問題解決
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] 奇妙な不要なXcodeログを隠す
-
[解決済み] Objective-Cで文字列が空かどうかをテストするにはどうすればよいですか?
-
[解決済み] UIViewに角丸をつける
-
[解決済み] iPhone UITextField - プレースホルダーの文字色を変更する
-
[解決済み] 「GCC使用時に「Xcode/iOSのライセンスに同意するには管理者権限が必要です。rootでsudoを使用して再実行してください。
-
[解決済み] SwiftでURLから画像を読み込む/ダウンロードする
-
[解決済み] UILabelで複数行のテキストを表示する
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[iOS]コンパイルエラー:ld: アーキテクチャ x86_64 のシンボルが見つかりません。
-
EXC_BAD_ACCESS (code=2, address=0x0)
-
[解決済み] 制約条件の変更をアニメーションで表現するには?
-
[解決済み] アプリケーション・バイナリ・インターフェース(ABI)とは何ですか?
-
[解決済み] UIViewController のビューが表示されているかどうかを確認する方法
-
[解決済み] iPadマルチタスクのサポートには、これらの方向が必要です。
-
[解決済み] 16進カラーバリューの使用方法
-
[解決済み] Swiftのプロトコルでオプションのメソッドを定義するには?
-
[解決済み] ファイルはユニバーサル(3スライス)ですが、iOSの静的ライブラリのための(n)ARMv7-sスライスエラーが含まれていない、どうにかして回避するには?
-
[解決済み] ぼかしの入ったオーバーレイビューの作成