Jednak ponownie skompilowałem framework przy użyciu tego samego Xcode i nadal daje mi ten błąd.
- Podstawowy pakiet SDK iOS 11.1 dla obu
- Swift Language Version Swift 4.0 dla obu
- Nie używam Pods / Carthage
Mam nadzieję, że ktoś może wiedzieć
Jednak ponownie skompilowałem framework przy użyciu tego samego Xcode i nadal daje mi ten błąd.
Mam nadzieję, że ktoś może wiedzieć
Odpowiedzi:
Aktualizacja:
W przypadku wersji Xcode:
Ten błąd (i podobne błędy dotyczące Swift 4.1, 4.2 itd.) Wystąpi podczas otwierania projektu z Xcode 9.1, 9.2, 9.3, 9.4, 10 itd., Który korzysta ze struktur zbudowanych przy użyciu wcześniejszych narzędzi Xcode.
Aby rozwiązać ten problem, zaktualizuj i carthage update --platform iOSodbuduj struktury za pomocą Carthage ( ), Cocoapods ( pod updatelub pod install) lub ręcznie, za pomocą nowych zaktualizowanych narzędzi Xcode. Narzędzia powinny być aktualizowane automatycznie podczas aktualizacji Xcode, ale jeśli nie, możesz wykonać kroki opisane poniżej w oryginalnej odpowiedzi.
Może być również konieczne wyczyszczenie projektu cmd + shift + ki prawdopodobnie folderu kompilacji, cmd + option + shift + kaby Xcode nie używał buforowanych kompilacji platformy.
W niektórych przypadkach może być również konieczne usunięcie folderu danych pochodnych (można go łatwo znaleźć, przechodząc do Preferencje Xcode -> Lokalizacje -> Folder danych pochodnych ( dzięki Stunner )
W przypadku wersji beta Xcode:
Zobacz oryginalną odpowiedź poniżej, a następnie wykonaj powyższe kroki.
Oryginalna odpowiedź:
Prawdopodobnie nadal masz narzędzia xcodebuild ustawione na Xcode 9.0, które kompilują się ze Swift 4.0 i są niezgodne z Xcode 9.1 beta Swift 4.0.1.
Sprawdź w terminalu za pomocą polecenia:
xcodebuild -version
Lub po prostu przejdź do preferencji Xcode -> Lokalizacje i sprawdź / zmień narzędzia wiersza poleceń na Xcode 9.1. W takim razie powinieneś być ustawiony.
Swift Language Versiondo Swift 4nich. Wtedy zadziałało.
Mój problem był spowodowany tym, że zewnętrzna struktura nie była kompilowana dla Swift 4.0.2. Dodałem ten plik przez Carthage , więc uruchomiłem:
carthage update --platform iOS
A potem wyczyszczenie cmd + shift + kfolderu projektu i kompilacji cmd + option + shift + koraz usunięcie folderu danych pochodnych (po prostu przeniesienie go do kosza również działa) działało dla mnie.
W moim przypadku pobrałem wersję beta xCode 11, aby przetestować SwiftUI. Kiedy uruchamiam projekt, pojawia się błąd „Moduł skompilowany w Swift 5.1 nie może być zaimportowany przez kompilator Swift 5.0.1: ...” .
Aby rozwiązać ten problem. Zmieniłem narzędzie wiersza poleceń xCode na nowe narzędzie wiersza komentarzy xCode 11. Następnie możesz utworzyć nowy projekt xcode za pomocą SwiftUI.
Xcode -> Preferencje -> Lokalizacja -> Narzędzie wiersza poleceń XCode
mam nadzieję, że pomoże to komuś, kto chce przetestować nowy freamework :)
Zainstaluj Xcode Toolchain określonej wersji Xcode, która pracowała dla Ciebie stąd .
Łańcuch narzędzi Xcode zawiera kopię kompilatora, lldb i innych powiązanych narzędzi potrzebnych do zapewnienia spójnego środowiska programistycznego do pracy w określonej wersji Swift.
Otwórz preferencje Xcode, przejdź do Components> Toolchains i wybierz zainstalowany Swift toolchain.
Umożliwi to skompilowanie i uruchomienie aplikacji na razie.
Trafiłem na ten problem z Xcode 10 beta, który dodaje Swift 4.2. Mój problem nie był związany z Kartaginą ani żadnymi zewnętrznymi zależnościami.
Przejdź do YourTarget > Build Settings > Swift Language Versiondla wszystkich swoich celów Xcode.
Moje były ustawione na Swift 4.
Po dodaniu fazy tworzenia kopiowania plików zacząłem otrzymywać błąd
: 0: błąd: moduł skompilowany ze Swift 4.1.2 nie może zostać zaimportowany przez kompilator Swift 4.2: /Users/user/Library/Developer/Xcode/DerivedData/MyApp-faskfrihumfcdibjxisjvbfshppp/Build/Intermediates.noindex/MyApp.build/Debug/ MyAppExtension.build/Objects-normal/x86_64/MyClass~partial.swiftmodule
Polecenie MergeSwiftModule nie powiodło się z niezerowym kodem zakończenia
I następnie ustawić każdy cel na Swift Language Versioncelu Swift 4.2, który wyeliminował ten błąd.
Nie jestem jednak pewien, dlaczego ten błąd wystąpił w pierwszej kolejności, ponieważ ustawienie wszystkich celów Swift 4powinno być równie ważne.
Build Settings
W moim przypadku (Xcode 9.2):
Poszedłem do Xcode Preferences > Locations > Derived Data
Następnie usunąłem dane i wykonałem czystą kompilację i wszystko było w porządku.
W moim przypadku użyłem CocoaPods z wtyczką cocoapods-binarydo wstępnego kompilowania bibliotek do plików binarnych. Po uaktualnieniu Xcode z 10 do 11 Xcode wyświetla ten błąd:
Module compiled with Swift 5.0.1 cannot be imported by the Swift 5.1 compiler
Naprawiam to, usuwając /Podskatalog i uruchamiając pod install.
W moim przypadku ponownie skompilowałem framework z dowolną wersją, na którą narzekał.
Aby ponownie skompilować, uruchom pod updatelub zaktualizuj Kartaginę (której kiedykolwiek używasz) i skompiluj projekt.
Następnie wyszukaj strukturę w wyszukiwarce. Skopiuj i wklej theFramework.frameworkdo swojego projektu i upewnij się, że „Kopiuj elementy w razie potrzeby”. Zbuduj projekt ponownie i powinien działać.