dyld: Kütüphane yüklenmedi: @ rpath / libswift_stdlib_core.dylib


205

Eski bir Xcode projesine bir Swift sınıfı ekledikten sonra bu hatayı alıyorum.

dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib

Projeyi tekrar nasıl yürütebilirim?


Ayrıca bunu kullanarak nasıl hata ayıklamayı gösteren stackoverflow.com/questions/38364320'ye bakmak isteyebilirsinizotool
Jim Hayes

2017 - inanılmaz, sadece Xcode'u yeniden başlatmak benim için bu iğrenç sorunu çözdü.
Fattie

Yanıtlar:


152

Benim için önceki çözümlerin hiçbiri işe yaramadı. ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIESYapım Ayarlarında EVET olarak ayarlanması gereken bir bayrak olduğunu (önceki sürümlerde: "Katıştırılmış İçerik Hızlı Kod İçerir") keşfettik . Varsayılan olarak HAYIR!


Bu benim için de sabit, uzatma ayarını true olarak değiştirdim. Proje objc ama ext hızlı ve başlangıçtan itibaren işe yaramadı
Cristi Băluță

Benim kararım da buydu. Bugün Uzantısı eklediğim mevcut bir iOS uygulama projem (ObjC) var (projedeki yeni hedef, uzantı ana uygulama için bir eklentidir). Uygulama hedef ayarlarına gitmem ve Yapı Ayarı ve ihlal ... sorununun ortadan kalkmasını sağlamak zorunda kaldım. Mantıklı, ancak Xcode 6.0'ın sizin için otomatik olarak ne kadar yapılandırdığı göz önüne alındığında, bu önemli seçeneğin göz ardı edildiği bir utanç.
hsoi

Bu sorunumu düzeltti - kısa süre önce Swift'i eklemeye başladığımız çok sayıda ObjC içeren eski bir projemiz vardı. IPA oluşturulmuş ve Swift kitaplıklarını içermesine rağmen, bu oluşturma ayarı kontrol edilene ve yeni bir IPA yapana kadar bazı iOS7 cihazlarında çalışmadı. Bu, sorunlu tüm cihazlarımızda işe yaradı.
Kendall Helmstetter Gelner

1
Bunun dışında hiçbir şey işe yaramadı. Sen garip bir büyücüsün, efendim!
Ricky Hartmann

2
Katıştırılmış İçerik Swift Kodu kullanımdan kaldırıldı kullanım içeriyor ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
nivritgupta

91

Swift'i kullanmaya başlamak için bir Objective-C projesinin dönüştürülmesi sırasında bir şeyler ters gittiğinde bu hata oluşabilir. Sorun, Linker oluşturma ayarlarının hiçbir zaman düzgün bir şekilde yapılandırılmamasıdır, bu yüzden elle yapmanız gerekir. Runpath Arama Yolları oluşturma ayarını arayın ve şu şekilde ayarlayın:

$(inherited) @executable_path/Frameworks

resim açıklamasını buraya girin

DÜZENLEME: Ayrıca, tamamen başka bir şey nedeniyle bu hataların son zamanlarda geçtiğini eklemeliyim - Apple belki de Xcode 6.1 veya 6.1.1'den başlayarak Swift'in kendisinde bir değişiklik yaptı. Tek çözüm, Xcode'dan çıkıp Keychain Access'teki sertifikalarınızı yok etmek, Üye Merkezine gitmek ve tüm sertifikaları ve profilleri silmek (Mağazadaki uygulamaların profilleri hariç - bunları silemezsiniz) ve ardından tüm sertifika talep süreci sıfırdan.


3
Benim için çalıştı. En son Xcode sürümüne yükseltildi ve projemdeki bu ayar yolunun eski sürüme götürdüğünü buldu.
ObjectiveTC

1
çalıştı !! günümü kurtardın! Xcode 6 GM ile objektif C'de hızlı GitHub kontrolü kullanıyordum. Teşekkürler.
imthegiga

