Saya memiliki kerangka kerja (dalam hal ini RxSwift) yang telah saya kompilasi menggunakan Xcode 11.0 ke dalam RxSwift.framework
paket gaya tradisional
Denda ini diimpor ke Xcode 11.0 dan juga 11.1 tidak pernah memiliki masalah dengannya
Hari ini, setelah Apple merilis Xcode 11.2, saya memutakhirkan, dan saya mengalami kesalahan:
Modul yang dikompilasi dengan Swift 5.1 tidak dapat diimpor oleh kompiler Swift 5.1.2
Saya sudah terbiasa dengan swift compiler mismatch, dan saya sadar saya bisa mengkompilasi ulang RxSwift menggunakan Xcode 11.2 dan melanjutkan, tetapi fitur utama dari Swift 5.1 adalah stabilitas modul .
Saya mendapat kesan bahwa sekarang kita memiliki stabilitas modul, kerangka kerja tidak perlu terus dikompilasi ulang dengan setiap rilis Xcode baru, namun ini jelas bukan masalahnya.
Jika ada yang bisa menjelaskan apa yang terjadi di sini saya akan sangat menghargainya. Apakah Xcode 11.2 menunjukkan bug? atau apakah saya perlu mengatakannya bahwa saya ingin stabilitas modul ketika saya awalnya dikompilasi dengan Xcode 11.0?
Jawaban:
OK, Ternyata jika Anda menonton video WWDC, mereka menjelaskannya: https://developer.apple.com/videos/play/wwdc2019/416/
Anda perlu mengatur opsi Bangun Perpustakaan untuk Distribusi ke Ya di pengaturan kerangka kerja Anda, jika tidak kompiler swift tidak menghasilkan
.swiftinterface
file neccessary yang merupakan kunci untuk kompiler masa depan yang dapat memuat perpustakaan lama Anda.Ini berakhir di file project.pbxproj Anda sebagai:
Setelah mengatur flag ini, kerangka kerja saya dikompilasi menggunakan Xcode 11.0 (swift 5.1) dapat digunakan oleh Xcode 11.2 (swift 5.1.2) dan semuanya tampak berfungsi dengan benar.
Semoga pertanyaan / jawaban ini akan berfungsi sebagai referensi yang bermanfaat bagi semua orang yang belum menonton semua video WWDC
Jika kesalahan masih berlanjut pergi ke Produk > Bersihkan Folder Build dan Build lagi.
sumber
carthage
cukup pintar untuk mengambil ini dari file .pbxproj saya , atau seperti yang dikatakan @MihaiFratu di atas, apakah semua pengembang kerangka kerja pihak ketiga perlu mengatur ini sendiri dalam proyek kerangka kerja mereka?Saya memiliki kesalahan yang sama dengan mengimpor perpustakaan pihak ke-3. Saya memperbaikinya menggunakan toolchains di Xcode dan mengambil rilis 19 September 2019 dari sini https://swift.org/download/#releases . Setelah itu saya harus mengimpor kembali perpustakaan saya dan itu berhasil.
sumber
Anda dapat menggunakan Carthage untuk menambahkan kerangka kerja RxSwift.
Pada dasarnya, Carthage memberi Anda paket gaya RxSwift.framework tradisional yang serupa .
Lalu coba
carthage update --no-use-binaries
.sumber
Ini membuat kesalahan kompiler saya hilang.
carthage bootstrap --platform ios
brew bundle
pod repo update
sumber
brew bundle
? apa fungsinya?