dyld: Biblioteka nie została załadowana: @ rpath / libswiftAVFoundation.dylib

106

Właśnie zaktualizowałem do Xcode 7 i Swift 2 i skończyłem naprawiać błędy, które pojawiają się przy przejściu. W końcu udało mi się zbudować projekt, ale po ekranie startowym pojawia się komunikat o błędzie:

dyld: Biblioteka nie została załadowana: @ rpath / libswiftAVFoundation.dylib Odniesienie z: / var / mobile / Containers / Bundle / Application / ...
Przyczyna: nie znaleziono odpowiedniego obrazu. Znalazłem: /private/var/mobile/Containers/Bundle/Application/.../Frameworks/libswiftAVFoundation.dylib: mmap () errno = 1 weryfikacja pierwszej strony '/ private / var / mobile / Containers / Bundle / Application / ... / Frameworks / libswiftAVFoundation.dylib '

Widziałem ten błąd wcześniej, ale z innymi frameworkami i nie mogę rozwiązać mojego problemu. Czy istnieje sposób na obejście tego, dodając gdzieś mój framework?

coracora
źródło
Ok, więc po wielokrotnym wystąpieniu tego problemu jest to jedyna rzecz, która zadziałała. Nie jestem pewien, dlaczego inne rozwiązania nie, ale postępowałem zgodnie z instrukcjami tutaj: stackoverflow.com/a/32730393/3474814
coracora
6
Miałem ten problem po przejściu na nowy mac. Przyczyną był brak pośredniego certyfikatu Apple WWDR.
Morten Holmgaard
Po prostu wyczyść projekt i uruchom ponownie
onmyway133

Odpowiedzi:

191

Spróbuj wyczyścić, skompilować, a następnie uruchomić projekt. Pracował dla mnie.

