Uruchamianie aplikacji na iOS powoduje błąd w czasie wykonywania dla frameworków „nieprawidłowy podpis kodu”

32

Za każdym razem, gdy próbuję uruchomić tę aplikację, buduje się ona OK i instaluje się, ale jak tylko uruchamia się, aplikacja się psuje i drukuje ten komunikat o błędzie. XCode 11 i iOS 13.

dyld: Library not loaded: @rpath/StandardCyborgFusion.framework/StandardCyborgFusion
  Referenced from: /private/var/containers/Bundle/Application/2292CCF2-800F-4E28-AF10-A1B98081DD0A/StandardCyborgExample.app/StandardCyborgExample
  Reason: no suitable image found.  Did find:
    /private/var/containers/Bundle/Application/2292CCF2-800F-4E28-AF10-A1B98081DD0A/StandardCyborgExample.app/Frameworks/StandardCyborgFusion.framework/StandardCyborgFusion: code signature invalid for '/private/var/containers/Bundle/Application/2292CCF2-800F-4E28-AF10-A1B98081DD0A/StandardCyborgExample.app/Frameworks/StandardCyborgFusion.framework/StandardCyborgFusion'

Widziałem wiele podobnych postów tutaj i na forach deweloperów aplikacji na temat tego problemu, ale żaden nie ma wyjaśnienia ani poprawnej poprawki. próbowałem

  • Czyszczenie i budowanie
  • Ponowne uruchomienie XCode
  • Ponowne uruchamianie komputera Mac
  • Całkowicie zresetowałem pęku kluczy
  • Weryfikowanie wszystkich certyfikatów pęku kluczy Ustawienia zaufania są ustawione na „Użyj ustawień domyślnych systemu”
  • Przywracanie ustawień fabrycznych mojego komputera Mac

AKTUALIZACJA 1: Wydaje się, że jest to problem z moim urządzeniem iOS. Aplikacja może zostać uruchomiona na symulatorze, ale ten symulator nie nadaje się do moich celów programistycznych, dlatego muszę go uruchomić na moim urządzeniu. Niedawno zaktualizowałem swój iPhone XR do iOS 13.3.1.

AKTUALIZACJA 2: Znaleziono inną grupę, która wydaje się mieć ten sam problem https://github.com/flutter/flutter/issues/49504 .

Aidan Rosswood
źródło
skąd jest StandardCyborgFusion.framework? skontaktuj się z programistą ...
user3441734
1
próbowałeś połączyć lub osadzić framework?
Pieszy
1
Ten błąd występuje we wszystkich aplikacjach. Nie jest specyficzny dla ram.
Aidan Rosswood
Dodano aktualizację. Wydaje się być specyficzny dla urządzenia, ponieważ działa na symulatorze, a mój przyjaciel jest w stanie skompilować te same ramy na swoim urządzeniu.
Aidan Rosswood
1
Twój plik StandardCyborgFusion.framework nie jest podpisany kodem lub nie jest skompilowany dla architektury arm64. Nadal nie powiedziałeś nam, jak masz ten framework. Ponadto, jeśli ktoś powie Ci ponowne uruchomienie Xcode w celu rozwiązania problemów z kompilacją / łączeniem, oceń je.
Claus Jørgensen

Odpowiedzi:

25

Używam CocoaPods i dla mnie to naprawia błąd (odpowiedź Wasa22 na temat github):

  1. Otwórz plik podfile
  2. Skomentuj use_frameworks!
  3. Dodaj use_modular_headers!
  4. W Terminalu wykonaj aktualizację zasobnika -> zainstaluj zasobnik
  5. W Xcode, Wyczyść (Command-Shift-K) -> Kompiluj i uruchamiaj.

Źródło: https://github.com/Alamofire/Alamofire/issues/3051

Paul11100
źródło
To rozwiązanie naprawdę działa!
RapsIn4
Nie miałem czasu na sprawdzenie, czy to działa, ponieważ właśnie pożyczyłem konto programisty znajomych, ale oznaczę to jako prawidłowe. Byłbym wdzięczny, gdyby inni mogli potwierdzić, że to też działa dla nich.
Aidan Rosswood
Co jeśli nie mam pliku pod, co mogę zrobić w tym przypadku?
abdou31
1
wykomentuj use_frameworks i polecenie aktualizacji prowadzony pod wystarcza
Lahiru prasanna
26