1
Bu benim için de işe yaradı. Xcode yeniden başlatılamadı.
Dan Loewenherz

1
benim için çalıştı. Btw, hata iletisinin sonunda "Neden: resim bulunamadı" var.
Peter Zhou

2
Teşekkürler tanrım! İşte oradaydı!
BoilingLime

79

Bu sorunun neden reddedildiğinden emin değilim, Swift'i ilk kez mevcut bir projeyle kullanmaya çalıştığımda da bu problemi yaşadım. Bir Xcode yeniden başlatma da bunu benim için düzeltti.


20
Yeni bir iOS projesinde swift kullanmaya çalışıyorum ve bir iOS 8 cihazında çalıştırmaya çalışırken bu hatayı alıyorum, ancak simülatörde değil. Xcode'u, dizüstü bilgisayarımı veya telefonumu yeniden başlatmak sorunu çözmez. başka bir çözüm var mı?
David Skrundz

2
Maalesef bu, Swift tabanlı bir çerçeve kullanan bir Mac uygulaması başlatmaya çalışan Beta 4 altında işe yaramadı.
Craig Otis

Lütfen yanıtınıza @Developer bağlantısını ekleyin çünkü gerçekten yardımcı oluyor.
Lachezar Todorov

Bunu deneyin ama aynı zamanda temiz atın.
Scott McKenzie

55

Bu konuda uzun süre araştırdım. Bu sorunun çeşitli nedenleri vardır.

Bir Objectice C projesinde Swift kodu ve kitaplığı ile karşılaştığınızda, Çözüm 1-2-3'ü denemelisiniz

Bu sorunla yeni bir sorunla karşılaşırsanız, Swift 4 çözümü Solution size en uygun olanıdır.

Çözüm 1:

Xcode'u, ardından bilgisayarı ve iPhone'u yeniden başlatın

Çözüm 2:

Proje oluşturma ayarlarına gidin ve Always Embed Swift Standard Libraries(önceden Embedded Content Contains Swift Code) işaretiniYES

Çözüm 3:

Proje oluşturma ayarlarına gidin ve eklemek @executable_path/Frameworksiçin Runpath Search Pathsseçenek

Çözüm 4:

Yukarıdakilerin hiçbiri işe yaramazsa, bu gerekir. Apple, AirSign'ın gönderisinde belirtildiği gibi ninja yamalı sertifikalar gibi görünüyor

InHouse sertifikalarında

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR

OU adında yeni bir alan eklediler

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR

bu nedenle sertifika ve provizyonu yeniden oluşturmanız gerekir


1
2. Reklam: Artık "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES" olarak adlandırılıyor (kabul edilen yanıtın altındaki açıklamaya bakın).
Raphael

1
Eklemek istedim ... macOS projeleri, @executable_path/../FrameworksiOS projelerinin ..ortada gerektirmediği yerlerde gerektirir . Bir hedefi bir işletim sisteminden diğerine dönüştürdüyseniz bu değerin değiştirilmesi önemlidir.
Matt Gallagher

41

Benim durumumda özel bir çerçeveyi içe aktarmaya çalışıyordum ve benzer bir hata alıyordum. Çerçeveyi Bağlantılı Çerçeveler ve Kütüphaneler yerine Gömülü İkililer'e aktarmak zorunda olduğum anlaşılıyor.

Gömülü İkililer Proje Ayarları -> -> Genel altında


Günümü kurtardım! Müthiş!
Klaas

1
Hızlı bir şekilde derlenmiş bir çerçeve (kaynak dosyaları ayrı hedef olarak katıştırma yerine) kullanmaya çalışırken bu hatayı görüyordum. Yukarıdaki çözüm de benim için çalıştı.
alex da franca

Bir ton teşekkürler, Tam günümü kurtardım.
Badrinath

