Próbuję uzyskać duży (i pracujący na Xcode 11!) Projekt budowania w Xcode 12 (beta 5) w celu przygotowania do iOS 14. Codebase był wcześniej Obj-C, ale teraz zawiera zarówno Obj-C, jak i Swift i używa podów, które są Obj-C i / lub Swift również.
Wyciągnąłem nową wersję beta cocoapodów z obsługą Xcode 12 (obecnie 1.10.0.beta 2).
Instalacja poda powiodła się. Kiedy robię kompilację, pojawia się następujący błąd w strukturze pod:
„Tworzenie dla symulatora iOS, ale łączenie w pliku obiektowym zbudowanym dla iOS, dla architektury arm64”
Kiedy idę uruchomić lipo -info na frameworku, ma: armv7s armv7 i386 x86_64 arm64.
Wcześniej projekt miał ustawione Valid Architectures na: armv7, armv7s i arm64.
W Xcode 12 to ustawienie zniknie, zgodnie z dokumentacją Apple. Architektura jest ustawiona na $ (ARCHS_STANDARD). Nie mam nic ustawionego w wykluczonych architekturach.
Czy ktoś ma pojęcie, co może się tutaj dziać? Nie mogłem jeszcze tego odtworzyć za pomocą prostszego projektu.
źródło
Odpowiedzi:
Zasadniczo musisz wykluczyć
arm64
architekturę symulatora zarówno z projektu, jak i projektu Poda,Aby to zrobić, przejdź do ustawień kompilacji projektu i dodaj
Any iOS Simulator SDK
wartość warm64
środkuExcluded Architecture
.LUB
XCConfig
plików niestandardowych , możesz po prostu dodać tę linię, aby wykluczyć architekturę symulatora.Następnie
Musisz zrobić to samo dla projektu Pod, dopóki wszyscy dostawcy kapsułek kakaowych nie zakończą dodawania kolejnych w swoim Podspec .
s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
Możesz ręcznie dodać
Excluded Architechure
w ustawieniach kompilacji projektu Poda , ale zostanie on nadpisany, gdy użyjeszpod install
.Zamiast tego możesz dodać ten fragment do swojego
Podfile
. Za każdym razem, gdy uruchomisz, zapisze niezbędne ustawienia kompilacjipod install
post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" end end
źródło
[sdk=iphonesimulator*]
poEXCLUDED_ARCHS
, XCode nie uda się znaleźć strąków budując dla rzeczywistego urządzenia, ponieważ żadna ze strąków zostanie zbudowany na arm64.post_install do |installer|
w większości plików Podfiles istnieje już sekcja z powodu flippera. Wklej wewnętrzną sekcjęinstaller.pods_project.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" end
zaflipper_post_install(installer)
linią.building for iOS Simulator, but linking in object file built for macOS, for architecture x86_64
. Jak to naprawić?user_target_xcconfig
. Ponieważ wiele specyfikacjiEXCLUDED_ARCHS
podów definiuje różne wartości, ponieważ są w konflikcie, a CocoaPods emituje takie ostrzeżenia[!] Can't merge user_target_xcconfig for pod targets: [... list of pods ...]. Singular build setting EXCLUDED_ARCHS[sdk=<...>] has different values.
. Odnośnik składni podspec mówi, że ten atrybut jest „niezalecany” guide.cocoapods.org/syntax/podspec.html#user_target_xcconfigTL; DR;
Ustaw opcję „Build Active Architecture Only (
ONLY_ACTIVE_ARCH
)” na Yes dla swoich bibliotek / aplikacji, nawet w trybie wydania .Próbując zidentyfikować główną przyczynę problemu, zdałem sobie sprawę z kilku zabawnych faktów na temat Xcode 12.
Xcode 12 jest tak naprawdę odskocznią dla Apple Silicon, który niestety nie jest jeszcze dostępny. Ale dzięki tej platformie otrzymamy macOS oparty na arm64, w którym symulatory będą również działać na architekturze arm64, w przeciwieństwie do obecnej architektury x86_64 opartej na Intelu.
Xcode zwykle opiera się na „Run Destination”, aby zbudować swoje biblioteki / aplikacje. Tak więc, gdy symulator jest wybrany jako „miejsce docelowe uruchamiania”, tworzy aplikację dla dostępnych architektur symulatora, a gdy urządzenie jest wybrane jako „miejsce docelowe uruchamiania”, buduje je dla architektury obsługiwanej przez urządzenie (
arm*
).xcodebuild
, w systemie kompilacji Xcode 12+ uważa sięarm64
za prawidłową architekturę symulatora. Więc kiedy symulator zostanie wybrany jako miejsce docelowe uruchomienia, może potencjalnie spróbować skompilować / połączyć twoje biblioteki / aplikacje również zarm64
bazującymi na nich symulatorami (jeszcze niedostępne). Więc wysyłaclang(++)
jakąś flagę -target, jakarm64-apple-ios13.0-simulator
w formacie <architecture> - <os> - <sdk> - <platform> i clang próbuje zbudować / połączyć się z symulatorem opartym na arm64, który ostatecznie zawodzi na Macu opartym na Intelu.Ale
xcodebuild
próbuje tego tylko w przypadku kompilacji wydania . Czemu? Ponieważ ustawienia kompilacji „Build Active Architecture Only (ONLY_ACTIVE_ARCH
)” są zwykle ustawione na „No” (Nie) tylko dla konfiguracji „Release”. A to oznacza,xcodebuild
że spróbujemy zbudować wszystkie warianty architektoniczne twoich bibliotek / aplikacji dla wybranego miejsca docelowego uruchamiania dla kompilacji wydania. A jeśli chodzi o miejsce docelowe uruchomienia symulatora, będzie zawierało obax86_64
iarm64
teraz włączone, ponieważarm64
w Xcode 12+ jest również obsługiwana architektura dla symulatorów obsługujących Apple Silicon.Mówiąc najprościej, Xcode nie zbuduje Twojej aplikacji za każdym razem, gdy spróbuje użyć wiersza polecenia
xcodebuild
(co domyślnie powoduje wydanie kompilacji, zobacz kartę ogólną ustawień projektu) lub w inny sposób i spróbuje zbudować wszystkie warianty architektoniczne obsługiwane przez miejsce docelowe uruchamiania . Dlatego prostym obejściem tego problemu jest ustawienie „Build Active Architecture Only (ONLY_ACTIVE_ARCH
)” na Yes w swoich bibliotekach / aplikacjach, nawet w trybie wydania.Jeśli biblioteki są uwzględnione jako pody i masz do nich dostęp
.podspec
, możesz po prostu ustawić:Osobiście nie podoba mi się druga linia, ponieważ pody nie powinny zanieczyszczać projektu docelowego i mogą zostać zastąpione w samych ustawieniach docelowych. Tak więc projekt konsumencki powinien w jakiś sposób odpowiadać za nadpisanie ustawienia. Jednak może to być konieczne do pomyślnego kłaczkowania podspecs.
Jeśli jednak nie masz dostępu do
.podspec
, zawsze możesz zaktualizować ustawienia podczas instalacji podów:post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings["ONLY_ACTIVE_ARCH"] = "YES" end end end
Martwiłem się o to, jaki będzie to wpływ, kiedy faktycznie zarchiwizujemy biblioteki / aplikacje. Podczas archiwizacji aplikacje zwykle przyjmują konfigurację „Release”, a ponieważ będzie to tworzenie kompilacji wydania uwzględniającej tylko aktywną architekturę bieżącego miejsca docelowego uruchomienia, przy takim podejściu możemy utracić wycinki dla armv7, armv7s itp. Z docelowej kompilacji. Jednak zauważyłem, że dokumentacja mówi (zaznaczona na załączonym obrazku), że to ustawienie zostanie zignorowane, gdy wybierzemy „Generic iOS Device / Any Device” jako miejsce docelowe uruchomienia, ponieważ nie definiuje ono żadnej konkretnej architektury. Więc myślę, że powinniśmy być dobrzy, jeśli zarchiwizujemy naszą aplikację, wybierając ją jako miejsce docelowe.
źródło
user_target_xcconfig
podów, a wartości nie pasują dokładnie, CocoaPods będzie emitować takie ostrzeżenia[!] Can't merge user_target_xcconfig for pod targets: [... list of pods ...]. Singular build setting EXCLUDED_ARCHS[sdk=<...>] has different values.
. Odnośnik składni podspec mówi, że ten atrybut jest „niezalecany” guide.cocoapods.org/syntax/podspec.html#user_target_xcconfig . Więc nie używajuser_target_xcconfig
tego, aby zaoszczędzić wielu programistom kłopotów.arm64
jest mapowane w Xcode 11.7,x86_64
dlatego wyklucza główną architekturę symulatora.Znalazłem rozwiązanie! https://developer.apple.com/forums/thread/657913
Jeśli ustawisz wykluczone architektury dla symulatora na arm64, zostanie on skompilowany.
źródło
Ustawienie kompilacji Prawidłowe architektury zostało usunięte w Xcode 12. Jeśli masz wartości w tym ustawieniu kompilacji, powodują one problem i należy je usunąć.
Udało mi się „wyczyścić” ustawienie kompilacji VALID_ARCHS, dodając je z powrotem jako ustawienie kompilacji zdefiniowane przez użytkownika (bez wartości), uruchamiając projekt (co się nie udało), a następnie usuwając ustawienie kompilacji VALID_ARCHS. Po tym mogłem uruchomić na symulatorze.
Ustawienie kompilacji Moje architektury to Standardowe architektury.
Możesz dodać ustawienie zdefiniowane przez użytkownika za pomocą przycisku plusa w ustawieniach kompilacji:
źródło
Xcode 12.3
Rozwiązałem ten problem, ustawiając Validate Workspace na Yes
źródło
Jeśli masz problemy w Xcode 12 z symulatorami, a nie prawdziwym urządzeniem, tak, musisz usunąć ustawienia VALID_ARCHS , ponieważ nie są już obsługiwane. Przejdź do „ustawień kompilacji”, wyszukaj „ VALID_ARCHS ” i usuń właściwości zdefiniowane przez użytkownika. Zrób to w każdym celu, jaki masz.
Mimo to może być konieczne dodanie skryptu na dole pliku podfile, aby skompilować pody z odpowiednią architekturą i celem wdrożenia:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET' config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO' end end end
źródło
VALID_ARCHS
z mojego projektu działało dobrze. Nic nie zmieniłem ani w pliku podfile, ani w projekcie podów.Po aktualizacji do Xcode 12 nadal byłem w stanie zbudować dla prawdziwego urządzenia, ale nie symulatora. Kompilacja Podfile działała tylko na prawdziwym urządzeniu.
Usunąłem VALID_ARCHS w Ustawieniach kompilacji> Zdefiniowane przez użytkownika i zadziałało! Uderzyłem się w głowę przez jakiś czas, zanim to znalazłem.
źródło
U mnie zadziałało następujące ustawienie:
Ustawienia budowania >> Wykluczone architektury
dodano „arm64” do trybu wydania i debugowania dla opcji „Any iOS Simulator SDK”.
źródło
Myślę, że znalazłem odpowiedź. Zgodnie z informacjami o wersji Xcode 12 beta 6:
„ Edytor ustawień kompilacji nie zawiera już ustawienia kompilacji Prawidłowe architektury (VALID_ARCHS) i odradza się jego używanie. Zamiast tego dostępne jest nowe ustawienie kompilacji wykluczonych architektur (EXCLUDED_ARCHS). Jeśli projekt zawiera VALID_ARCHS, ustawienie jest wyświetlane w oknie User - Zdefiniowana sekcja edytora ustawień kompilacji. (15145028) "
Udało mi się rozwiązać ten problem, ręcznie edytując plik projektu (nie mogłem dowiedzieć się, jak usunąć element z pliku projektu za pomocą Xcode) i usuwając wszystkie wiersze odnoszące się do VALID_ARCHS. Po tym jestem w stanie dobrze zbudować symulator.
źródło
Rozwiązuję problem, dodając „arm64” w „Wykluczonych architekturach” zarówno dla celu projektu, jak i celu pod.
Xcode -> Projekt docelowy -> Ustawienia kompilacji -> Wykluczone architektury> „arm64”
Xcode -> Pod Target -> Ustawienia kompilacji -> Wykluczone architektury> "arm64"
źródło
Xcode 12
Usuwanie
VALID_ARCH
z ustawień kompilacji w ramach pracy grupowej zdefiniowanej przez użytkownika za mnie.źródło
W twoim pliku xxx.framework podspec dodaj follow config unikaj pakietu pod zawiera archiwa symilatora arm64
s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
źródło
user_target_xcconfig
podów, a wartości nie pasują dokładnie, CocoaPods będzie emitować takie ostrzeżenia[!] Can't merge user_target_xcconfig for pod targets: [... list of pods ...]. Singular build setting EXCLUDED_ARCHS[sdk=<...>] has different values.
. Odnośnik składni podspec mówi, że ten atrybut jest „niezalecany” guide.cocoapods.org/syntax/podspec.html#user_target_xcconfig . Więc nie używajuser_target_xcconfig
tego, aby zaoszczędzić wielu programistom kłopotów.Miałem problemy z budowaniem frameworków z wiersza poleceń. Mój framework zależy od innych frameworków, w których brakowało wsparcia dla symulatorów opartych na ARM. Skończyło się na wykluczeniu wsparcia dla symulatorów opartych na ARM, dopóki nie zaktualizuję moich zależności.
Potrzebowałem
EXCLUDED_ARCHS=arm64
flagi podczas budowania frameworka dla symulatorów z CLI.xcodebuild archive -project [project] -scheme [scheme] -destination "generic/platform=iOS Simulator" -archivePath "archives/[scheme]-iOS-Simulator" SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES EXCLUDED_ARCHS=arm64
źródło
-destination "generic/platform=iOS Simulator"
. Prowadzi to do budowania dla wszystkich dostępnych architektur, w tym arm64 od Xcode 12.Po wypróbowaniu prawie każdego postu w tym wątku i przeczytaniu forów programistów Apple stwierdziłem, że tylko jedno rozwiązanie działa dla mnie.
Tworzę uniwersalną strukturę, która jest używana w szybkiej aplikacji. Nie mogłem zbudować symulatora bez błędów architektury.
W moim projekcie Framework mam zadanie Universal Framework w moich fazach kompilacji, jeśli tak jest w Twoim przypadku
xcodebuild
zadania w fazie kompilacji:EXCLUDED_ARCHS="arm64"
Następnie musisz zmienić następujący projekt
Build Settings
:VALID_ARCHS
ustawienie zdefiniowane przez użytkownikaONLY_ACTIVE_ARCH
naYES
****** Jeśli tworzysz framework i masz również aplikację demonstracyjną, to ustawienie musi być włączone w obu projektach.
źródło
Aktualizacje: październik 2020 r
Możesz po prostu ustawić
arm64
tylko dlaDebug > Simulator - iOS 14.O SDK
architektury wykluczonej.źródło
Dla programistów podów W swoim Podspecu dodaj:
s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
Następnie w swoim przykładowym projekcie
Zobacz, jak działa w tym projekcie
źródło
user_target_xcconfig
podów, a wartości nie pasują dokładnie, CocoaPods będzie emitować takie ostrzeżenia[!] Can't merge user_target_xcconfig for pod targets: [... list of pods ...]. Singular build setting EXCLUDED_ARCHS[sdk=<...>] has different values.
. Odnośnik składni podspec mówi, że ten atrybut jest „niezalecany” guide.cocoapods.org/syntax/podspec.html#user_target_xcconfig . Więc nie używajuser_target_xcconfig
tego, aby zaoszczędzić wielu programistom kłopotów.Miałem również ten sam problem z określoną biblioteką, która została zainstalowana za pośrednictwem kartaginy. Dla tych, którzy używają Kartaginy, ponieważ Kartagina nie działa po wyjęciu z pudełka z Xcode 12, ten dokument przedstawia obejście, które działa w większości przypadków. W skrócie, Carthage buduje grube frameworki, co oznacza, że framework zawiera pliki binarne dla wszystkich obsługiwanych architektur. Do czasu wprowadzenia Apple Sillicon wszystko działało dobrze, ale teraz jest konflikt, ponieważ istnieją zduplikowane architektury (arm64 dla urządzeń i arm64 dla symulatora). Oznacza to, że Kartagina nie może łączyć ram specyficznych dla architektury z pojedynczą grubą strukturą.
Możesz postępować zgodnie z instrukcjami tutaj. Kartagina XCODE 12
Następnie po skonfigurowaniu Kartaginy. Umieść arm64 w „Excluded Architectures” w ustawieniach kompilacji.
Spróbuj uruchomić swój projekt za pomocą symulatora. Symulator powinien działać bez żadnych błędów.
źródło
Problemem są tutaj prawidłowe architektury w Xcode 11, otwórz projekt w Xcode 11 i zmień wartość prawidłowych architektur na $ (ARCHS_STANDARD) zarówno dla projektu, celu, jak i podów, ponownie otwórz projekt w Xcode 12 i skompiluj
źródło
Ustaw
"Build Active Architecture Only"(ONLY_ACTIVE_ARCH)
kompilację na tak,xcode
prosi o arm64 ze względu na architekturę Silicon MAC, która jest arm64.arm64 został dodany jako łuk symulatora w Xcode12 w celu obsługi Silicon MAC.
źródło
W moim przypadku: Xcode 12
Ustawiam puste wartości
EXCLUDED_ARCHS
i ustawiamONLY_ACTIVE_ARCH
Debug =YES
Release =NO
Project's Build Settingi umieściłem to w moim pliku Podfile:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" end end end
Działa na moim symulatorze iPhone 8 (iOS 12) i iPhone 11 Pro Max (iOS 14) oraz na moim urządzeniu iPhone 7 Plus (iOS 13.4)
źródło
Podczas
Build Settings
wyszukiwaniaVALID_ARCH
naciśnijdelete
. To powinno działać dla mnie z Xcode 12.0.1źródło
VALID_ARCH
, co to jest?Dodawaj tylko
Any iOS Simulator SDK -> x86_64
doProject's Build Settings -> VALID_ARCHS
prac dla mnie.Wersja Xcode: 12.1 (12A7403)
Jeśli Twój projekt zawiera platformy, które nie obsługują x86_64.
xxx.framework
) doTarget -> Build Settings -> Excluded Source File Names -> Debug -> Any iOS Simulator SDK
.Framework Search Paths
aby usunąć ścieżki tych struktur dlaDebug -> Any iOS Simulator SDK
.Te dwa ustawienia mogą uniemożliwić Xcode tworzenie i łączenie tych struktur w trybie symulatora.
źródło
Rozumiem problem z arm64 i Xcode 12 i udało mi się rozwiązać problemy z kompilacją, wykluczając architekturę arm64 dla iPhone Simulator lub ustawiając ONLY_ACTIVE_ARCH dla schematu wydania. Jednak nadal mam problemy z wypchnięciem mojego frameworka za pomocą wypychania pod repo.
Dowiedziałem się, że ustawienie s.pod_target_xcconfig w moim podspec nie powoduje zastosowania tego ustawienia do zależności zdefiniowanych w tym samym podspec. Widzę to w fałszywym projekcie aplikacji, który Cocoapods generuje podczas walidacji. Sprawdzanie poprawności Cocoapods uruchamia schemat wydania dla symulatora i kończy się niepowodzeniem, gdy jedna lub więcej zależności nie wyklucza arm64 lub nie jest skonfigurowana do budowania tylko aktywnej architektury.
Rozwiązaniem może być wymuszenie na Cocoapods dodania skryptu po instalacji podczas walidacji projektu lub pozwolenie na budowanie schematu debugowania, ponieważ schemat debugowania tworzy tylko aktywną architekturę.
Skończyło się na użyciu Xcode 11, aby zwolnić mój kapsułę, aby przejść weryfikację. Możesz pobrać Xcode 11 z developer.apple.com, skopiować go do folderu Aplikacje jako Xcode11.app i przełączyć używając
sudo xcode-select --switch /Applications/Xcode11.app/Contents/Developer
. Nie zapomnij przełączyć się z powrotem po zakończeniu.źródło
Po wypróbowaniu i wyszukaniu różnych rozwiązań, myślę, że najbezpieczniejszym sposobem jest dodanie następującego kodu na końcu pliku Podfile
post_install do |pi| pi.pods_project.targets.each do |t| t.build_configurations.each do |bc| bc.build_settings['ARCHS[sdk=iphonesimulator*]'] = `uname -m` end end end
W ten sposób nadpisujesz architekturę kompilatora symulatora iOS tylko jako architekturę bieżącego procesora. W porównaniu do innych rozwiązanie to sprawdzi się również na komputerach z Apple Silicon .
źródło
W moim przypadku:
Miałem 4 konfiguracje (+ DebugQa i ReleaseQa) Cocoapods jest używany jako menedżer zależności
Do debugowania zebrałem na urządzeniu i w symulatorze, a na qa tylko na urządzeniu.
Pomogło to ustawić BuildActiveArchitecture na tak w PodsProject
źródło
W moim przypadku próbowałem uruchomić na symulatorze watchOS 7 w trybie Relese, ale symulator iOS 14 był w trybie debugowania.
Dlatego po prostu umieszczenie obu Simów w trybie debugowania / wydania rozwiązało problem!
źródło
Przełącz konfigurację kompilacji z powrotem do trybu debugowania lub włącz opcję Kompiluj tylko aktywną architekturę zarówno dla trybu debugowania, jak i trybu wydania. Powodem jest to, że twoja biblioteka / framework nie obsługuje nowej architektury symulatora ARM64 (działa na Macu z procesorem Apple Silicon)
źródło
Dodaj wiersz „arm64” (bez cudzysłowów) do ścieżki: Xcode -> Projekt -> Ustawienia kompilacji -> Architektury -> Architektury wykluczone Zrób to samo dla Podów. W obu przypadkach dla pól debugowania i Release.
lub szczegółowo ...
Błędy wspomniane tutaj podczas wdrażania do symulatora przy użyciu Xcode 12 są również jedną z rzeczy, które miały na mnie wpływ. Wystarczy kliknąć prawym przyciskiem myszy każdy z moich projektów i wyświetlić go w wyszukiwarce, otworzyć plik .xcodeproj w Atom, a następnie przejść przez plik .pbxproj i usunąć wszystkie ustawienia VALIDARCHS. To właśnie sprawiło, że to zadziałało dla mnie. Wypróbowałem kilka innych sugestii (z wyjątkiem arm64, Build Active Architecture Only), które wydawały się prowadzić do dalszej kompilacji, ale ostatecznie pozostawiły mnie z innym błędem. Posiadanie ustawień VALIDARCH leżących w pobliżu jest prawdopodobnie najlepszą rzeczą do sprawdzenia w pierwszej kolejności.
źródło
Dzielenie się rozwiązaniem, które u mnie zadziałało, które może komuś pomóc
Problem podczas kompilacji dla symulatora:
XCODE 12.1, POD 1.9.1
Struktura mojego projektu
arm64
do ustawień kompilacji ->Exclude Architecture
we wszystkich celach.arm64
zVALID_ARCHS
i dodanox86_64
we wszystkich celów.Dodaj następujący kod w
podfile
post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" end end
Zrobił
pod update
, usunąłpodfile.lock
i zrobiłpod install
Czysta kompilacja.
źródło
Po wypróbowaniu wielu bezużytecznych odpowiedzi online. To działa dla mnie.
Najpierw generuje x86_64 dla projektów Pod !!!!
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['ARCHS'] = "arm64 x86_64" end end end
Po drugie, dodaj „x86_64” dla VALID_ARCHS
źródło