mikebertiean
źródło
2
Nie działało dla mnie, dla podobnego problemu z Swifty.json :(
Hatchmaster J
4
Pracował dla mnie. Miałem ten problem, ponieważ mój certyfikat został unieważniony. Teraz jest ok.
Adam Studenic
1
Bardzo dziękuję za pomoc! Właśnie odnowiłem mój certyfikat programistyczny iOS i napotkałem ten frustrujący błąd. Niesamowite, że błędy xcode NIE są intuicyjne do sprawdzenia ...
Gabcvit
1
Po kilku godzinach próbowania różnych rozwiązań w Xcode 10.2 żadne nie zadziałało. Ale uruchom projekt w Xcode 10.1 i zadziałał (zawsze osadzaj Swift Standard Libraries na Tak). Szukając rozwiązania przeczytałem, że ktoś mówi, że problem był w Swift Compiler, może w 10.2 jest problem.
Carlos Parada
54

W Xcode 8 aktualizacja ustawień kompilacji

Zawsze osadzaj Swift Standard Libraries na tak

pracował dla mnie.

JulianM
źródło
Myślę, że to możliwa poprawna odpowiedź. Z dokumentów Apple. „Jeśli tworzysz aplikację, która nie korzysta ze Swift, ale zawiera treści, takie jak framework, który to robi, Xcode nie uwzględni tych bibliotek w Twojej aplikacji.” Źródło: developer.apple.com/library/content/qa/qa1881/_index .html
David Pettigrew
1
Próbuję przekonwertować stary projekt z celem C (częściowo) na szybki. Ustawienie „zawsze osadzaj szybkie standardowe biblioteki” na tak naprawiło to za mnie.
Darrell Root
29

Żadne z powyższych rozwiązań nie zadziałało. Ostatecznie problemem były ustawienia zaufania mojego certyfikatu podpisującego. Zostały ustawione na „Zawsze ufaj”, co wydawało się powodować ten problem. Przełączenie z powrotem „Użyj domyślnych ustawień systemu” naprawiło to za mnie.

W moim przypadku początkowo zmieniłem ustawienia zaufania certyfikatów, ponieważ miałem problemy z budowaniem zdalnym. Udało mi się rozwiązać oba problemy, przełączając ustawienia zaufania globalnie na „Użyj domyślnych ustawień systemu” i „Zawsze zezwalaj” dla SSL.

Mam nadzieję, że to komuś pomoże.

Desmond
źródło
24

Gdy odpowiedź oznaczona jako poprawna nie zadziałała, dodałem następujące polecenie do „Ustawienia kompilacji> Łączenie> Ścieżki wyszukiwania ścieżek” :

@executable_path/Frameworks
ArtisanC
źródło
7

Mam ten problem podczas próby usunięcia mojego profilu obsługi administracyjnej i certyfikatu aplikacji. Zatem wszystkie moje szybkie projekty mają ten problem. Po prawie godzinie stwierdziłem, że wystarczy wyczyścić projekt przez:

Kliknij Produkt -> Wyczyść (lub CMD- Shift- K)

A projekty będą działać normalnie.

nhoxbypass
źródło
6

Podobne pytanie poniżej, odpowiedzi mogą być pomocne. dyld: Biblioteka nie została załadowana: @ rpath / libswiftCore.dylib

Dla mnie jedynym rozwiązaniem, które zadziałało, było to, co zasugerował @ morten-holmgaard w swoim komentarzu.

Próbowałem również zmienić flagę „Treść osadzona zawiera Swift Code” na „prawda” w ustawieniach kompilacji, ale nie przyniosło to żadnego skutku.

Bruno Coelho
źródło
2

Zmiana ustawień kompilacji -> „Treść osadzona zawiera Swift Code” na true / yes zadziałała.

Brian Ogden
źródło
2

W przypadku frameworka, którego używam na OSX (MailCore2), musiałem ustawić cele

„Build Settings> Linking> Runpath Search Paths” to @loader_path

rozwiązanie, które znalazłem tutaj:

http://www.dribin.org/dave/blog/archives/2009/11/15/rpath/

ghr
źródło
Artykuł był pomocny, dzięki! Żadne z innych rozwiązań tutaj nie zrobiło tego za mnie, ale w końcu udało mi się to uruchomić, dodając @rpathdo Runpath Search Pathsustawienia linkera.
catchinflux
2

Napotkałem ten problem z Xcode 9. To załatwiło sprawę:

Project > Build Settings > Swift Compiler - Search Path: Setting "Import Paths"do $(PROJECT_DIR)(rekurencyjnie)

ggs
źródło
1
Wpadłem na to w xcode 10 i też zadziałało! Dobra robota!
petrosmm
1

Są na to dwa rozwiązania:

Rozwiązanie 1:

  1. Quit Xcode( cmd+ Q)
  2. Otwórz i Clean Project ( cmd+ shift+ k)
  3. Teraz uruchom projekt, który powinien działać poprawnie

Rozwiązanie 2:

Sam dziennik konsoli stwierdza, że edytor dołączania dynamicznego (dyld) nie jest w stanie załadować biblioteki. Aby to naprawić, wykonaj poniższe czynności:

  1. Wybierz Project-> Build settings->
  2. Przejdź do Build optionskarty -> Wybierz opcję „ Always Embed Swift Standard Libraries’do Yes
  3. Teraz uruchom projekt, który powinien działać poprawnie

Zrzut ekranu z krokami

Jayprakash Dubey
źródło
0

Może to być problem z certyfikatami. Przejdź do centrum deweloperów Apple i upewnij się, że w swoim profilu dystrybucyjnym masz ustawioną „Jednostkę organizacyjną” .

Zajrzyj także do logów dla tekstu deny-mmap , prawdopodobnie pomoże ci to dalej.

Napotkałem ten problem z aplikacją Xamarin dla Apple Watch. Główna aplikacja i platforma Mono zostały podpisane i działały, ale rozszerzenie Watchkit nie zostało załadowane z powodu błędu dyld.

Windel
źródło