2017 - niewiarygodnie, ponowne uruchomienie Xcode rozwiązało dla mnie ten ohydny problem.
Fattie
Odpowiedzi:
152
Dla mnie żadne z poprzednich rozwiązań nie zadziałało. Odkryliśmy, że ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIESw ustawieniach kompilacji istnieje flaga (we wcześniejszych wersjach: „Osadzona zawartość zawiera kod Swift”), która musi być ustawiona na TAK. Domyślnie NIE było!
Naprawiłem to również dla mnie, zmieniłem ustawienie rozszerzenia na true. Projekt jest objc, ale ext jest szybki i nie działał od samego początku
Cristi Băluță
To też była moja rezolucja. Mam istniejący projekt aplikacji na iOS (ObjC), do którego dodaję rozszerzenie Today (nowy cel w projekcie, rozszerzenie to wtyczka do głównej aplikacji). Musiałem przejść do ustawień docelowych aplikacji i włączyć ustawienie kompilacji i viola ... problem zniknął. Ma to sens, ale biorąc pod uwagę, ile innych rzeczy Xcode 6.0 automatycznie konfiguruje dla Ciebie, szkoda, że ta podstawowa opcja została przeoczona.
hsoi
To naprawiło mój problem - mieliśmy starszy projekt z dużą ilością ObjC, do którego niedawno zaczęliśmy dodawać Swift. Mimo że IPA został zbudowany i zawierał biblioteki Swift, nie działał na niektórych urządzeniach z iOS7, dopóki to ustawienie kompilacji nie zostało sprawdzone i nie zrobiliśmy nowego IPA. Działa to na wszystkich naszych problematycznych urządzeniach.
Kendall Helmstetter Gelner
1
Poza tym nic nie działało. Jesteś cholernym czarodziejem, mój dobry panie!
Ricky Hartmann
2
Osadzone treści zawierają przestarzałe kody Swift ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
nivritgupta
91
Ten błąd może wystąpić, jeśli coś poszło nie tak podczas konwersji projektu Objective-C, aby rozpocząć korzystanie z Swift. Problem polega na tym, że ustawienia kompilacji Linkera nigdy nie zostały poprawnie skonfigurowane, więc musisz to zrobić ręcznie. Wyszukaj ustawienie kompilacji Ścieżki wyszukiwania Runpath i ustaw je na:
$(inherited)@executable_path/Frameworks
EDYCJA: Powinienem również dodać, że ostatnio pojawiło się wiele błędów spowodowanych czymś zupełnie innym - Apple dokonało zmiany w samym Swift, zaczynając od Xcode 6.1 lub 6.1.1. Wydaje się, że jedynym rozwiązaniem jest zamknięcie Xcode, zniszczenie certyfikatów w Keychain Access, przejście do Centrum użytkowników i usunięcie wszystkich certyfikatów i profili (z wyjątkiem profili aplikacji w Sklepie - nie można ich usunąć), a następnie uruchomienie cały proces żądania certyfikatu od zera.
Pracował dla mnie. Uaktualniono do najnowszej wersji Xcode i stwierdziłem, że ta ścieżka ustawień w moim projekcie prowadziła do starszej wersji.
ObjectiveTC
1
pracował !! uratowałeś mi dzień! Używałem szybkiej kontroli GitHub w celu C z xcode 6 GM. Dzięki.
imthegiga
1
To również działało dla mnie. Ponowne uruchomienie Xcode nie.
Dan Loewenherz,
1
pracował dla mnie. Przy okazji na końcu komunikatu o błędzie pojawia się komunikat „Powód: nie znaleziono obrazu”.
Peter Zhou,
2
Dzięki Bogu! To było!
BoilingLime
79
Nie jestem do końca pewien, dlaczego pytanie to jest dyskutowane, miałem również ten problem, kiedy po raz pierwszy spróbowałem użyć Swift z istniejącym projektem. Ponowne uruchomienie Xcode również naprawiło to dla mnie.
Próbuję użyć programu Swift w nowym projekcie iOS i pojawia się ten błąd podczas próby uruchomienia na urządzeniu z systemem iOS 8, ale nie w symulatorze. Ponowne uruchomienie Xcode, mojego laptopa lub telefonu nie rozwiązuje problemu. Czy jest jakieś inne rozwiązanie?
David Skrundz
2
Niestety, nie działało to dla mnie w wersji Beta 4, gdy próbowałem uruchomić aplikację Mac, która korzysta ze środowiska Swift.
Craig Otis
W odpowiedzi umieść link @Developer, ponieważ to naprawdę pomaga.
Lachezar Todorov
Spróbuj tego, ale wrzuć również czysty.
Scott McKenzie,
55
Długo szukałem tego problemu. 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 masz do czynienia z tym problemem dzięki nowemu projektowi 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 Always Embed Swift Standard Libraries(poprzednio Embedded Content Contains Swift Code) flagę naYES
Rozwiązanie 3:
Przejdź do ustawień kompilacji projektu i dodaj @executable_path/Frameworksdo Runpath Search Pathsopcji
Rozwiązanie 4:
Jeśli żadna z powyższych czynności nie zadziała, to powinno. Apple wydaje się być łatkami na ninja, jak wspomniano w poście AirSign
Na certyfikatach InHouse
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 powinieneś po prostu odtworzyć certyfikat i przepis
Reklama 2: Teraz nazywa się „ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES” (patrz komentarz poniżej zaakceptowana odpowiedź).
Raphael
1
Chciałem dodać ... projekty macOS wymagają tego, @executable_path/../Frameworksgdzie wymagają tego projekty iOS bez ..pośrodku. Zmiana tej wartości jest ważna, jeśli cel został przekonwertowany z jednego systemu operacyjnego na drugi.
Matt Gallagher
41
W moim przypadku próbowałem zaimportować niestandardową platformę i otrzymałem podobny błąd. Okazuje się, że musiałem zaimportować platformę do wbudowanych plików binarnych, a nie do połączonych struktur i bibliotek.
Osadzone pliki binarne znajdują się w obszarze Ustawienia projektów -> -> Ogólne
Widziałem ten błąd, gdy próbowałem użyć skompilowanego frameworka napisanego w trybie szybkim (zamiast osadzać pliki źródłowe jako osobny cel). Powyższe rozwiązanie również działało dla mnie.
alex da franca
Dzięki tona, Uratowałem mój cały dzień.
Badrinath,
1
Pracowałem dla mnie po próbie połączenia frameworka napisanego szybko w starym projekcie, który był całkowicie obiektywny. To ustawienie było jednak w trakcie tworzenia. Więcej informacji tutaj: stackoverflow.com/questions/24163870/…
Pellet
To jest w Ustawieniach docelowych, a nie projektu, dla pewności.
Bezdzietny,
16
Dla programistów, którzy mieli ten problem z kompilacjami dystrybucji Adhoc / Enterprise,
Utwórz certyfikat produkcyjny z portalu deweloperskiego, a następnie ponownie wygeneruj profil dystrybucji. Pobierz i zainstaluj oba na komputerze Mac. Upewnij się, że wybrałeś odpowiedni profil w ustawieniach kompilacji Xcode i przebuduj aplikację.
Chociaż ten link może odpowiedzieć na pytanie, linki się psują. W związku z tym zaleca się dołączenie kluczowych części linku. Odpowiedzi tylko z łączem nie są zalecane.
Pokechu22,
Pracowałem dla mojej aplikacji dla przedsiębiorstw. Dzięki!
sylvanaar
15
Rozwiązanie 5:
W moim przypadku wszystkie rozwiązania wymienione w odpowiedzi na accfews były bardzo pomocne, ale żadne z nich nie zadziałało. Rozwiązałem problem, dodając moją szybką bibliotekę w sekcji „Osadzone pliki binarne” w sekcji „Ogólne” celu mojego projektu. Być może wynika to z faktu, że w mojej przestrzeni roboczej umieściłem moją szybką platformę? Cokolwiek teraz się kompiluje! Przygotuj się Szybko, jestem tutaj!
OK, to wydawało się działać. Próbuję tylko napisać szybką bibliotekę kodów dla szybkiego projektu. Jakoś wciąż zastanawiam się, czy to prawda. Jednak jestem podekscytowany jego działaniem.
kpierce8,
Zawarłem swoje frameworki w sekcji „Kopiuj frameworki” na karcie Fazy kompilacji - ale tutaj nie można było wybrać jednej frameworka. „Ogólne” pozwoliło na wybranie tego innego frameworka i dodanie go do Fazy kompilacji, a aplikacja buduje i uruchamia się. Co dziwne, nadal mogłem uruchomić aplikację na symulatorze.
djbp
Dzięki Christophe. Tak jak Ty, wypróbowałeś wszystkie rozwiązania, a zrozumienie, że szybkiej biblioteki nie można przeciągnąć do projektu w inny sposób, nie było intuicyjne. Musisz wyraźnie umieścić bibliotekę w sekcji osadzonej (inaczej mówiąc, szybszy moduł, wątpię, żeby istniał inny rodzaj osadzonych rzeczy). Nawet gdyby Xcode mógł ładnie wykryć to automatycznie i wykonać dla nas zadanie ... Ale to nie jest zadanie naszego ukochanego XCode;), zdecydowanie tutaj, aby zmarnować nasz czas ...
Pan Bonjour
Dodatkowo, jeśli biblioteka znajduje się już na liście, upewnij się, że jest oznaczona jako „Osadź i podpisz”. To rozwiązuje mój problem.
Stało się to po próbie dodania nowej klasy w starym projekcie. Nie ma informacji, ile lat ma projekt. Dlatego wyczyszczenie projektu i wymuszenie odświeżenia pamięci podręcznej ma sens. Stary projekt wskazuje również, że istnieje duża szansa, że certyfikat zostanie w międzyczasie zmieniony, ponieważ certyfikaty produkcyjne i programistyczne Apple wygasają co roku. Przeczytaj o głównej przyczynie błędu zgodnie z Apple Technical Q&A pod adresem. developer.apple.com/library/ios/qa/qa1886/_index.html . To samo mi się przydarzyło i Clean Build Folder powoduje, że projekt jest uruchamiany ponownie. Niech ludzie spróbują ..
stakahop
Stało się to zaraz po przeładowaniu mojego certyfikatu iOs. Proste czyszczenie (menu produktu) i wszystko działa dobrze ;-)
Sébastien REMY
Działał idealnie. Dziękuję Ci.
iSofia,
3
Powodów tego jest wiele. Właśnie spędziłem zabawny weekend, znajdując kolejny problem, który to powoduje (kolejność podpisywania kodu), chciałem stworzyć podsumowującą odpowiedź, która łączy wszystkie możliwe rozwiązania:
Dodaj zawartość osadzoną zawiera kod Swift do projektu. Musisz ustawić tę flagę, jeśli Twoja aplikacja zawiera kod Swift.
Czysty projekt . Oprócz projektu> Wyczyść możesz także usunąć katalogi DerivedDatai Build. Sprawdź w Preferencjach lokalizację DerivedData. Buildpowinien znajdować się w folderze projektu.
Upewnij się, że ścieżki wyszukiwania Runpath zawierają@executable_path/Frameworks .
Upewnij się, że Twój certyfikat zawiera identyfikator zespołu Apple w polu OU (jednostka organizacyjna) Apple doda to dla Ciebie, po prostu unieważnij istniejący certyfikat dystrybucji i utwórz nowy, pobierz, zainstaluj na KeyChain, ponownie wygeneruj wszystkie profile udostępniania, pobierz je i odbudować.
Ponowne uruchomienie Xcode. Jeśli wszystko jest w zasadzie dobre, ale Xcode jeszcze tam nie dotarł.
To takie proste. Jeśli wykonujesz własną kompilację z wiersza poleceń, możesz tworzyć własne .ipapliki do przesłania. W takim przypadku musisz upewnić się, że:
Upewnij się, że wersja plików Swift w SwiftSupport/iphoneosjest taka sama jak wersja wContents/YourApp.app/Frameworks Ponieważ Swift nie jest jeszcze kompatybilny binarnie między wersjami, musisz upewnić się, że te wersje są tymi, z których zbudowałeś aplikację. Możesz znaleźć te biblioteki pod /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos.
Najpierw podpisz biblioteki i ramy . Musisz najpierw codesignbibliotek i plików frameworka ( Frameworksw .appfolderze), a następnie podpisać całe .appdrzewo. .appDrzewo musi być podpisana z entitlements.plistale nie ram.
Mamy nadzieję, że kiedy pojawi się Swift 3.0 i nie będziemy już musieli dołączać Swift do naszych aplikacji, cały problem zniknie.
Miałem ten problem, korzystając z usługi mobilnej Ad Hoc (lub przedsiębiorstwa) z certyfikatem produkcyjnym. Przejście na certyfikat rozwoju i mobileprovision rozwiązało problem.
Może to pozwolić na uruchomienie aplikacji w fazie rozwoju, ale jak wdrożyć, jeśli profil ad-hoc lub korporacyjny nie działa?
Kristopher Johnson
2
Mój projekt jest projektem Swift z niektórymi klasami Objective-C. Miałem ten sam problem po podpisaniu przy użyciu starego certyfikatu inHouse (Enterprise).
Poniższe kroki naprawiły to dla mnie.
Utwórz i użyj nowego certyfikatu i usługi mobilnej.
(Patrz blog bloga AIRSIGN )
W naszym przypadku certyfikat dystrybucji dla przedsiębiorstw został unieważniony. Wygenerowanie nowego certyfikatu i zaktualizowanie profilu informacyjnego rozwiązało problem.
(Wydaje się, że istnieje wiele różnych przyczyn tego błędu. Mam nadzieję, że to komuś pomoże.)
To rozwiązało mój problem. Cholera jasna, co za strata czasu próbuje to naprawić. Mam nadzieję, że to rozwiąże problemy innych użytkowników. Byłem w stanie debugować moją aplikację za pomocą niestandardowego frameworka, ale nie mogłem uruchomić wersji maszyny kompilacji na Jenkins. Odwołanie moich certyfikatów dystrybucyjnych i wygenerowanie nowego profilu udostępniania dla przedsiębiorstw naprawiło dla mnie kompilacje.
cynistersix
2
To samo dotyczy Rozwiązania 4
potwierdza
2
Próbowałem wszystkich powyższych odpowiedzi, nic nie działało.
Napotkałem ten sam problem, ustawienie prawidłowej tożsamości znaku kodowego rozwiązało problem (Ustawienia kompilacji-> Tożsamość podpisywania kodu).
Zgodnie z pytaniem technicznym Apple „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”
Jeśli dodasz trzy frameworki za pomocą osadzonych plików binarnych, zostaną one również dodane do frameworków połączonych i bibliotek. Usuń trzy wpisy w połączonych ramach i bibliotekach rozwiąże problem.
Magiczne metody, takie jak ponowne uruchomienie Xcode i ponowne uruchomienie komputera Mac, nie działają na mnie.
Po godzinach prób i błędów doszedłem do rozwiązania tego problemu.
- Jeśli dotyczy to oczywiście twojego przypadku.
Miałem ten sam problem, dopóki nie zaktualizowałem systemu Mac OS X z Mavericks do Yosemite.
- Naprawił mój problem, mam nadzieję, że naprawi również twój
To działało dla mnie w XCode 7.2.1. Użyłem znaku + w panelu Fazy kompilacji, wybrałem Fazę nowych plików kopii, a następnie przeciągnąłem strukturę z drzewa obszaru roboczego do sekcji Kopiuj pliki. Wreszcie wybrałem Destination: Frameworks. Po czystej kompilacji moja aplikacja uruchomiła się zgodnie z oczekiwaniami.
Rob Smallshire
1
A jeśli wszystko to nie pomoże i naprawdę się denerwujesz ... Wypróbuj najlepszą sztuczkę ze wszystkich: Cleani dla pewności Clean Build Folder. :) Mam nadzieję, że to komuś pomaga!
Żadne z tych rozwiązań nie działało dla mnie konsekwentnie; po każdych kilku udanych uruchomieniach znowu się nie powiedzie. Dla mnie flaga „Treść osadzona zawiera szybki kod” zawsze była ustawiona na TAK.
Okazuje się, że ustawiłbym Xcode na zgodność z 6.3. Powrót do wersji zgodnej z 3.2 rozwiązał:
Dziękuję Ci! Próbowałem wszystkiego innego. Zmieniłem go z powrotem na 3.2, wyczyściłem projekt, ponownie uruchomiłem Xcode i zadziałało
gabriellanata
1
Miałem też ten problem, tylko że nie był w stanie go zlokalizować libswiftXCTest.dylib.
Rozwiązaniem było dodanie XCTest.frameworkdo celu Testy w Build Phases/Link Binary with Library. Ten błąd pojawiał się nawet wtedy, gdy próbowałem zbudować główny cel.
Pojawiło się to, gdy dodałem nowy cel rozszerzenia Today z językiem Swift do starego projektu.
Naprawiono łatwo, aktualizując projekt do zalecanych ustawień. Xcode 6.0.1
Ten sam problem mam przy użyciu Mavericks, Xcode 6.1.1, testowania na iPhone5 z iOS 8.1.1. Wypróbowałem wszystkie możliwe rozwiązania, w tym nowe certyfikaty i profile udostępniania, ale nic nie pomogło. Wprowadziłem zmiany do Embedded Content Contains Swift CodeiRunpath Search Paths zarówno na poziomie projektu, jak na poziomie docelowym.
Zainstalowałem teraz Yosemite i bez żadnych dalszych zmian zaczął on działać.
Ten sam problem tutaj, dla mnie było to, że Crashlytics / Fabric / Beta / Twitter / jakkolwiek się nazywają, ładują plik binarny, w którym brakuje osadzonych frameworków. Jeśli stworzyłem archiwum, a następnie wyeksportowałem kompilację Enterprise w standardowy sposób, zadziałałyby urok.
Po miesiącach i miesiącach próbowania wszystkiego tutaj ... Definicja szaleństwa ... uruchomienie Xcode pod nowym użytkownikiem komputera Mac rozwiązało to dla mnie.
Usunąłem ~ / Library / Developer / * i ponownie zainstalowałem Xcode, więc nie mam pojęcia, co jeszcze sformatować, aby działało.
otool
Odpowiedzi:
Dla mnie żadne z poprzednich rozwiązań nie zadziałało. Odkryliśmy, że
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
w ustawieniach kompilacji istnieje flaga (we wcześniejszych wersjach: „Osadzona zawartość zawiera kod Swift”), która musi być ustawiona na TAK. Domyślnie NIE było!źródło
Ten błąd może wystąpić, jeśli coś poszło nie tak podczas konwersji projektu Objective-C, aby rozpocząć korzystanie z Swift. Problem polega na tym, że ustawienia kompilacji Linkera nigdy nie zostały poprawnie skonfigurowane, więc musisz to zrobić ręcznie. Wyszukaj ustawienie kompilacji Ścieżki wyszukiwania Runpath i ustaw je na:
EDYCJA: Powinienem również dodać, że ostatnio pojawiło się wiele błędów spowodowanych czymś zupełnie innym - Apple dokonało zmiany w samym Swift, zaczynając od Xcode 6.1 lub 6.1.1. Wydaje się, że jedynym rozwiązaniem jest zamknięcie Xcode, zniszczenie certyfikatów w Keychain Access, przejście do Centrum użytkowników i usunięcie wszystkich certyfikatów i profili (z wyjątkiem profili aplikacji w Sklepie - nie można ich usunąć), a następnie uruchomienie cały proces żądania certyfikatu od zera.
źródło
Nie jestem do końca pewien, dlaczego pytanie to jest dyskutowane, miałem również ten problem, kiedy po raz pierwszy spróbowałem użyć Swift z istniejącym projektem. Ponowne uruchomienie Xcode również naprawiło to dla mnie.
źródło
Długo szukałem tego problemu. 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 masz do czynienia z tym problemem dzięki nowemu projektowi 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
Always Embed Swift Standard Libraries
(poprzednioEmbedded Content Contains Swift Code
) flagę naYES
Rozwiązanie 3:
Przejdź do ustawień kompilacji projektu i dodaj
@executable_path/Frameworks
doRunpath Search Paths
opcjiRozwiązanie 4:
Jeśli żadna z powyższych czynności nie zadziała, to powinno. Apple wydaje się być łatkami na ninja, jak wspomniano w poście AirSign
Na certyfikatach InHouse
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 powinieneś po prostu odtworzyć certyfikat i przepis
źródło
@executable_path/../Frameworks
gdzie wymagają tego projekty iOS bez..
pośrodku. Zmiana tej wartości jest ważna, jeśli cel został przekonwertowany z jednego systemu operacyjnego na drugi.W moim przypadku próbowałem zaimportować niestandardową platformę i otrzymałem podobny błąd. Okazuje się, że musiałem zaimportować platformę do wbudowanych plików binarnych, a nie do połączonych struktur i bibliotek.
Osadzone pliki binarne znajdują się w obszarze Ustawienia projektów -> -> Ogólne
źródło
Dla programistów, którzy mieli ten problem z kompilacjami dystrybucji Adhoc / Enterprise,
Źródło: https://devforums.apple.com/message/1022908#1022908
źródło
Rozwiązanie 5:
W moim przypadku wszystkie rozwiązania wymienione w odpowiedzi na accfews były bardzo pomocne, ale żadne z nich nie zadziałało. Rozwiązałem problem, dodając moją szybką bibliotekę w sekcji „Osadzone pliki binarne” w sekcji „Ogólne” celu mojego projektu. Być może wynika to z faktu, że w mojej przestrzeni roboczej umieściłem moją szybką platformę? Cokolwiek teraz się kompiluje! Przygotuj się Szybko, jestem tutaj!
źródło
Proste ponowne uruchomienie Xcode rozwiązało problem.
źródło
Dla mnie problem wynikał z faktu, że mój urząd certyfikacji Apple Worldwide Relations Relationship był nieprawidłowy.
Pobierz go stąd: https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
Przeciągnij i upuść w Dostęp do pęku kluczy, wyczyść projekt i uruchom.
źródło
Miałem projekt Obj-C, w którym zacząłem dodawać szybkie pliki źródłowe. Następujące rozwiązało problem dla mnie:
RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
EMBEDDED CONTENT CONTAINS SWIFT = YES
Właśnie utworzyłem nowy projekt z szablonów Xcode 6.3 i porównałem ustawienia projektu z moim starym oryginalnym projektem.
źródło
Spróbuj przytrzymać klawisz Alt, a następnie przejdź do produktu -> czysty folder kompilacji ...
Mam nadzieję, że to pomoże komuś ...
źródło
Powodów tego jest wiele. Właśnie spędziłem zabawny weekend, znajdując kolejny problem, który to powoduje (kolejność podpisywania kodu), chciałem stworzyć podsumowującą odpowiedź, która łączy wszystkie możliwe rozwiązania:
DerivedData
iBuild
. Sprawdź w Preferencjach lokalizacjęDerivedData
.Build
powinien znajdować się w folderze projektu.@executable_path/Frameworks
.To takie proste. Jeśli wykonujesz własną kompilację z wiersza poleceń, możesz tworzyć własne
.ipa
pliki do przesłania. W takim przypadku musisz upewnić się, że:SwiftSupport/iphoneos
jest taka sama jak wersja wContents/YourApp.app/Frameworks
Ponieważ Swift nie jest jeszcze kompatybilny binarnie między wersjami, musisz upewnić się, że te wersje są tymi, z których zbudowałeś aplikację. Możesz znaleźć te biblioteki pod/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos
.codesign
bibliotek i plików frameworka (Frameworks
w.app
folderze), a następnie podpisać całe.app
drzewo..app
Drzewo musi być podpisana zentitlements.plist
ale nie ram.Mamy nadzieję, że kiedy pojawi się Swift 3.0 i nie będziemy już musieli dołączać Swift do naszych aplikacji, cały problem zniknie.
źródło
Miałem ten problem, korzystając z usługi mobilnej Ad Hoc (lub przedsiębiorstwa) z certyfikatem produkcyjnym. Przejście na certyfikat rozwoju i mobileprovision rozwiązało problem.
źródło
Mój projekt jest projektem Swift z niektórymi klasami Objective-C. Miałem ten sam problem po podpisaniu przy użyciu starego certyfikatu inHouse (Enterprise).
Poniższe kroki naprawiły to dla mnie.
(Patrz blog bloga AIRSIGN )
Runpath Search Paths
ustawienia kompilacji do:$(inherited) @executable_path/Frameworks
.(Ref. Odpowiedź Matta )
źródło
Rozwiązanie 6:
W naszym przypadku certyfikat dystrybucji dla przedsiębiorstw został unieważniony. Wygenerowanie nowego certyfikatu i zaktualizowanie profilu informacyjnego rozwiązało problem.
(Wydaje się, że istnieje wiele różnych przyczyn tego błędu. Mam nadzieję, że to komuś pomoże.)
źródło
Próbowałem wszystkich powyższych odpowiedzi, nic nie działało.
Wreszcie działało po aktualizacji do Yosemite
źródło
Napotkałem ten sam problem, ustawienie prawidłowej tożsamości znaku kodowego rozwiązało problem (Ustawienia kompilacji-> Tożsamość podpisywania kodu).
Zgodnie z pytaniem technicznym Apple „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”
źródło
Jeśli dodasz trzy frameworki za pomocą osadzonych plików binarnych, zostaną one również dodane do frameworków połączonych i bibliotek. Usuń trzy wpisy w połączonych ramach i bibliotekach rozwiąże problem.
źródło
Dodanie frameworka jako „Embedded Binary” zamiast po prostu „Linked Frameworki i biblioteki” - Naprawiono mój problem.
Ustawiłem również opcję Osadzona zawartość zawiera kod szybkiego na TAK.
źródło
Uaktualnij do najnowszej wersji OS X (Yosemite)
Po godzinach prób i błędów doszedłem do rozwiązania tego problemu. - Jeśli dotyczy to oczywiście twojego przypadku.
Miałem ten sam problem, dopóki nie zaktualizowałem systemu Mac OS X z Mavericks do Yosemite. - Naprawił mój problem, mam nadzieję, że naprawi również twój
źródło
Wypróbowałem wszystkie rozwiązania znalezione w sieci, w tym Apple i nowe certyfikaty. Bezskutecznie.
Jedynym sposobem, w jaki mogłem uruchomić xcode, po 6 miesiącach prób, było utworzenie nowego konta na moim Macbooku.
źródło
Zwykle ten błąd zniknie, jeśli dodasz tę bibliotekę do segmentu „Kopiuj pliki” w swoich fazach kompilacji.
źródło
A jeśli wszystko to nie pomoże i naprawdę się denerwujesz ... Wypróbuj najlepszą sztuczkę ze wszystkich:
Clean
i dla pewnościClean Build Folder
. :) Mam nadzieję, że to komuś pomaga!źródło
Żadne z tych rozwiązań nie działało dla mnie konsekwentnie; po każdych kilku udanych uruchomieniach znowu się nie powiedzie. Dla mnie flaga „Treść osadzona zawiera szybki kod” zawsze była ustawiona na TAK.
Okazuje się, że ustawiłbym Xcode na zgodność z 6.3. Powrót do wersji zgodnej z 3.2 rozwiązał:
źródło
Miałem też ten problem, tylko że nie był w stanie go zlokalizować
libswiftXCTest.dylib
.Rozwiązaniem było dodanie
XCTest.framework
do celu Testy wBuild Phases/Link Binary with Library
. Ten błąd pojawiał się nawet wtedy, gdy próbowałem zbudować główny cel.źródło
Pojawiło się to, gdy dodałem nowy cel rozszerzenia Today z językiem Swift do starego projektu. Naprawiono łatwo, aktualizując projekt do zalecanych ustawień. Xcode 6.0.1
źródło
Ten sam problem mam przy użyciu Mavericks, Xcode 6.1.1, testowania na iPhone5 z iOS 8.1.1. Wypróbowałem wszystkie możliwe rozwiązania, w tym nowe certyfikaty i profile udostępniania, ale nic nie pomogło. Wprowadziłem zmiany do
Embedded Content Contains Swift Code
iRunpath Search Paths
zarówno na poziomie projektu, jak na poziomie docelowym.Zainstalowałem teraz Yosemite i bez żadnych dalszych zmian zaczął on działać.
źródło
Ten sam problem tutaj, dla mnie było to, że Crashlytics / Fabric / Beta / Twitter / jakkolwiek się nazywają, ładują plik binarny, w którym brakuje osadzonych frameworków. Jeśli stworzyłem archiwum, a następnie wyeksportowałem kompilację Enterprise w standardowy sposób, zadziałałyby urok.
źródło
Moje środowisko: Cocos2d 2.0, Box2d, Cel C
Oprócz odpowiedzi na inne powyższe pytania w końcu poszedłem do zakładki Ogólne i uczyniłem WatchKit Opcjonalnym.
źródło
Po miesiącach i miesiącach próbowania wszystkiego tutaj ... Definicja szaleństwa ... uruchomienie Xcode pod nowym użytkownikiem komputera Mac rozwiązało to dla mnie.
Usunąłem ~ / Library / Developer / * i ponownie zainstalowałem Xcode, więc nie mam pojęcia, co jeszcze sformatować, aby działało.
źródło