1
Kısmen yazılmış bir çerçeveyi tamamen objektif olan eski bir projeye bağlamaya çalıştıktan sonra benim için çalıştı. Ayar aslında inşa ayarları altında olsa idi. Daha fazla bilgi için: stackoverflow.com/questions/24163870/…
Pelet

Bu, emin olmak için proje değil, Hedef ayarları altındadır.
Legoless

16

Bu sorunu bir Adhoc / Enterprise dağıtım derlemeleriyle yaşayan geliştiriciler için,

Dev portalından üretim sertifikası oluşturun ve ardından dağıtım profilini yeniden oluşturun. Her ikisini de Mac'inize indirin ve yükleyin. Xcode derleme ayarlarınızda doğru profili seçtiğinizden emin olun ve uygulamanızı yeniden oluşturun.

Kaynak: https://devforums.apple.com/message/1022908#1022908


Bu bağlantı soruyu cevaplayabilirken, bağlantılar kopar. Bu nedenle, bağlantıdaki önemli parçaları eklemeniz önerilir. Yalnızca bağlantı yanıtları önerilmez.
Pokechu22

Kurumsal uygulamam için çalıştı. Teşekkürler!
sylvanaar

15

Çözüm 5:

Benim durumumda, accfews cevabında belirtilen tüm çözümler çok yardımcı oldu, ancak hiçbiri işe yaramadı. Projemin hedefinin "Genel" bölümündeki "Gömülü İkili Dosyalar" bölümüne hızlı kütüphanemi ekleyerek sorunumu çözdüm. Belki de bu, hızlı çerçevemi çalışma alanıma dahil ettiğimden mi kaynaklanıyor? Şimdi ne derlerse! Hazırlan Swift, ben buradayım!


Tamam, işe yaramış gibiydi. Sadece hızlı bir proje için bir hızlı kod kütüphanesi yazmaya çalışıyorum. Bir şekilde hala bunun doğru olup olmadığını merak ediyorum. Ancak çalışmasından çok memnunum.
kpierce8

Çerçevelerimi Derleme Aşamaları sekmesinin "Çerçeveleri Kopyala" bölümüne ekledim - ancak burada bir çerçeve seçilemedi. "Genel", bu diğer çerçevenin seçilmesine izin verdi ve bunu Yapılandırma Aşamalarına ekledi ve uygulama oluşturuldu ve çalışıyor. Garip bir şekilde, uygulamayı simülatörde çalıştırabilirim.
djbp

Teşekkürler Christophe. Sizin gibi, tüm çözümleri denedim ve hızlı bir kütüphanenin bir projeye başka bir projeye sürüklenemeyeceğini anlamak sezgisel değildi. Kitaplığı gömülü bölüme açıkça koymanız gerekir (daha açık bir şekilde hızlı modül olarak, başka tür gömülü şeyler olabileceğinden şüpheliyim). Xcode güzel bir şekilde otomatik olarak tespit edip bizim için işi yapsa bile ... Ama bu bizim sevgili XCode'umuzun görevi değil;), kesinlikle burada zamanımızı boşa harcamak ...
Bay Bonjour

Ayrıca, kitaplık listede zaten varsa "Yerleştir ve İmzala" olarak işaretlendiğinden emin olun. Bu benim sorunumu çözer.
SquareBox

10

Xcode'un basit bir şekilde yeniden başlatılması sorunu benim için çözdü.


Windows'u sıfırlamadan eğlenceli hale getiren bir sonraki elma fanboyunu tokatlayacağım
Josh


3

Hızlı kaynak dosyaları eklemeye başladığım bir Obj-C projem vardı. Aşağıdakiler benim için sorunu düzeltti:

  1. Bağlama: RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
  2. Swift Derleyici - Kod Üretimi: EMBEDDED CONTENT CONTAINS SWIFT = YES

Xcode 6.3 şablonlarından yeni bir proje oluşturdum ve proje ayarlarını eski orijinal projemle karşılaştırdım.


3

Alt tuşunu basılı tutmaya çalışın, ardından Ürün -> Derleme Klasörünü Temizle ... seçeneğine gidin.

