dyld: Biblioteka nie załadowana: @ rpath / libswiftCore.dylib

412

Próbuję uruchomić aplikację Swift na moim iPhonie 4s. Działa dobrze na symulatorze, a mój przyjaciel może z powodzeniem uruchomić go na swoim iPhonie 4s. Mam iOS 8 i oficjalne wydanie Xcode 6.

próbowałem

  • Ponowne uruchamianie Xcode, iPhone'a, komputera
  • Czyszczenie i odbudowa
  • Odwoływanie i tworzenie nowego certyfikatu / profilu udostępniania
  • Ścieżki wyszukiwania Runpath to $(inherited) @executable_path/Frameworks
  • Zawartość osadzona zawiera kod Swift: „Tak”
  • Identyfikator podpisywania kodu jest programistą

Poniżej znajduje się błąd w całości

dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/AppName
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/Frameworks/libswiftCore.dylib: mmap() error 1 at
address=0x008A1000, size=0x001A4000 segment=__TEXT in Segment::map() mapping
/private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/APPLICATION_NAME/Frameworks/libswiftCore.dylib
użytkownik3751185
źródło
4
czyste i odbudowane zadziałały dla mnie
MoralCode
Rozwiązanie jest tutaj . Ten sam temat
Tarik
Oczyszczam i odbudowuję mój projekt, który będzie dla mnie działał
Syed Zahid Shah,
1 Napotkałem ten sam problem ... Zostało to naprawione poprzez dodanie: W twoim podfile: use_modular_headers! zamiast use_frameworks! Powodzenia! Mam nadzieję, że to zadziała dla Ciebie!
Tejas

Odpowiedzi:

554

Dla mnie żadne z poprzednich rozwiązań nie zadziałało. Odkryliśmy, że w ustawieniach kompilacji istnieje flaga „Zawsze osadzaj szybkie biblioteki standardowe”, którą należy ustawić na TAK. Domyślnie NIE było!

Build Settings > Always Embed Swift Standard Libraries

Po ustawieniu tego wyczyść projekt przed ponownym budowaniem.

Dla zapalonych czytelników najważniejsze wyjaśnienie Najważniejsze jest:

ustaw opcję kompilacji Osadzona zawartość zawiera kod Swift (EMBEDDED_CONTENT_CONTAINS_SWIFT) na TAK w Twojej aplikacji, jak pokazano na rysunku 2. To ustawienie kompilacji, które określa, czy produkt docelowy ma osadzoną treść za pomocą kodu Swift, nakazuje Xcode osadzić standardowe biblioteki Swift w Twojej aplikacji po ustawieniu na TAK.

enter image description here

Flaga była wcześniej nazywana Embedded Content Contains Swift Code

TALAA
źródło
20
Pracowałem też dla mnie, więc wielkie dzięki. Co mnie zastanawia, jeśli dodam szybki kod do projektu, dlaczego Xcode nie aktualizuje go automatycznie? Brzmi jak rozsądne zachowanie domyślne.
Podejrzewam,
11
Dla mnie było „Osadzanie pakietów zasobów w pakiecie produktów”!
Matte.Car
17
Zrób porządek po tym.
Aggressor,
2
Czyszczenie po tym rozwiązało mój problem. Cieszę się, że sprawdziłem komentarze! =]
Relequestual
75
Teraz nazywa się to Always Embed Swift Standard Libraries.
Warpzit,
136

O dziwo, wszystko, co zrobiłem, to „Wyczyść” mój projekt (shift + cmd + K) i zadziałało. Wydaje się, że jest to związane z certyfikatem.

Royherma
źródło
Czyszczenie ma sens, ponieważ wymusza odświeżenie buforowanych przedmiotów używanych w kompilacji. Musiałem to zrobić, ponieważ właśnie odświeżyłem certyfikat podpisu. Zrobiłem czysty i czysty folder kompilacji (opcja-czyste).
Victor Engel
12
ha tak, zadziałało. zresetowałem swoje certyfikaty wcześniej i to czyste działało jak urok.
Drzewo kodów
GENIUS, hah, to było prawdopodobnie spowodowane aktualizacją z szybkiego 2 na 3 bez czyszczenia pomiędzy podejrzewam, przynajmniej dla mnie
Fonix
2
Mam ten sam problem. Nowa nowa wersja jest wymagana po manipulowaniu certyfikatami.
Marc
1
Mam ten sam problem . Czystość to krok. nie trzeba manipulować certyfikatami. mój problem rozwiązany.
Manish Nahar
95

