Po migracji mojego frameworka do Xcode 10 beta (10L176w) zacząłem otrzymywać ostrzeżenia, takie jak:
Mapowanie architektury arm64 do x86_64. Upewnij się, że ustawienia kompilacji architektury i prawidłowych architektur tego celu są poprawnie skonfigurowane dla platformy iOS Simulator.
... i:
Mapowanie architektury armv7 do i386. Upewnij się, że ustawienia kompilacji architektury i prawidłowych architektur tego celu są poprawnie skonfigurowane dla platformy iOS Simulator.
Pomimo tych ostrzeżeń, kompilacja i testy jednostkowe przebiegają pomyślnie. Używam Swift 4.2.
Ale o czym są te ostrzeżenia?
ARCHS = $(ARCHS_STANDARD_64_BIT)
VALID_ARCHS = $(inherited) x86_64 i386
Odpowiedzi:
Przejdź do ustawień kompilacji i wykonaj poniższe czynności
źródło
There are no valid architectures to compile for because the VALID_ARCHS build setting is an empty list
Udało mi się wyciszyć te ostrzeżenia, zmieniając moje ustawienie Prawidłowe Architektury , na
$(ARCHS_STANDARD)
które pasuje również moje ustawienie Architektury .Co dziwne, wyświetlało się to jako
armv7 arm64
(w porównaniu z ustawieniem domyślnymarmv7 armv7s arm64
), ale ręczne ustawienie tej wartości nadal powodowało ostrzeżenia. Nie jestem pewien, jakie to ma znaczenie, ale nie zauważyłem jeszcze żadnych problemów w moich testach.źródło
Prawdopodobnie masz nadpisane ustawienie kompilacji VALID_ARCHS („Prawidłowe architektury”), albo dla celu, albo dla jego projektu. Jest to ustawienie kompilacji, które powinno automatycznie uzyskać swoją wartość na podstawie miejsca docelowego biegu, dla którego budujesz. Kiedy dowiesz się, skąd pochodzi to zastąpienie (ustawienie kompilacji będzie wyświetlane pogrubioną czcionką po zastąpieniu), wybierz je i naciśnij klawisz usuwania, aby przywrócić wartość domyślną.
źródło
VALID_ARCHS
. Zawieraarm64
zarówno do debugowania, jak i wydania.VALID_ARCHS
aby ustawić je na domyślne, a następnie wyczyścić i zamknąć / ponownie otworzyć Xcode, aby działał w pełni dla mnieDla TARGET, który zgłasza ostrzeżenia, Zmień ustawienie „Prawidłowa architektura” na:
$(VALID_ARCHS) x86_64
źródło
Podobnie jak w przypadku innych odpowiedzi, udało mi się usunąć ostrzeżenie, zmieniając
$(VALID_ARCHS)
(Prawidłowe architektury) na$(ARCHS_STANDARD)
. Stamtąd wyczyściłem wszystkie pochodne dane i ponownie uruchomiłem Xcode 10.0. To spowodowało, że ostrzeżenie zniknęło całkowicie. Usunięcie wszystkiego z Valid Architectures spowodowało właśnie pojawienie się innego ostrzeżenia („Nie znaleziono prawidłowych architektur”).źródło
Rozwiązanie jest prostsze: w Valid Architectures wystarczy zamienić arm64 na x86_64 .
Miałem podobny problem i następujące trzy ostrzeżenia w moim projekcie:
Pierwotnie były to moje ważne Archtectures
Wymiana:
(jak wspomniano w Ostrzeżeniach) było moim rozwiązaniem. Wynik w ustawieniu Prawidłowa architektura był następujący:
Po wymianie moje trzy powyższe ostrzeżenia zniknęły.
Więcej szczegółowych informacji na temat architektur można znaleźć tutaj: https://docs.elementscompiler.com/Platforms/Cocoa/CpuArchitectures/
Myślę, że sformułowanie tego ostrzeżenia w Xcode jest nieco zagmatwane.
źródło
Jeśli masz problem z Flutter:
Usuń plik Podfile, Podfile.lock, folder Pods, Runner.xcworkspace, Flutter.framework.
Biegnij
flutter clean
.flutter build ios
.źródło
Widziałem to ostrzeżenie, kiedy próbowałem skompilować kod dla iOS i Mac OS. Udało mi się to obejść, robiąc najpierw to, co zasugerował Hassan Taleb w swojej odpowiedzi: wyczyść architektury tak, aby były tam tylko poprawne architektury iPhone'a. I wreszcie, aby zachować możliwość budowania dla systemu Mac OS, przesuń kursor myszy nad prawidłowe architektury, aby pojawił się przycisk plus. Kliknij to, a następnie w razie potrzeby możesz dodać oddzielne ustawienia dla różnych platform, w tym różnych architektur procesora. W przypadku zestawu SDK systemu macOS mogę ustawić poprawne architektury na x86_64, jeśli chcę.
źródło
Najłatwiejszym sposobem rozwiązania tego problemu jest otwarcie projektu w edytorze tekstu, a następnie znalezienie i usunięcie wszystkich
VALID_ARCHS
wierszy.źródło
Ja też mam ten sam problem. Aby rozwiązać problem, właśnie zmieniłem system kompilacji ze standardowego na starszy i to rozwiązało problem.
źródło
Widziałem to samo ostrzeżenie, kiedy budowałem moje ramy. Po pewnym czasie zauważyłem, że te prawidłowe wartości architektury różnią się w zależności od typu urządzeń, niezależnie od wartości w ustawieniach kompilacji.
Real devices-> arm64 Simulator devices ->x86-64
źródło
jeśli Twoje [Ustawienia kompilacji] to armv7 armv7s arm64, usuń armv7s. ostrzeżenie zostanie anulowane.
źródło