Umarım birine yardım eder ..


Bu soruya bir cevap sağlamaz. Yeterli bir üne sahip olduğunuzda , herhangi bir yazı hakkında yorum yapabilirsiniz ; bunun yerine askerden açıklama gerektirmeyen cevaplar verin . - Yorumdan
Rakete1111

Eski projeye yeni bir sınıf eklemeye çalıştıktan sonra oldu. Projenin ne kadar eski olduğuna dair bilgi yok. Bu nedenle, projenin temizlenmesi ve önbelleğin yenilenmesini zorlamak mantıklıdır. Eski proje, bu arada sertifikanın değiştirilme şansının yüksek olduğunu ima ediyor, çünkü Apple Production ve Developer sertifikalarının süresi her yıl doluyor. Apple Teknik Soru ve Cevaplarına göre ana hata nedenini okuyun. developer.apple.com/library/ios/qa/qa1886/_index.html . Bana da aynı şey oldu ve Klasörü Temizle projeyi tekrar çalıştırıyor. İnsanlar deneyelim ..
stakahop

İOs sertifikamı yeniden yükledikten hemen sonra oldu. Basit bir Temizlik (Ürün menüsü) ve her şey iyi çalışıyor ;-)
Sébastien REMY

Mükemmel çalıştı. Teşekkür ederim.
iSofia

3

Bunun olmasının nedenleri çoktur. Sadece bu (kod imzalama sırası) neden olan başka bir sorun bulma eğlenceli bir hafta sonu geçirdim, tüm olası çözümleri bir araya getiren bir özet cevap oluşturmak istedim:

  1. Katıştırılmış İçerik Ekle Projeye Swift Kodu içerir . Uygulamanız Swift kodu içeriyorsa bu bayrağı ayarlamanız gerekir.
  2. Temiz proje . Bir Proje> Temizle seçeneğine ek olarak DerivedDatave Builddizinlerini de silebilirsiniz . Konumu için Tercihler bölümüne bakın DerivedData. Buildproje klasörünüzde olmalıdır.
  3. Çalışma Yolu Arama Yollarının içerdiğinden emin olun@executable_path/Frameworks .
  4. Sertifikanızın OU (Organizasyon Birimi) alanında Apple Team ID'nizi içerdiğinden emin olun Apple bunu sizin için ekleyecektir, sadece mevcut dağıtım sertifikanızı iptal edip yeni bir tane oluşturun, KeyChain'e indirin, yükleyin, tüm sağlama profillerini yeniden oluşturun, bunları indirin ve yeniden.
  5. Xcode yeniden başlatılıyor. Her şey temelde iyi ise, ancak Xcode henüz oraya ulaşmadı.

Bu kolay şeyler. Kendi komut satırı derlemenizi yapıyorsanız, .ipakarşıya yüklemek için kendi dosyalarınızı yaratıyor olabilirsiniz . Bu durumda aşağıdakileri sağlamanız gerekir:

  1. Swift dosyalarının SwiftSupport/iphoneossürümünün şu sürümle aynı olduğundan emin olun.Contents/YourApp.app/Frameworks Swift henüz sürüm arasında ikili uyumlu olmadığından, bu sürümlerin uygulamanızı oluşturduğunuz sürüm olduğundan emin olmalısınız. Bu kütüphaneleri altında bulabilirsiniz /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos.
  2. Önce kütüphaneleri ve çerçeveleri imzalayın . Buna gerek codesignkütüphaneler ve çerçeve dosyaları (altında Frameworksyer .appbirinci ve daha sonra tüm oturum klasörüne) .appağacı. .appAğaç bir ile imzalanmış olmalıdır entitlements.plistama değil çerçeveler.

Umarım Swift 3.0 çıktığında ve artık Swift'i uygulamalarımızla paketlememiz gerekmiyorsa, tüm bu sorun ortadan kalkacaktır.


2