Ten błąd pojawił się po usunięciu:

@executable_path/Frameworks

z Runpath Search Pathsmoich ustawień kompilacji. Zastąpienie go naprawiło wszystko ponownie (dzięki Bogu za kontrolę źródła!)

Nie wiem, jak się tam dostał, ale wydaje się, że jest on potrzebny, aby plik binarny znalazł wbudowane środowisko wykonawcze Swift.

jemmons
źródło
2
Zaktualizowałem stary projekt iOS6 do iOS7 i Swift i otrzymałem ten błąd. @ ścieżka_wykonywalna / Frameworks to naprawiło. Dzięki!
Lensflare
5
Dla mnie, od Xcode 8b5, tak naprawdę wymagało to dodania @loader_path/../Frameworkstestów jednostkowych systemu macOS i testów jednostkowych systemu @loader_path/FrameworksiOS.
Pascal,
Tak! To była poprawka, która zrobiła to dla mnie w iOS 10 / Xcode 8. Projekt rozpoczął się na iOS 2-3 jako czysty cel-c, a teraz dodajemy trochę Swift.
TahoeWolverine,
Dodanie tego również naprawiło błąd dla mnie. Czy ktoś zna pełny powód tego? Dzięki za pomoc.
Rod
Pracowałem też dla mnie! (XKod 8.2.1)
Dobry Giant
63

W przypadku urządzenia musisz również dodać dynamiczną strukturę do Embedded binariessekcji na Generalkarcie projektu.
wprowadź opis zdjęcia tutaj

Mustafa
źródło
1
jakieś pomysły? @Mustafa
user3751185
62
Odpowiedź jest bardzo niejasna.
Unheilig
1
Ponownie odpowiedz dość niejasno. Nie do końca wiadomo, co to oznacza w odniesieniu do PO.
Richie Marquez,
2
Pracował dla mnie. Dodanie tylko do sekcji „Połączone frameworki i biblioteki” nie załatwiło sprawy.
Danchoys
5
Aby wyjaśnić: jeśli to, co widzisz w komunikacie o błędzie, to nazwa frameworka (np. Niestandardowego frameworka Cocoa Touch, który stworzyłeś), nie dodawaj tylko .framework w Zależnościach docelowych w fazach kompilacji. Musisz także dodać go do osadzonych plików binarnych na karcie Ogólne. Ta odpowiedź mnie naprawiła.
Matthew Quiros
62

W Xcode 8 opcja dla Embedded Content Contains Swift Codeopcji nie jest już dostępna.

Został przemianowany na "Always Embed Swift Standard Libraries = YES"

wprowadź opis zdjęcia tutaj

Bonnie
źródło
Pomogło mi to z awarią na WatchOS
Alex Bartiş
28

Myślę, że to błąd, kiedy certyfikaty są generowane bezpośrednio z Xcode. Aby rozwiązać (przynajmniej w Xcode 6.1 / 6A1052d):

  1. przejdź do witryny Apple Developer, w której zarządza się certyfikatami: https://developer.apple.com/account/ios/certificate/certificateList.action
  2. wybierz swój certyfikat (certyfikaty) (które powinny pokazywać „Zarządzane przez Xcode” w „Statusie”) i „Odwołaj”
  3. postępuj zgodnie z instrukcjami tutaj, aby ręcznie wygenerować nowy certyfikat: https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html#//apple_ref/doc/uid/TP40012582-CH31- SW32
  4. przejdź do Xcode> Preferencje> Konta> [twój Apple ID]> kliknij dwukrotnie nazwę swojego zespołu> naciśnij przycisk odświeżania, aby zaktualizować certyfikaty i profile udostępniania
