dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/Stylist.app/Stylist
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib: mmap() errno=1 validating first page of '/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib'
(lldb)
Otrzymuję ten błąd podczas tworzenia na moim iPhonie. Potrafię zbudować na symulatorze. Przerobiłem wszystkie moje pliki rezerwowe, ale nadal nie mogę zbudować na moim iPhonie. Mój Xcode jest taki
Czy jest to problem z ramą czy z podpisem? Tak się nie stało w Xcode 6. Dziękuję.
Odpowiedzi:
Mam ten problem przed przypadkowym unieważnieniem mojego certyfikatu. Zatem wszystkie moje szybkie projekty mają ten problem. Istnieją dwa sposoby rozwiązania tego problemu:
Kliknij Produkt → Wyczyść (lub CMD+ Shift+ K)
Lub ręcznie czyszcząc pliki ustawień Xcode:
rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache" rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf ~/Library/Caches/com.apple.dt.Xcode
źródło
Długo szukałem w tej sprawie. Istnieje kilka przyczyn tego problemu.
Jeśli masz do czynienia z kodem / biblioteką Swift w projekcie Objectice C, powinieneś wypróbować rozwiązanie 1-2-3
Jeśli napotykasz ten problem, nowy projekt Swift Rozwiązanie 4 będzie dla Ciebie najlepsze.
Rozwiązanie 1 :
Uruchom ponownie Xcode, a następnie komputer i iPhone'a
Rozwiązanie 2 :
Przejdź do ustawień kompilacji projektu i ustaw
Embedded Content Contains Swift
flagę kodu na TAKRozwiązanie 3:
Przejdź do ustawień kompilacji projektu i dodaj
@executable_path/Frameworks
opcję Runpath Search PathsRozwiązanie 4:
Jeśli żadne z powyższych nie działa, powinno. Wydaje się, że Apple to certyfikaty z łatkami ninja, jak wspomniano w poście AirSign
At InHouse certyfikaty
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR
dodali nowe pole o nazwie
OU
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR
więc należy po prostu odtworzyć certyfikat i udostępnienie
źródło
Po wypróbowaniu wielu innych wymienionych rozwiązań, ku mojemu wiecznemu zażenowaniu, wykonanie Xcode-> Product-> Clean i ponowne uruchomienie Xcode załatwiło sprawę.
źródło
U mnie ten problem pojawił się z powodu certyfikatu WWRD - mój był aktualny, ale z jakiegoś powodu został ustawiony na „zawsze ufaj” zamiast „używaj domyślnych ustawień systemu”, co najwyraźniej robi różnicę.
źródło
Jeśli przypadkowo zresetujesz pęku kluczy, może to być spowodowane brakującymi certyfikatami Apple w pęku kluczy. Poszedłem za odpowiedzią w tej sprawie, aby rozwiązać mój problem.
źródło
Usunięcie DerivedData załatwiło sprawę.
Zrobiłem to przez Xcode -> Preferencje -> Lokalizacje -> kliknąłem strzałkę za ścieżką DerivedData i usunąłem cały folder DerivedData w Finderze.
źródło
Window > Projects > My Project > Derived Data > Delete
wykonał pracę za mnie.Zdarzyło się to po mojej stronie podczas tworzenia aplikacji w wierszu poleceń za pośrednictwem xcodebuild i xcrun PackageApplication, podpisując aplikację profilem przedsiębiorstwa. Na naszych serwerach kompilacji CI certyfikat został ustawiony na „Zawsze ufaj” w pęku kluczy (wybierz certyfikat -> Uzyskaj informacje -> Zaufanie -> „Użyj domyślnych ustawień systemu” można zmienić na „Zawsze ufaj”). Musiałem ustawić go z powrotem na „Użyj domyślnych ustawień systemu”, aby to zadziałało. Początkowo ustawiliśmy to na „Zawsze ufaj”, aby obejść okna dialogowe pęku kluczy, które pojawiają się po aktualizacjach oprogramowania i aktualizacjach certyfikatów.
źródło
Ryzykując, że zasieję więcej zamieszania, miałem ten problem podczas aktualizacji do XC8.
Żadna z tych sugestii, ani żadnego innego wątku, nie rozwiązała tego problemu. To, co ZROBIŁO, to usunięcie WSZYSTKIEGO z fazy budowania „Połącz plik binarny z bibliotekami”, fazy budowania „Zależności docelowe” oraz ustawienia ogólnego „Połączone struktury i biblioteki”.
FYI, używam Kartaginy i dodałem
$(PROJECT_DIR)/Carthage/Build/tvOS
doFRAMEWORK_SEARCH_PATHS
ustawień kompilacji, aby można było znaleźć moje frameworki.FYI 2, te projekty i ramy, są w 100% szybkie, a ramy są budowane
DEFINES_MODULE = YES
.źródło
źródło
Cytowane z pytań technicznych i odpowiedzi QA1886 :
Aplikacja Swift ulega awarii podczas próby odwołania się do biblioteki Swift libswiftCore.dylib.
P: Co mogę zrobić z błędem ładowania libswiftCore.dylib w konsoli mojego urządzenia, który występuje, gdy próbuję uruchomić aplikację języka Swift?
O: Aby rozwiązać ten problem, musisz podpisać aplikację przy użyciu certyfikatów do podpisywania kodu z jednostką organizacyjną podmiotu (OU) ustawioną na identyfikator zespołu. Wszystkie certyfikaty dewelopera w wersji Enterprise i standardowej iOS, które zostały utworzone po wydaniu iOS 8, mają nowe pole Team ID w odpowiednim miejscu, aby umożliwić uruchamianie aplikacji języka Swift.
Zwykle ten błąd pojawia się w dzienniku konsoli urządzenia z komunikatem podobnym do jednego z następujących: [....] [deny-mmap] mapowany plik nie ma identyfikatora zespołu i nie jest plikiem binarnym platformy: / private / var / mobile / Kontenery / Pakiet / Aplikacja / 5D8FB2F7-1083-4564-94B2-0CB7DC75C9D1 / YourAppNameHere.app / Frameworks / libswiftCore.dylib
Dyld Error Message: Library not loaded: @rpath/libswiftCore.dylib Exception Type: EXC_BREAKPOINT (SIGTRAP) Exception Codes: 0x0000000000000001, 0x0000000120021088 Triggered by Thread: 0 Referenced from: /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/TestApp Reason: no suitable image found. Did find: /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib: mmap() error 1 at address=0x1001D8000, size=0x00194000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib Dyld Version: 353.5
Nowe certyfikaty są potrzebne podczas tworzenia archiwum i pakowania aplikacji. Nawet jeśli masz jeden z nowych certyfikatów, po prostu rezygnacja z istniejącego archiwum szybkiej aplikacji nie zadziała. Jeśli został utworzony z certyfikatem w wersji wcześniejszej niż iOS 8, musisz zbudować kolejne archiwum.
Ważne: zachowaj ostrożność, jeśli musisz unieważnić i skonfigurować nowy certyfikat Enterprise Distribution. Jeśli jesteś wewnętrznym programistą dla przedsiębiorstw, musisz uważać, aby nie unieważnić certyfikatu dystrybucyjnego, który został użyty do podpisania aplikacji, której którykolwiek z pracowników przedsiębiorstwa nadal używa jako wszystkich aplikacji podpisanych tym certyfikatem dystrybucyjnym przedsiębiorstwa natychmiast przestanie działać. Powyższe dotyczy tylko certyfikatów Enterprise Distribution. Certyfikaty programistyczne można bezpiecznie odwołać w przypadku deweloperów systemu iOS w przedsiębiorstwie / standardu.
Jak mówią pracownicy AirSign, problem ma swoje źródło w brakującym atrybucie OU w polu tematu certyfikatu In-House.
Temat: UID = 269J2W3P2L, CN = iPhone Dystrybucja: nazwa firmy, OU = 269J2W3P2L, O = nazwa firmy, C = FR
Mam certyfikat rozwoju przedsiębiorstwa, utworzenie nowego rozwiązało problem.
źródło
Nadal możesz napotkać ten problem po wypróbowaniu @Jieyi Hu Answer. może wydaje się, że jest naprawiony, ale jeśli pojawi się ponownie (prawdopodobnie na xCode 9).
Jednak to obejście wydaje się działać (dotyczy Cocoapods 1.5.x):
otwórz Podfile w swoim projekcie i dodaj to:
post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings.delete('CODE_SIGNING_ALLOWED') config.build_settings.delete('CODE_SIGNING_REQUIRED') end end
aktualizacja pod
Źródła:
https://github.com/evgenyneu/Cosmos/issues/105
https://github.com/Skyscanner/SkyFloatingLabelTextField/issues/201#issuecomment-381915911
Dziękuję @ Cédric
źródło
prawdopodobnie nie masz poprawnego łuku w tej bibliotece, możesz zrobić plik
file /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib
i powinno pokazać ci archiwa, które są w tej bibliotece ... Nie jestem pewien, w jaki sposób łączysz, ale prawdopodobnie nie jest to właściwy sposób (jeśli libswiftcore jest biblioteką fabryczną, jeśli jest to jakaś dodatkowa biblioteka, to prawdopodobnie nie jest poprawnie skompilowany)
źródło
Ja też miałem ten problem, jednak nic nie próbowałem powyżej iw kilku innych postach nie działało ... poza tym.
U mnie zmieniłem identyfikator pakietu, ponieważ mamy inny identyfikator pakietu na potrzeby dystrybucji i programowania.
Mój sprzęt jest dozwolony w tym przepisie, a moje konto zespołu jest ważne, ale wyrzucało powyższy błąd w innej strukturze.
Okazuje się, że musiałem całkowicie usunąć starą wersję aplikacji z telefonu. I nie tylko usuwając go w standardowy sposób.
Rozwiązanie :
Najwyraźniej po zainstalowaniu tej samej aplikacji w tym samym zespole pod innym identyfikatorem pakietu, jeśli nie zaczynasz całkowicie od zera, istnieją odniesienia do frameworków, które się mylą.
Mam nadzieję, że to komuś pomoże.
źródło
Właśnie wyczyściłem projekt i
Clean Build Folder
przez alt Product menuźródło
Poniższe kroki zakończyły się sukcesem.
1) W bibliotece dynamicznej nazwa instalacji musiała być „@loader_path”
2) W głównym projekcie ścieżka wyszukiwania Runpath musi mieć postać „@loader_path” i „@ loader_path / Frameworks”
3) Z widoku używanego pęku kluczy -> pokaż wygasłe certyfikaty i usuń wszystko.
4) Usunięto certyfikat dystrybucji i ponownie zainstalowano.
5) Pobrano developer.apple.com/certificationauthority/AppleWWDRCA.cer i zainstalowano.
źródło
Niedawno miałem ten problem. Próbowałem wszystkich możliwych rozwiązań, ale nic nie działało. Na koniec po prostu zamknąłem Xcode, usunąłem certyfikaty z pęku kluczy i zainstalowałem wszystko świeże i zrestartowałem mac. Na szczęście zadziałało jak urok :)
źródło
Miałem ten sam problem i udało mi się go naprawić, ponownie pobierając plik
WWDR (Apple Worldwide Developer Relations Certification Authority)
. Pobierz stąd :i ustaw na Zawsze ufaj pękowi kluczy. Zmiana na
Use System Default
to działa dla mnie, mam nadzieję, że to ci pomoże
źródło
W moim przypadku pęk kluczy wyświetla certyfikat jako niezaufany. Aby rozwiązać ten problem, ustawiłem opcje zaufania certyfikatu na „Zawsze ufaj”. Ustawienie certyfikatu na „Zawsze ufaj” było główną przyczyną awarii. Nie udało mi się zainstalować aplikacji na urządzeniu. Rozwiązałem ten problem, ustawiając opcję zaufania na „Domyślne ustawienia systemu” zamiast „Zawsze ufaj”. To zadziałało dla mnie.
źródło
Te same objawy występują, jeśli pracujesz w Xamarin Studio i odwołujesz się do przenośnej biblioteki, dla której musisz wykonać przynętę PCL i zmienić sztuczkę. Dzieje się tak, jeśli projekt odniesienia jest nieaktualny w odniesieniu do biblioteki, do której się odwołuje. Odkryłem, że zaktualizowałem moją wspólną bibliotekę do nowszej struktury, zaktualizowałem moje pakiety, ale nie zaktualizowałem moich pakietów iOS, aby pasowały. Aktualizacja pakietów rozwiązała ten błąd za mnie.
źródło
Możesz zregenerować certyfikat i ponownie uruchomić iPhone'a.
Ta praca dla mnie, mam nadzieję, że to pomoże.
źródło
Rozwiązuję problem, sprawdzając moje lokalne pęki kluczy. Zachowaj login. Pęku kluczy ma odpowiedni certyfikat
źródło
Musisz ustawić certyfikat (tylko certyfikat, a nie profil obsługi administracyjnej) dla każdej dynamicznej struktury, którą łączysz (bezpośrednio lub pośrednio) w swoim projekcie
źródło
W moim przypadku po usunięciu wszystkich certyfikatów utworzonych przez Xcode i pobranych. Niech xcode 8.1 zarządza certyfikacją aplikacji, działa dobrze !!! Mam nadzieję, że to może komuś pomóc.
źródło
Napotkałem ten problem TYLKO na symulatorze. Wygląda na to, że jest to związane z niektórymi nieprawidłowymi uprawnieniami w naszej aplikacji, ale problem nie pojawia się, gdy uruchamiamy na urządzeniu.
źródło
Rozwiązałem za pomocą tych sztuczek.
Krok 1:
Przejdź do ustawień kompilacji projektu i dodaj opcję @ executable_path / Frameworks to Runpath Search Paths
Krok 2:
Przejdź do ustawień kompilacji docelowej i dodaj @ executable_path / Frameworks do opcji Runpath Search Paths i Framework Search Paths.
Krok 3:
Ponowne pobranie WWDR (Apple Worldwide Developer Relations Certification Authority), ustaw opcję Użyj domyślnych ustawień systemu jako opcję.
Krok 4:
Usuń wszystkie dane pochodne za pomocą terminala
rm -rf ~ / Library / Developer / Xcode / DerivedData / *
Krok 5 :
Usuń wszystkie certyfikaty i zainstaluj je ponownie w pęku kluczy. Włączyłem opcję Użyj domyślnych ustawień systemu.
Krok 6:
Uruchom ponownie Xcode.
źródło
napotkał ten sam problem
źródło
Napotkałem ten problem z XCode 9. Nic z powyższego nie wyszło. To załatwiło sprawę dla mnie:
Project > Build Settings > Swift Compiler - Search Path: Setting "Import Paths"
do$(PROJECT_DIR)
(rekurencyjnie)źródło
To rozwiązało mój błąd-
Ponowne pobranie WWDR (Apple Worldwide Developer Relations Certification Authority), ustaw opcję Użyj domyślnych ustawień systemu jako opcję.
źródło
W moim przypadku był to problem z jednym z kapsuł, których używałem. Skończyło się na usunięciu tego zasobnika i ręcznym umieszczeniu z niego kodu w moim projekcie.
źródło
wprowadź opis obrazu tutaj
Mam podobny problem, który podaje szczegółowe informacje jak na pierwszym obrazku.
Moje rozwiązanie polega na tym, że przełącz certyfikację zawsze ufaj, aby używać domyślnych ustawień systemu. tak jak: wprowadź opis obrazu tutaj wprowadź opis obrazu tutaj
źródło