Saya memutakhirkan Xcode ke 8.1 GM dan sekarang saya mendapatkan kesalahan di bawah ini untuk SwiftyJSON. Kerangka yang diimpor lainnya tampaknya berfungsi. Apakah ada cara untuk memaksa ini bekerja di Swift 3 sampai SwiftyJSON meningkatkan kerangka kerjanya? Saya menggunakan Carthage untuk mengimpor / memperbarui kerangka kerja. Saya juga mencoba mengubah Use Legacy Swift language version
Hidup dan Mati tetapi tidak berhasil.
Modul yang dikompilasi dengan Swift 3.0 tidak dapat diimpor di Swift 3.0.1: Modules / SwiftyJSON.swiftmodule / arm64.swiftmodule
sumber
Cartfile
sehingga saya bisa mengetikcarthage update
tanpa sesama pengembang perlu tahu / khawatir tentang tanda tambahan?Hapus cache aplikasi dari DerivedData, dan buat kembali. kesalahan mungkin diperbaiki.
Jalur DerivedData seperti ini:
~/Library/Developer/Xcode/DerivedData/
sumber
Pastikan Anda telah menempatkan paket XCode 8.1 GM baru di folder Aplikasi Anda. Kami mengalami masalah ini ketika salah satu dari kami menjalankan Carthage untuk memperbarui dependensi kami, tetapi tidak mengganti aplikasi XCode 8.0 yang lama di folder aplikasi (8.1 GM menjalankan Desktop).
Anda ingin memastikan bahwa ketika Anda menjalankan berikut ini di terminal:
xcrun swift -version
itu kembaliApple Swift version 3.0.1
.sumber
carthage update --platform iOS --no-use-binaries
dan masih tidak berhasil. Saya telah membersihkan proyek saya dan memulai ulang Xcode dan saya masih mendapatkan kesalahan. Ada lagi yang bisa saya coba?Apple Swift version 3.0.1 (swiftlang-800.0.58.6 clang-800.0.42.1) Target: x86_64-apple-macosx10.9
Memperbarui default
Xcode
ke yang baru di terminal berhasil untuk saya.Langkah 1: Gunakan perintah berikut untuk memperbarui versi Xcode ke versi terbaru di Terminal. Ref
sudo xcode-select -switch <path/to/>Xcode.app
Langkah 2: Sekarang coba perintah pembaruan carthage
sumber
Hanya untuk memberikan pembaruan terkini:
Carthage telah merilis versi 0.20 pada 27 Feb 2017.
Carthage sekarang hanya menggunakan biner pra-bangun jika biner pra-bangun yang tersedia kompatibel .
Karena itu, Anda tidak lagi harus menggunakan:
--no-use-binaries
untuk menghindari kerangka kerja pra-bangun yang tidak kompatibel.Jadi pastikan Anda memiliki versi carthage yang lebih besar dari
0.20
dan cukup lakukan:sumber
--no-use-binaries
? Carthage harus dapat mendeteksi apakah biner tersebut kompatibel dengan versi kompilator Anda. Jika tidak kompatibel, itu seharusnya secara otomatis menjatuhkan biner yang diunduh dan membangun kerangka kerja secara lokal.Seperti yang dikatakan @zirinisp:
carthage update --platform iOS --no-use-binaries
xcrun swift -version
untuk melihat versi SwiftXcode->preferences->locations
untuk menghapus data turunan dan data arsip, yang paling penting adalah mengubah alat baris perintah menjadi "Xcode 8.1
"xcrun swift -version
Anda dapat melihat versi swift 3.0.1Use Legacy Swift Language Version = NO
Saya harap ini akan membantu Anda
sumber
Pindahkan versi beta / GM jika folder Xcode ke / Applications dan beri nama Xcode-beta
Periksa keluaran dari:
xcrun swift --version
dengan menjalankan perintah ini di terminal, keluarannya harus sesuai dengan versi swift yang Anda inginkan untuk dikompilasi aplikasi, karena Carthage menggunakan keluaran dari perintah ini, untuk menentukan versi Swift lokal.
Perbarui versi Xcode ke yang terbaru di Terminal dengan menjalankan perintah berikut:
sudo xcode-select -s /Applications/Xcode-beta.app/
Bangun pustaka untuk iOS dan cegah Carthage mengunduh biner prakompilasi yang ada (namun tidak kompatibel), dengan menjalankan perintah berikut:
carthage update --platform iOS --no-use-binaries
Bersihkan & Bangun
sumber
Saya memiliki masalah yang persis sama dengan perpustakaan
XCTest_Gherkin
, yang berhasil untuk saya adalah:Product
->Scheme
->XCTest-Gherkin
Product
->Build
Semoga membantu. Saya menggunakan Cocoapods.
sumber
Di Xcode Build Settings, pastikan Framework Search Paths Anda berisi folder Carthage Build yang sesuai:
$(inherited) $(PROJECT_DIR)/Carthage/Build/iOS
sumber