Jest to problem z iOS 13.3.1. Wszystkie dynamiczne ramy kompilowane do najnowszej wersji iOS 13.3.1 napotykają ten problem, gdy działają na osobistym profilu administracyjnym / koncie programisty. Rozwiązanie, skopiowane z jmagman z Github, jest poniżej.

Możesz:

  1. Skorzystaj z profilu administracyjnego zespołu nieosobowego (płatne konto programisty).
  2. Uruchom na symulatorze 13.3.1.
  3. Przetestuj na prawdziwym urządzeniu z systemem iOS 13.3 lub starszym.
  4. Zainstaluj profil beta na urządzeniu testowym i zainstaluj iOS 13.4 beta 3. (Naprawiono)
  5. Poczekaj na wydanie iOS 13.4.

Mamy nadzieję, że problem ten zostanie wkrótce naprawiony.

Aidan Rosswood
źródło
Zmieniam wersję iOS 13.3.1 na 13.3. Nie mogę po prostu zostać i poczekać, aż Apple to naprawi.
Starsky
Huh ... wygląda na to, że nie mogę wykonać kopii zapasowej danych, mając iOS 13.3.1, a następnie przywróć go na iOS 13.3. To smutne ((Przywracanie należy wykonać w tych samych wersjach iOS. Więc to też nie jest rozwiązanie ...
Starsky
Chciałbym znaleźć tę odpowiedź wcześniej. . . Spędziłem 3 godziny próbując skonfigurować ustawienia kompilacji, pliki binarne i fazy kompilacji. . . Otrzymanie płatnego konta rozwiązało to presto
Marcus Kim
Klasyczne jabłko, tworząc błąd, który popycha Cię do zakupu.
Darius Buhai
Bardzo dziękuję za jasną i poprawną odpowiedź, +1.
mAc
3

Wygląda na to, że zostało to naprawione w iOS 13.4 beta 3. Możesz zainstalować profil beta lub poczekać na wydanie iOS 13.4.

Jenn
źródło
1
24 marca Apple wypuściło iOS 13.4. Ta aktualizacja zawiera poprawkę dotyczącą problemu z podpisem kodu! Więcej informacji można znaleźć w iOS 13.4 beta 3.
Rover
2

Widzę 2 sposoby, aby to naprawić.

  1. Przełącz na iOS 13.3. iOS 13.3.1 łamie podpis stron trzecich, chyba że masz płatne konto programisty. Jeśli to możliwe (zdobądź taniego iPhone'a dedykowanego rozwojowi)

  2. Zaktualizuj system Mac OS, Xcode i iOS do najnowszej wersji Beta (aktualizacja pojedynczej z nich nie będzie działać, ponieważ iOS beta wymaga najnowszej wersji beta Xcode, a Xcode wymaga najnowszej wersji Macina Catalina)

zhuangr
źródło
0

Jeśli uruchomisz z Xcode, zobaczysz błąd taki jak:

/private/var/containers/Bundle/Application/D0BD5694-A7D6-4820-A146- 
 A49DF0C0F0B1/Runner.app/Frameworks/Flutter.framework/Flutter: code signature 
invalid for '/private/var/containers/Bundle/Application/D0BD5694-A7D6-4820- 
A146-A49DF0C0F0B1/Runner.app/Frameworks/Flutter.framework/Flutter'

rozwiązanie dostarczone przez jmagman na Github

jmagman eskalował do Apple (FB7562472) i powiadomi wszystkich, jeśli coś usłyszy. więcej informacji na temat github

parikhparth23
źródło
0

Napotkałem ten problem podczas próby kompilacji na moim rzeczywistym urządzeniu iOS (ale działało dobrze w symulatorze). Próbowałem naprawić ten błąd przez co najmniej 10 godzin. Próbowałem wszystkiego na wszystkich forach, nic nie działało. Ale to w końcu dla mnie zadziałało!

  • Aktualizacja z iOS 13.3.1 do iOS 13.4.1

Nie mogłem sobie tego wyobrazić, ale prawdą jest, że iOS 13.3.1 łamie podpis stron trzecich, chyba że masz płatne konto programisty!

Zamiana
źródło
Musisz tylko zaktualizować urządzenie iOS do wersji 13.4.x. Po aktualizacji mogę uruchomić przykładowy projekt bez żadnych innych dostosowań.
corban