Bu sorunu, bir üretim sertifikasına sahip bir Geçici (veya kurumsal) mobil sağlama kullanarak yaşadım. Bir geliştirme sertifikasına ve mobil provizyona geçmek sorunu çözdü.


4
Bu, uygulamayı geliştirmede çalıştırmanıza izin verebilir, ancak bir geçici veya kurumsal profil çalışmazsa nasıl dağıtabilirsiniz?
Kristopher Johnson

2

Projem bazı Objective-C sınıflarına sahip Swift projesidir. Eski inHouse (kurumsal) sertifikası ile imzalandığımda da aynı sorunu yaşadım.

Aşağıdaki adımlar bunu benim için düzeltti.

  1. Yeni bir sertifika ve mobil sağlama oluşturun ve kullanın.
    (Ref. AIRSIGN'ın blogu )
  2. Runpath Search PathsDerleme ayarını: olarak ayarlayın $(inherited) @executable_path/Frameworks.
    (Referans mat cevabı )

2

Çözüm 6:

Bizim durumumuzda, Kurumsal Dağıtım Sertifikası iptal edilmiştir. Yeni bir sertifika oluşturmak ve sağlama profilini güncellemek sorunu çözdü.

(Bu hatanın birçok farklı nedeni var gibi görünüyor. Umarım bu birine yardımcı olur.)


Bu benim sorunumu çözdü. Kutsal saçmalık bunu düzeltmeye çalışırken ne zaman kaybı. Umarım bu diğer kullanıcıların sorunlarını çözer. Uygulamamı özel çerçevemle hata ayıklayabilirim, ancak jenkinlerde derleme makinesinin sürümünü çalıştıramadım. Dağıtım sertifikalarımı iptal etmek ve yeni bir kurumsal ön hazırlık profili oluşturmak, yapıları benim için düzeltti.
cynistersix

2
Bu, Çözüm 4 ile aynıdır
14'te

2

Yukarıda verilen tüm cevapları denedim, hiçbir şey işe yaramadı.

Sonunda Yosemite güncellemesinden sonra çalıştı


2

Aynı sorunla karşılaştım, doğru kod işareti kimliğini ayarlamak sorunu çözdü (Yapı ayarları-> Kod İmzalama Kimliği).

Gereğince Elma teknik soruya "iOS 8 Swift dil uygulamaları çalışmasına izin vermek uygun yerde yeni Takım ID alanı var yayımlandıktan sonra oluşturulan tüm Enterprise ve standart iOS geliştirici sertifika"


2

Üç çerçeveyi Gömülü İkililer aracılığıyla eklerseniz, bunlar da Bağlantılı Çerçeveler ve Kütüphanelere eklenir. Bağlantılı Çerçeveler ve Kütüphanelerdeki üç girişi silmek sorunu çözecektir.

Xcode'u yeniden başlatma ve Mac'i yeniden başlatma gibi sihirli yöntemler bana çalışmıyor.


Biçimi geliştirdiğiniz için teşekkür ederiz. Daha iyi görünüyor. "Bağlantılı Çerçeveler ve Kütüphaneler" iki değil, bir bölümdür. "Ve" harflerini kalın olarak değiştiriyorum. @ Bartłomiej
Arbipher

Ua 来 shua fen zi shu bu ding
icemelon

2

Yalnızca "Bağlı Çerçeveler ve Kütüphaneler" yerine "Katıştırılmış İkili" olarak Çerçeve Ekleme - Sorunum düzeltildi.

Ayrıca Gömülü İçerik İçeriği Swift Kodu bayrağını EVET olarak ayarladım.


1

OS X'in Son Sürümüne Yükseltme (Yosemite)

Saatlerce deneme yanılma sonrasında bu sorunun çözümüne geldim. - Bu durum sizin durumunuz için geçerliyse.

Mac OS X'imi Mavericks'ten Yosemite'ye yükseltene kadar aynı sorunu yaşadım. - Sorunumu düzeltti, umarım senin de düzeltir


1

Apple ve yeni sertifikalar dahil olmak üzere web'de bulunan tüm çözümleri denedim. Başarısız.

6 ay denedikten sonra xcode'u çalıştırmanın tek yolu macbook'umda yeni bir hesap oluşturmaktı.


1

Bu kitaplığı Derleme Aşamalarınızdaki "Dosyaları Kopyala" segmentine eklerseniz genellikle bu hata kaybolur.


Bu benim için XCode 7.2.1'de çalıştı. Derleme Aşamaları panelinde + kullandım, Yeni Kopya Dosyaları Fazını seçtim, ardından çerçeveyi çalışma alanı ağacından Dosyaları Kopyala bölümüne sürükledim. Sonunda Hedef: Çerçeveler'i seçtim. Temiz bir derlemeden sonra uygulamam beklendiği gibi başladı.
Rob Smallshire

1

Ve yukarıdakilerin hepsi size yardımcı olmazsa ve gerçekten hayal kırıklığına uğrarsanız ... En iyi hileyi deneyin: Cleanve sadece emin olmak için Clean Build Folder. :) Umarım birine yardımcı olur!


