Próbuję uruchomić mój bieżący projekt w nowej wersji beta Xcode 9, ale kiedy to zrobię, to mówi: Module compiled with Swift 3.1 cannot be imported in Swift 4.0
. Jak mogę rozwiązać ten problem? Nie używam cocoapodów.Jak mogę używać dziedziny za pomocą Swift 4?
Odpowiedz
Aktualizacja: Od v2.10.1, wydany 14.09.2017, prekompilowanych pakietów Realm obejmują ramy zbudowane z Xcode 9 do Swift 3.2 i 4.0. Nie trzeba już ich samemu budować.
Poniższe informacje pozostają aktualne dla każdego, kto chce korzystać z Realm w wersjach wydań Xcode w przyszłości.
Jeśli obecnie integracji skompilowane pliki binarne w królestwie, musisz przełączyć się na budowaniu Realm ze źródeł w celu wspierania Swift 3.2 i 4.0, jak Realm nie publikuje skompilowane pliki binarne dla wstępnych wersji Xcode. Możesz budować Realm ze źródła na jeden z trzech sposobów:
Używanie CocoaPods.
CocoaPods zawsze buduje zależności od źródła.
Korzystanie z Kartaginy.
Domyślnie Carthage będzie próbował pobrać wstępnie skompilowane pliki binarne, ale wróci do budowania ze źródła, jeśli wstępnie skompilowane pliki binarne są dla innej wersji Swift niż wersja Xcode w użyciu.
Buduj królestwo ręcznie ze źródła, a następnie integruj zbudowane struktury tak, jakbyś tworzył wstępnie utworzone pliki binarne.
Można to zrobić poprzez sprawdzanie tag zwalniającą Git:
git clone --recursive https://github.com/realm/realm-cocoa.git cd realm-cocoa git checkout v2.10.0
Następnie należy uruchomić którykolwiek z następujących poleceń odpowiada platformie Ci zależy budowanie królestwa Swift ramy dla tej platformy:
REALM_SWIFT_VERSION=4.0 sh build.sh ios-swift REALM_SWIFT_VERSION=4.0 sh build.sh osx-swift REALM_SWIFT_VERSION=4.0 sh build.sh watchos-swift REALM_SWIFT_VERSION=4.0 sh build.sh tvos-swift
Zbudowane frameworki zostaną umieszczone w katalogu
build
w źródle Realm, gdzie można je następnie zintegrować tak, jak robisz wstępnie utworzone pliki binarne dostarczane przez Realm.Te zbudowane struktury powinny również działać z aplikacjami wykorzystującymi Swift 3.2 z powodu tego samego kompilatora, co Swift 4.0.
Jako nawiązanie do bdash na punkt 3 o tym, jak zbudować Realm ręcznie ze źródła, i odpowiedzieć addzo Zapytanie o błędzie xcodebuild (to wpadłem, jak również): Należy upewnić się, że symulator iPhone 6 jest ustawiony do Xcode 9, aby uniknąć tego błędu. Przypuszczam, że skrypty budujące Realm muszą na nie celować. To jednak rozwiązało to dla mnie.
Po prostu początkujący tutaj, ale jeśli zaimportujesz RealmSwift w pliku appdelegate, otrzymasz ten błąd i jeśli usuniesz import RealmSwift z tego pliku appdelegate, błąd zniknie. Możesz importować RealmSwift w innych odpowiednich plikach. Nie użyłem metody strąków do włączenia RealmSwift wykorzystał technikę użytą w Lynda.com z dragami i zrzutami frameworku. Bardzo łatwe. –
Czy mógłbyś wyjaśnić trzecią opcję jeszcze bardziej? Ale dziękuję bardzo za odpowiedź: –
Czy jest coś szczególnego, co chciałbym, abym wyjaśnił? – bdash
gdzie mam uruchamiać polecenia? –