2014-09-12 9 views
11

Ben cihaz için XCode 6 GM benim proje oluşturmak için çalışıyorum (baz SDK sürümü 7.1) ve ben bağlayıcı hatası alıyorum cihaz için bina:XCode 6 GM: bağlayıcı hatası (Metal bulunamadı)

ld: framework not found Metal for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Aynı proje, XCode 5'te proje ayarlarında herhangi bir değişiklik yapmadan mükemmel bir şekilde oluşturulur. (Ayrıca, simülatör için XCode 6'da da başarılı olun.)

SDK 7.1 ile yapıyorum, neden XCode 6 yine de Metal'e bağlanmaya çalışıyor? Aynı soruna sahip olmak

+2

Projeyi temizlemek benim için onu tamir etti. – c0d3Junk13

+0

8.0 SDK'ye karşı 7.1 dağıtım hedefi mi demek istediniz? Xcode 6'nın 7.1 SDK'sı yoktur. –

+1

@JeremyHuddlestonSequoia no, 7.1 SDK demek istedim. XCode 5 dizininden kopyaladım. – HiveHicks

cevap

9

Uygulamayı Xcode 6'da simülatöre veya bir telefona işaret ettim, ancak arşivleme yaparken bu hatayı alıyorum. IOS 7.1 SDK kullanıyorum.

Cocoapod'ları kullanıyorum ve sorunun çözümü için "Bağlantı Çerçeveleri Otomatik Olarak" ayarını podlar projesi için NO olarak ya da bir aygıt takılıyken arşivleme yaparak ve şemaya hedeflenen bir bağlantıyı hedefleyerek sorunu çözebileceğimi öğrendim. cihaz sadece 'iOS Cihazı değil.

Bu, Xcode 6'nın varsayılan proje oluşturma ayarlarından kaynaklanan bir sorundur.

Düzenleme: Xcode 6 desteklenen bir yapılandırma değildir iOS 7.1 SDK kullanarak http://www.appsee.com/blog/dev/xcode-new-link-frameworks-automatically-fix-framework-not-found-metal-for-architecture-armv7

+2

Bu soruya gerçekten cevap vermiyor. Farklı bir sorunuz varsa, [Soru Sor] 'u tıklayarak sorabilirsiniz (http://stackoverflow.com/questions/ask). Yeterli [itibara] sahip olduğunuzda [http://stackoverflow.com/help/] de bu soruya daha fazla dikkat çekmek için [bir hediye] ekleyebilirsiniz (http://stackoverflow.com/help/privileges/set-bounties). neyin-itibar). – MrTux

+1

Bu, @MrTux sorusunu cevaplıyor ... verilen bir çözüm var ancak OP, mevcutsa hala daha iyi bir tane istiyor. – Ben

+0

Kocoapodları sürüm kontrolü altına aldım ve Link Frameworks'lerini otomatik olarak HAYIR olarak ayarlayın ve onaylayın. Ekibim o günden beri problem yaşamadı ve Jenkins sunucum da mutlu. – RJDubz

-1

: İşte bu çözümün diğer bir açıklaması var. Linker burada doğru şekilde davranıyor. 7.1 SDK, Metal.framework'ı içermeyecek ve Metal.framework'a karşı bağlantı kurmayı istediniz. Metal.framework'ı kullanmak için iOS 8.0 SDK'yı veya daha sonra kullanmanız gerekir.

+0

Metal çerçeveyi kullanmıyorum. – HiveHicks

+0

Sağladığınız günlük, aksi açıkça belirtir. IOS 8 SDK'yı kullanmanızı öneririz çünkü Xcode 6 ile birlikte kullanılabilecek tek desteklenen iOS SDK. Daha sonra, Metal.framework'da nelerin getirildiğini görmek için Xcode projenizin hedef aşamalarına bakın. –

+0

BS. PC'nizde iki Xcode versiyonunun olmaması için 7.1 SDK'yı Xcode 6'ya bırakabilirsiniz. –

1

Aynı sorun, iOS 8.0 SDK (Xcode 6.0.1) sürümüne sahip bir kod altyapısında da vardı ve bu sorunu iOS 7.1 SDK (Xcode 5.1.1 sürümünde de olsa) kullanıyorum. Bu soruna sahip çok farklı bir proje var gibi görünüyor. Daha fazla ayrıntı için bkz. here.

Sorunun giderilmesi benim hedeflerim 'Build Phase'-settings,' Kütüphanelerle İkilemi Bağla 've CoreVideo.framework'ın' Product> Clean 'ürününü kaldırıp yeniden eklenmesiydi. Ürün> Çalıştır '.