Vijay Sundaram
źródło
Pracowałem dla mnie tylko podczas usuwania i tworzenia tylko w XCode, narzędzie „Certyfikaty, identyfikatory i profile” developer.apple.com stworzyło nowe złe certyfikaty.
Graham P Heath,
4
Wybacz moją ignorancję ... Co ta odpowiedź ma wspólnego z zadanym pytaniem? Wygląda na to, że odpowiedziałeś na inne pytanie. Lub bardziej poprawnie, odpowiedziałeś na usuniętą odpowiedź @ user3056783, która brzmiała: „Mam zbyt komentarz do tego problemu”.
jww
Właśnie wygenerowałem certyfikat w Xcode, więc mógł to być ten sam problem, chociaż udało mi się go rozwiązać, uruchamiając Clean.
pr1001
1
Ten przycisk „Odśwież” jest teraz przemianowany na „Pobierz wszystko” ... :)
Thyselius
1
Ten sam problem w XCode 7. Ręczne generowanie plików cert w centrum programistów Apple rozwiązało problem.
JonSlowCN
25

OK, udostępniam tutaj kolejną przyczynę tego błędu. Zajęło mi to kilka godzin.

W moim przypadku polityka zaufania mojego certyfikatu w Dostępie do pęku kluczy brzmiała Zawsze zaufanie , a zmiana go z powrotem na domyślne rozwiązała problem.

Aby otworzyć okno ustawień certyfikatów, kliknij dwukrotnie certyfikat na liście certyfikatów Dostęp do pęku kluczy.

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

nalexn
źródło
Dla mnie też zadziałało. Użyłem strąków, aby dołączyć sdks PubNub i AWS. Próbowałem użyć różnych metod, takich jak zmiana „Ścieżek wyszukiwania Runpath”. Ustawiono już wartość wymienioną w powyższej odpowiedzi. Oznaczono tak, aby osadzić szybki kod w ustawieniach kompilacji, ale nie działał. Wreszcie to rozwiązanie zadziałało dla mnie. Twoje zdrowie.
Ehsan
1
Pracował dla mnie. Nigdy bym nie podejrzewał czegoś takiego. Wielkie dzięki.
Pierre-Yves,
Wypróbowałem wszystkie powyższe rozwiązania i to był gwóźdź do trumny. Nie jestem pewien, czy potrzebowałem kombinacji ich wszystkich, ale to był dla mnie zwycięzca. Żeby było jasne, zrobiłem: czyszczenie proj, włączanie load_path w ścieżkach wyszukiwania Runpath, przenoszenie certyfikatu dystrybucji z systemu na brelok do logowania, ustawianie Zawsze osadzaj szybkie biblioteki standardowe na tak, „niezaufanie” certyfikatu (ustaw go z powrotem do systemu domyślne zaufanie).
Nick Molyneux,
Holy Molly ... Wielkie dzięki!
Etenyl
23

Miałem ten problem z uruchomieniem testów Swift (ale nie mojej aplikacji). Okazuje się, że test musiał mieć więcej niż @executable_path/Frameworksw jego Runpath Search Pathsotoczeniu build dla celu badania. Ustawienie Ścieżek wyszukiwania Run Run na następujące działało dla mnie uroku:

$(inherited)
@executable_path/Frameworks
@loader_path/Frameworks
DonnaLea
źródło
1
Tak to jest to! Zmierzyłem się z tym dla AFDateHelper.framework, Result.framework dla tych, którzy Google tu trafili. Zdałem sobie sprawę, że to jest rozwiązanie, ponieważ zmieniając nazwę frameworka, dla którego otrzymywałem ten błąd - był to framework, w którym pominąłem, carthage copy-frameworksponieważ był to zależność wtórna (taka, którą dodałem frameworku, którego użyłem )
Angad
2
Alleluja! Niech Bóg cię błogosławi DonnaLea. Właśnie zakończyła się 3-godzinna walka.
Adam Waite,
Znakomity. Właśnie tego szukałem.
gran_profaci
21

