Yanıtlar:
Benim için önceki çözümlerin hiçbiri işe yaramadı. ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
Yapı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!
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
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.
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.
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.
Xcode'u, ardından bilgisayarı ve iPhone'u yeniden başlatın
Proje oluşturma ayarlarına gidin ve Always Embed Swift Standard Libraries
(önceden Embedded Content Contains Swift Code
) işaretiniYES
Proje oluşturma ayarlarına gidin ve eklemek @executable_path/Frameworks
için Runpath Search Paths
seçenek
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
@executable_path/../Frameworks
iOS 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.
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
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.
Çö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!
Benim için sorun, Apple Worldwide Geliştirici İlişkileri Sertifika Yetkilimin geçersiz olmasıydı.
Buradan indirin: https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
Anahtarlık Erişimi'ne sürükleyip bırakın, projeyi temizleyin ve çalıştırın.
Hızlı kaynak dosyaları eklemeye başladığım bir Obj-C projem vardı. Aşağıdakiler benim için sorunu düzeltti:
RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
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.
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 ..
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:
DerivedData
ve Build
dizinlerini de silebilirsiniz . Konumu için Tercihler bölümüne bakın DerivedData
. Build
proje klasörünüzde olmalıdır.@executable_path/Frameworks
. Bu kolay şeyler. Kendi komut satırı derlemenizi yapıyorsanız, .ipa
karşıya yüklemek için kendi dosyalarınızı yaratıyor olabilirsiniz . Bu durumda aşağıdakileri sağlamanız gerekir:
SwiftSupport/iphoneos
sü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
.codesign
kütüphaneler ve çerçeve dosyaları (altında Frameworks
yer .app
birinci ve daha sonra tüm oturum klasörüne) .app
ağacı. .app
Ağaç bir ile imzalanmış olmalıdır entitlements.plist
ama 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.
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ü.
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.
Runpath Search Paths
Derleme ayarını: olarak ayarlayın $(inherited) @executable_path/Frameworks
. Çö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.)
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"
Üç ç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.
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.
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
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ı.
Bu kitaplığı Derleme Aşamalarınızdaki "Dosyaları Kopyala" segmentine eklerseniz genellikle bu hata kaybolur.
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ü:
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.
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
İ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 Code
ve Runpath Search Paths
Proje düzeyi ve Hedef düzeyde hem.
Şimdi Yosemite'i kurdum ve başka değişiklik yapmadan çalışmaya başladı.
otool