1

Bu çözümlerin hiçbiri benim için sürekli çalışmıyor gibi görünmüyordu; her başarılı koşudan sonra tekrar başarısız olur. "Katıştırılmış İçerik Hızlı Kod İçerir" bayrağı benim için her zaman EVET olarak ayarlanmış.

Xcode'u 6.3 uyumlu olarak ayarladığım anlaşılıyor. Tekrar 3.2 uyumlu olarak değiştirmek sorunu çözdü:


Teşekkür ederim! Diğer her şeyi denedim. Tekrar 3.2 olarak değiştirdim, projeyi temizledim, çalıştı Xcode bir yeniden başladı
gabriellanata

1

Ben de bu sorunu yaşadım, sadece yerini değildi libswiftXCTest.dylib.

Çözüm XCTest.framework, içinde Testler hedefine eklemekti Build Phases/Link Binary with Library. Ana hedefi oluşturmaya çalışırken bile bu hatayı alıyordum.


0

Bu, eski bir projeye Swift diliyle yeni bir Bugün uzantısı hedefi eklediğimde ortaya çıktı. Projeyi önerilen ayarlara güncelleyerek kolayca düzeltilebilir. Xcode 6.0.1


0

İOS 8.1.1 ile bir iPhone5 üzerinde test eden Mavericks, Xcode 6.1.1'i kullanarak da aynı sorunu yaşadım. Yeni sertifikalar ve ön hazırlık profilleri de dahil olmak üzere olası tüm çözümleri denedim, ancak hiçbir şey yardımcı olmadı. Ben değişiklik yaptım Embedded Content Contains Swift Codeve Runpath Search PathsProje düzeyi ve Hedef düzeyde hem.

Şimdi Yosemite'i kurdum ve başka değişiklik yapmadan çalışmaya başladı.


0

Burada aynı sorun, benim için Crashlytics / Fabric / Beta / Twitter / Her ne diyorlarsa, kendilerine gömülü çerçevelerin eksik olduğu bir ikili dosya yüklemekti. Bir arşiv oluşturup daha sonra bir Enterprise derlemesini standart şekilde dışa aktarırsam, bir cazibe çalıştılar.


0

Çevrem: Cocos2d 2.0, Box2d, Amaç C

Yukarıdaki diğer yanıtları yapmanın yanı sıra sonunda Genel sekmesine gittim ve WatchKit'i İsteğe Bağlı hale getirdim.

Hedefler: Genel: Bağlantılı Çerçeveler ve Kütüphaneler: WatchKit.framework: İsteğe bağlı


0

Aylar ve aylar burada her şeyi denedikten sonra ... Deliliğin tanımı ... Xcode'u yeni bir Mac kullanıcısı altında başlatmak benim için çözdü.

~ / Library / Developer / * yazılımını kaldırdım ve Xcode'u yeniden yükledim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.