Ten problem występuje ponownie w Xcode 10.2 . Musisz pobrać i zainstalować następujący pakiet od Apple. Zapewnia obsługę środowiska wykonawczego Swift 5 dla narzędzi wiersza poleceń .

https://support.apple.com/kb/DL1998?locale=en_US

Jim Bray
źródło
Byłem coraz inny: Nie znaleziono symbolu: _ $ s11SubSequenceSlTl. To działa 👍
Aditya Deshmane
Świetny! Rozwiązany dzięki temu
Roran
Pracuje! To przypomina mi dawne programowanie systemu Windows, kiedy trzeba było zainstalować redystrybucyjny program Visual C ++ msvcrt.dll
mcatach,
Dzięki! Próbowałem wszystkiego innego i to było to.
Silverstar,
17

Trzeba ustawić Runpath Search Pathssię @executable_path/Frameworksjak pokazano na poniższym zrzucie ekranu z Ustawienia produkcji:

wprowadź opis zdjęcia tutaj

Jeśli masz jakiekolwiek osadzone struktury wykonane w Swift, możesz ustawić YESOpcje budowania Embedded Content Contains Swift Code.

loretoparisi
źródło
1
TAK, dla frameworka w trybie szybkim konieczne jest ustawienie „Osadzona zawartość zawiera kod Swift” na TAK - konieczne
David
Zrobiłem narzędzie wiersza poleceń, które używa niektórych dylibów, które mają być dostarczone wraz z narzędziem w katalogu lokalnym (a nie w / usr / lib lub coś w tym stylu). otool -Lalbowiem ci dylibowie powiedzieli mi, że już używają @rpath/...swojej własnej ścieżki. Teraz, ustawiając Ścieżkę wyszukiwania Runpath na ścieżkę tego folderu, mogę uruchomić moje narzędzie i znajdzie dylibs, które są przechowywane w folderze obok niego.
Thomas Tempelmann
Podczas próby dodania modułu Swift do projektu React Native nie udało się go znaleźć @rpath/libswiftAppKit.dylib. Problem prowadź mnie, aby dowiedzieć się, że muszę dodać SearchPath: @executable_path/../Frameworks/na podstawie niniejszej instrukcji . Nie mogę powiedzieć, czy dotyczy to tylko struktury mojego projektu. Warto zauważyć, że nie musiałem czyścić DerivedData, aby to ustawienie zadziałało!
Jamie Birch,
16

Myślę, że Apple już to podsumowało w przypadku awarii aplikacji Swift podczas próby odwołania się do biblioteki Swift libswiftCore.dylib

Cytat z technicznych pytań 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ęzykową Swift?

Odp .: 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 programistów Enterprise i standardowe iOS, które są tworzone po wydaniu iOS 8, mają nowe pole Team ID w odpowiednim miejscu, aby umożliwić uruchamianie aplikacji językowych Swift.

Zwykle ten błąd pojawia się w dzienniku konsoli urządzenia z komunikatem podobnym do jednego z następujących:

[....] [deny-mmap] mapped file has no team identifier and is not a platform binary:
/private/var/mobile/Containers/Bundle/Application/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 przy tworzeniu archiwum i pakowaniu aplikacji. Nawet jeśli masz jeden z nowych certyfikatów, po prostu rezygnacja z istniejącego szybkiego archiwum aplikacji nie będzie działać. Jeśli został zbudowany z certyfikatem wcześniejszym niż iOS 8, musisz zbudować kolejne archiwum.

Ważne: zachowaj ostrożność, jeśli chcesz odwołać i skonfigurować nowy certyfikat Enterprise Distribution. Jeśli jesteś wewnętrznym programistą Enterprise, musisz uważać, aby nie unieważnić certyfikatu dystrybucyjnego, który został użyty do podpisania aplikacji, z której nadal korzysta każdy pracownik Twojego przedsiębiorstwa, ponieważ jakakolwiek aplikacja podpisana tym certyfikatem dystrybucyjnym dla przedsiębiorstw przestanie działać natychmiast. Powyższe dotyczy tylko certyfikatów Enterprise Distribution. Certyfikaty programistyczne można bezpiecznie cofnąć dla programistów iOS / korporacyjnych.

Jak faceci AirSign stwierdzić problem korzenie z brakującym OU atrybut w temacie dziedzinie certyfikatu w domu .

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.

flatronka
źródło
Po spędzeniu wielu godzin na próbach zrozumienia, dlaczego moja nowa konfiguracja CI nie była w stanie poprawnie opublikować aplikacji w wersji beta (faktycznie konto korporacyjne), doszedłem do wniosku, że w opcjach eksportu compileBitcode MUSI być prawdziwe.
gderaco
10

Załóżmy, że projekt P importuje niestandardową bibliotekę L, a następnie musisz dodać L do

P -> Build Phases -> Embed Frameworks -> +. To działa dla mnie.

wprowadź opis zdjęcia tutaj

Sazzad Hissain Khan
źródło
9

Najłatwiejszy i najłatwiejszy do zignorowania sposób: wyczyść i odbuduj.

To rozwiązało problem po wypróbowaniu powyższych odpowiedzi i nie działało.

Michael Yang
źródło
6

Zmień zasoby kopiowania strąków dla celu z:

"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-resources.sh"

do:

"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-frameworks.sh"
Bartłomiej Semańczyk
źródło
1
O ile nie zepsuło to czegoś innego, było to dla mnie naprawą!
RealCastual
Co jeszcze ta rzecz się zepsuła? Czy możesz mi pomóc poprawić odpowiedź?
Bartłomiej Semańczyk
Wydaje się, że działa z wyjątkiem, że uruchomienie „instalacji pod” zastępuje zmianę.
RealCastual
@RealCo prawda masz rację Czy istnieje sposób, aby zapobiec zastąpieniu tego lub innego obejścia?
Bartłomiej Semańczyk
O MÓJ BOŻE. to był dla mnie problem po wypróbowaniu 100 innych rzeczy i 4 godzinach małpowania. Co dokładnie dzieje się w framework.sh vs. resources.sh?
kennydust
6

Rozwiązałem, usuwając dane pochodne i tym razem działało poprawnie. Próbowałem z Xcode 7.3.1GM

Biały Tygrys
źródło
Usunięcie moich danych pochodnych również zadziałało, i tak zrobiłem wcześniej (CMD + K) na wszelki wypadek, a błąd umarł bolesną śmiercią!
Stuart P.,
6

Ten komunikat o błędzie może być również spowodowany podczas aktualizacji Xcode (a następnie do nowej wersji Swift), a Twój projekt korzysta ze środowiska zbudowanego / skompilowanego ze starszą / poprzednią wersją Swift.

W takim przypadku przebudowanie frameworka i ponowne dodanie go rozwiąże problem.

Paul Popiel
źródło
Zdarzyło mi się to, przechodząc z Xcode 9.2 do 9.3. Chociaż nie odkryłem go długo po aktualizacji, ponieważ dopóki projekt został zbudowany przy użyciu Xcode 9.2, nadal działa w nieskończoność z Xcode 9.3. Dopiero po przeprowadzeniu czystej kasy odkryłem to.
Svein Fidjestøl
Nie sądzę, aby ta odpowiedź była wystarczająco wysoko oceniana. Korzystając z Carthage i instalowanej zaktualizowanej wersji Xcode, musisz odbudować biblioteki Carthage, aby rozwiązać ten problem.
Darren
5

Po wypróbowaniu wszystkiego w końcu dowiedziałem się, że kompilacja nie zawsze zawiera każdy szczegół. Może w celu przyspieszenia procesu ... Aby zapewnić CAŁE opakowanie przed uruchomieniem na urządzeniu, najpierw wykonaj czyszczenie: Shift-Cmd-K. Następnie buduj z: Cmd-B. Następnie uruchom go na swoim urządzeniu. Łatwy. Pozdrawiam wszystkich miłych facetów w tym miejscu!

Daniel
źródło
4

W moim przypadku była to tylko nazwa mojego celu:

Zmieniłem nazwę tak: MyApp.something i pojawił się ten sam problem. Ale widziałem w oknie Ustawienia kompilacji, nazwa mojego modułu produktu została zmieniona, tak jak to MyApp-something . Usunąłem kropkę w nazwie docelowej ( MyAppSomething ) i problem zniknął.

Patrice From 8Beats
źródło
4

Dla mnie, próbowałem wszystkiego bez powodzenia, co zadziałało, było usunięcie @executable_path/Frameworksz Packaging section(nie wiem jak to się stało się tam w pierwszej kolejności)

wprowadź opis zdjęcia tutaj

abinop
źródło
czy dotyczy to ścieżki frameworka czy ścieżki głównych ustawień projektu?
ZeeroCool77
Miałem jeden projekt static lib a i chciałem dodać do niego szybki fw. Ta instrukcja wraz z osadzonym kodem Zawiera kod Swift to Yes rozwiązała wszystkie problemy.
mauron85
To chyba zepsuło mój projekt.
UKDataGeek
3

Żadne z rozwiązań nie działało dla mnie. Ponowne uruchomienie telefonu naprawiło to. Dziwne, ale zadziałało.

newDeveloper
źródło
3

żadne z tych rozwiązań nie działało, ale kiedy zmieniłem pozwolenie światowego certyfikatu programisty na Use System defaults to zadziałało. W linku poniżej umieściłem kroki i zrzuty ekranu

Zachęcam do zalogowania się w zgłoszeniu błędu Apple, jak wspomniano tutaj, ponieważ Apple naprawdę powinien rozwiązać ten ogromny błąd: https://stackoverflow.com/a/41401354/559760

UKDataGeek
źródło
2

Xcode 7.2, iOS 9.2 na jednym urządzeniu, 9.0 na drugim. Oba miały błąd. Nie mam pojęcia, co to spowodowało, ale powyższe rozwiązania dla WWDR były dla mnie poprawne. Zainstaluj ten certyfikat i problem rozwiązany.

https://forums.developer.apple.com/message/43547 https://forums.developer.apple.com/message/84846

HG123
źródło
Chociaż ten link może odpowiedzieć na pytanie, lepiej dołączyć tutaj istotne części odpowiedzi i podać link w celach informacyjnych. Odpowiedzi zawierające tylko łącze mogą stać się nieprawidłowe, jeśli połączona strona ulegnie zmianie. - Z recenzji
Bartłomiej Semańczyk
2
Przeprosiny. Pobierz certyfikat WWDR, ​​a następnie otwórz go, aby zainstalować w pęku kluczy. Certyfikat jest tutaj: developer.apple.com/certificationauthority/AppleWWDRCA.cer
HG123
2

Istnieje wiele odpowiedzi, ale być może moja odpowiedź pomoże komuś pomóc.

Mam ten sam problem. Moja aplikacja działa poprawnie na Symulatorze, ale na urządzeniu uległa awarii podczas aplikacji I Lunches i daje błąd jak wyżej. Wypróbowałem wszystkie odpowiedzi i rozwiązania. W moim przypadku, mój projekt Mam wiele celów. Utworzyłem zduplikowany cel B z celu A. Cel B działa dobrze, podczas gdy cel A ulega awarii. Używam różnych zasobów obrazu dla każdego celu. Po wyszukaniu i zrobieniu google znalazłem coś, co może komuś pomóc.

Aplikacja przestaje się zawieszać, gdy zmieniam nazwę Uruchamiaj zasoby obrazów dla obu aplikacji. np. Target A Launch Image nazwa zasobu LaunchImage A. Target B Nazwa zasobu obrazu lunchu Uruchom obraz B i prawidłowo przypisany w zakładce Ogólne każdego celu. Moje aplikacje działają dobrze.

VDPATEL
źródło
2

Dla mnie budowanie aplikacji Swift z linii poleceń MacOS, która zależała od bibliotek Swift innych firm (np. SQLite), żadne z powyższych rozwiązań nie działało. To, co działało, polegało na bezpośrednim dodaniu następującej ścieżki do ścieżek wyszukiwania Runpath w Ustawieniach kompilacji:

/Applications/Xcode.app/Contents//Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/

Spowodowało to ostrzeżenie w czasie wykonywania, że ​​Xcode znalazł 2 wersje libswiftCore - co ma sens. Tyle że nieuwzględnienie tej linii spowodowało, że Xcode nie znalazł żadnej wersji libswiftCore.

Tak czy inaczej, zrobi to dla mnie, nawet jeśli nie wydaje się to właściwe - moja aplikacja to narzędzie, którego nie zamierzam rozpowszechniać i przynajmniej działa teraz!

millionyearsold
źródło
Dziękuję Ci! Jestem w twojej sytuacji i to również zadziałało dla mnie.
Joris Weimar,
Tak, to rozwiązanie dla CLI!
Maury Markowitz
1

Mam zainstalowanych wiele wersji Xcode w tym samym czasie. Framework został zbudowany z nowszą wersją Xcode. Aplikacja, którą próbowałem skompilować, była ze starszą wersją Xcode. Kiedy wyczyściłem i skompilowałem zarówno środowisko, jak i aplikację z tą samą wersją Xcode, wtedy wszystko działało.

neoneye
źródło
1

Ten podobny błąd zacząłem otrzymywać podczas testowania dodawania pliku S3 za pomocą usług AWS. Poniżej był błąd. dyld: Biblioteka nie załadowana: @ rpath / AWSAutoScaling.framework / AWSAutoScaling

Często szukałem i powyższe rozwiązania również nie są dla mnie pomocne. Poniższy link pomógł mi rozwiązać ten problem.

https://forums.developer.apple.com/thread/21292

Który mówi, aby rozwiązać ten problem, ponownie pobierając WWDR (Apple Worldwide Developer Relations Certification Authority) .

Czanduthedev
źródło
1

Jestem na Xcode 8.3.2. Dla mnie problem polegał na tym, że certyfikat AppleWWDRCA był w systemie i pęku kluczy logowania. Usunięto oba, a następnie dodano tylko do pęku kluczy logowania, teraz znów działa dobrze. 2 dni stracone 😭

Max
źródło
Czy możesz oszczędzić trochę bardziej szczegółowej odpowiedzi? Gdzie go znajdziesz (certyfikat) - Zgaduję, że to, co napisałeś, oznacza coś dla Apple Worldwide Developer ... ale jak to się nazywa? jak ponownie dodać go po całkowitym usunięciu go ze wszystkich łańcuchów kluczy? Gdzie znajdujesz ten certyfikat?
Motti Shneor
1

Używam Xcode 8.3.3 i Xcode 9.2. Rozwiązaniem dla mnie było przełączenie mojego domyślnego Xcode z 8 na 9 za pomocą Xcode Select:

$ xcode-select --print-path

$ sudo xcode-select -switch /Applications/Xcode-9.2.app

Edycja: W rzeczywistości pomogło nam to, że Xcode 9.2 wykorzystał dane pochodne z Xcode 8.3.3. Nie jest to rozwiązanie, ale przynajmniej pozwala mi iść naprzód z moją pracą.

Matt Bearson
źródło
Próbowałem wystąpić te problemy, ale po zamknięciu i ponownym uruchomieniu xcode działa. :) Niezła próba
Abhishek Thapliyal
1

Jeśli pojawia się taki błąd:

Nie można załadować pakietu „YourFrameworkTests”, ponieważ jest uszkodzony lub brakuje niezbędnych zasobów. Spróbuj ponownie zainstalować pakiet. (dlopen_preflight (/ some / path /.../ YourFrameworkTests.xctest / YourFrameworkTests): Biblioteka nie załadowana: @ rpath / SomeOther.framework / SomeOther Referenced from: / some / path / ...)

i użyj CocoaPods w swoim frameworku, a następnie spróbuj edytować Podfilei usunąć inherit! :search_pathsz Testcelu, a następnie uruchom pod installponownie.

Aby uzyskać więcej informacji, zobacz https://github.com/CocoaPods/CocoaPods/issues/8868 .

Marius
źródło