ld: çerçeve bulunamadı Kapsüller


234

IOS projeme bir çerçeve eklemeye çalışıyorum ama inşa ettiğimde hep aynı mesajı aldım:

ld: çerçeve bulunamadı Kapsüller

clang: hata: linker komutu çıkış kodu 1 ile başarısız oldu (çağrıyı görmek için -v kullanın)

Ben Podsdizinimi kaldırmaya çalıştı ve sonra pod install ben .xcworkspacepod kurulum günlükleri yazılmış gibi açın , ben xcode projeyi temizlemek ve sonra inşa etmeye çalışın ama çalışmaz ..

Pod dosyam şöyle:

xcodeproj '/Users/guillaume/project/Mobile/iOS/FoodPin/FoodPin.xcodeproj'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'SwiftHTTP', '~> 0.9.2'

Xcode sürümüm 6.3.1

Teşekkür ederim,


1
libpods.aHedefinizin "Bağlantılı Çerçeveleri ve Kütüphaneleri" nde olup olmadığını kontrol ettiniz mi? Ve Yapı Evrelerinizde de?
BoilingLime

Bunu çözmeyi başardın mı? Aynı hatayı alıyorum
Christopher Francisco

@ChristopherFrancisco Çözdüm, cevabımı kontrol et.
Arbitur

1
Bu Nasıl Cevap Verilir [1] sorunumu çözdü! Umarım yardımcı olur [1]: stackoverflow.com/a/31161871/1557663
Mário Carvalho

@ MárioCarvalho Cevabımın daha uzun ve daha başlangıç ​​dostu bir versiyonu bu x)
Arbitur

Yanıtlar:


524

Gelen Project Navigatorklasöründe Podsbir vardı Pods.frameworkorada hangi kırmızı edildi. Şurada da mevcuttu Linked Frameworks and Libraries. Her iki referansı da kaldırdım ve hata kayboldu.

TL; DR

Şuradan kaldır Pods.framework:

  • Adlı klasör Pods
  • Linked Frameworks and Libraries

5
Ben use_frameworks ekledikten sonra bu sorunla sona erdi düşünüyorum! benim Podfile ve daha sonra yorum. Pods.framework referansının silinmesi sorunu çözdü.
StephenT

2
@StephenT Evet Ben de ilk yaptığım, use_frameworks!sonra da olmadan ve belki de Pods.frameworksırasında düzgün bir şekilde silinmediğini yaptığım şey olduğuna inanıyorum pod install. Cocoapod'larda bir böcek olabilir.
Arbitur

Bu iyi bir yanıt, örnek uygulamayı etkilemiyor, hala iyi çalışıyor
Gabriel Goncalves

3
Bu işe yaramazsa, cocoapods-deintegrate kullanmayı deneyin. Bu benim için bu sorunu çözdü.
nickdnk

2
Pod kurulumunu çalıştırdıktan sonra, bir şekilde Pods klasörümde "Pods_ <Proje Adı>". Çerçeve dosyası ile sonuçlandım. Bu dosyayı silmek, temizlemek ve yeniden oluşturmak benim için bu hatayı kaldırdı.
Caleb Faruki

209

Bu genellikle .xcworkspace yerine .xcodeproj dosyasının açık olmasından kaynaklanır.

'Pod install' dosyasını ilk kez çalıştırdığınızda, orijinal .xcodeproj ve bir Pods projenizi içeren bir .xcworkspace dosyası oluşturur. .Xcodeproj dosyanızı kapatmanız ve bunun yerine .xcworkspace dosyasını açmanız gerekir.

Bu, Xcode'un yeni proje sihirbazı aracılığıyla bir proje oluştururken yaygın bir sorundur - Cocoapod'ların doğru bir şekilde bağlanmasını sağlamak için gerekli olan bir çalışma alanında olmadığımı unuturum.


Teşekkürler ! Beni ilk kez karıştırıyor
Phi Nguyen

6
Açıklamanız başka yerde gördüğümden çok daha iyi. Neler olup bittiğinin farkında değildim. Teşekkürler!
Michael Yaworski

Arbitur'un cevabı ile birlikte yapıldığında, bu sorunu çözüyor. Teşekkürler!
user1577390

Bu benim sorunumdu. Teşekkürler!
Antonio Papalillo

projemin içinde .xcworkspace dosyası yok. ne yapmalı
Kartiikeya

126

Xcode 9, 10, 11, 11.5

https://github.com/CocoaPods/cocoapods-deintegrate yükleyin

pod deintegrate

sonra

pod install

1
Bir cazibe gibi çalıştı! Teşekkür ederim. Bu, bu hataya neden olan yeniden adlandırılmış bir hedefe yönelik eski bir başvurudan kurtuldu.
Alex Obenauer

1
Kahramanımsın! ;)
Swissdude

1
Vay be günümü kurtardın! dün sıkışmış ve sonunda Xcode 10 ile çözüldü. Teşekkürler!
Purushottam Padhya

1
Bu doğru cevap olmalı, en güvenli yaklaşım. Aksi halde düzeltilemeyen bilinen bir hata olmadığı sürece, CocoaPods gibi otomatik öğeleri kullanırken manuel adımlar atmayın.
Gobe

1
bu bana yardım et, inanılmaz dostum!
Sruit A.Suk

51

Ben kırmızı silerek bu hatayı temizledi .frameworkbir klasörde bulunan edildi dosyaları Frameworksiçinde project navigator. Bence bu da ayarlar Linked Frameworks and Librariesbölümündeki ilgili kırmızı girişleri otomatik olarak sildi General.

Başka bir sorunu düzeltmek için bölmeleri temizliyorum / yeniden yüklüyorum. Belki de bu kırmızı çerçeve dosyaları ve girişler önceki bir pod kurulumundan artık kaldı?


Evet! Benim sorunum Genel ayarların Bağlantılı Çerçeveler ve Kütüphaneler ve bir metin arama gelmedi bulmak zor oldu!
Alistair Cooper

Benim durumumda, çerçeve dosyaları kırmızı bile değildi, sadece gri renkteydi. Ama onları silmek sorunu çözmüş görünüyor!
Swindler

29

Kim bu sorunu bulur. NativeScript kullanıyorum ve aynı hatayı aldım.

Bu .xcodeproj dosyasını açtığımdan dolayı, ancak .xcworkspace dosyasıyla projeyi açmamız gerekiyor.


27

Bu, Podfile'ımı güncelledikten ve bir kapsül güncellemesi yaptıktan sonra başıma geldi.

Herhangi bir nedenle, projemin altında 'Hedefler'> Genel> Bağlantılı Çerçeveler ve Kütüphaneler altında görünen bir "Pods_ [ProjectName]" çerçeve dosyası vardı.

Bunu silmek ve ardından temiz / yeniden oluşturmak sorunu çözdü.


2
Bu, proje adlarını değiştirdiğinizde ve eskisini temizlemeniz gerektiğinde olur. +1
Babbz77

Bu benim için çalıştı. Proje adlarını değiştirmedim, ancak Swift'i uzun süredir devam eden Objective-C projesine ekledim.
Luffy

24

Benzer bir sorunum vardı

framework not found Pods_OneSignalNotificationServiceExtension

Aşağıdakiler kaldırılarak çözüldü. Git hedef OneSignalNotificationServiceExtension> Yapı Faz> Kütüphaneleri ile bağlantı İkili ve silme Pods_OneSignalNotificationServiceExtension.framework Burada boş olmalı. Umut bu yardımcı olur. Şerefe.


Bu benim için sorunu düzeltti. Benim özel durumum bir iOS hedefim Uygulamam olması. Sonra ikinci bir hedef oluşturmak gerekiyordu ve MyAppFirst, MyAppSecond hedefleri vardı. Cocoapods ihtiyaç duyduğu şeyi inşa edebildi (Pods_MyAppFirst, Pods_MyAppSecond), ancak artık mevcut olmayan Pods_MyApp'a bağlanmaya çalışıyordu. Düzeltmeye çalışırken, bir "pod -install" gerçekleştirdiğimde sıfırdan yeniden oluşturmaları için çalışma alanı dosyamı ve Pod klasörünü attığımı belirtmek istiyorum, ancak bu yardımcı olmadı.
xdeleon

@Sharukh Mastan Bunu bir kapsül kurulumundan sonra nasıl yapacağınız hakkında bir fikriniz var mı? Her Pods_OneSignalNotificationServiceExtension.framework taktığımda, OneSignalNotificationServiceExtensionhedefin bağlantılı çerçevelerinde ve kütüphanelerinde beni rahatsız ediyor .
Sethmr

@Sethmr Ne yazık ki hayır. Benim durumumda, ancak, her zaman a sonra değil pod install, rastgele.
Sharukh Mastan

@SharukhMastan Benim konu açıyordu *.xcodeproj/*.xcworkspaceüzerinde *.xcworkspacebenim VSTS .yml otomasyon komut dosyası ile. Bir GUI ile daha iyi biliyorum, ama hala senaryo arazi gereksinimlerine alışmak.
Sethmr

15

Bu hatayı alıyordum çünkü projemi yeniden adlandırdım ve pod dosyasındaki projenin adını değiştirdim, ancak projem orada olmayan eski ada atıfta bulunuyor ve bu hataya neden oluyordu. Bundan kurtuldum

pod deintegrate

bunu takiben

pod install

Evet! Sürüm 12.0'dan 9.0'a düşürülürken aynı sorunu yaşadım. Yukarıdaki, Podfile'mdaki hedef sürümü projede bulunanlarla eşleşecek şekilde değiştirdikten sonra çalıştı.
Richard Bown

İyi cevap. Teşekkür ederim.
'19


10

.Framework 'u "Projeniz-> Genel-> Bağlantılı Çerçeve ve Kütüphaneler" listesinden kaldırın.


Bu, projeyi yeniden adlandırdıktan sonra iki tane vardı. Teşekkürler!
Jimmy

10

Değiştim çünkü başıma Deployment Targetiçinde Generalama değiştirmek için unuttum Deployment Targetin Pods > General. Dağıtım hedefini değiştirme


Benim için de düzeltildi, Xcode 11.2 / Cocoapods 1.8.4. Hata mesajının ana nedene benzememesi rahatsız edici ...
Jonathan Ellis

1
Benim için düzelttim - bunu her iki yerde de değiştirmem gerektiğini bilmiyordum. Bir ton teşekkürler!
hakazvaka

6

Benim durumumda cihazlar ve simülatör üzerine inşa edebilirim, ancak arşivlerken aynı hatalara sahibim. Çözmek için şunu yapmalıyım

  • Kaldırmak Pods.framework
  • Pods-<project-name>.frameworkgömülü olduğundan emin ol

Ayarları HEDEFLER -> Bağlantılı Çerçeveler ve Kütüphaneler'de bulabilirsiniz.



4

Aşama 1

Yapmanız gereken ilk şey, Podfile, Podfile.lock, Pods klasörünü ve oluşturulan çalışma alanını kaldırmaktır.

Adım 2

Ardından, .xcodeproj dosyasında, Pods.xcconfig dosyalarına ve libPods.a dosyasına yapılan başvuruları kaldırın.

Aşama 3

Derleme Aşamaları proje sekmesinde, Bölmeleri Yönet Manifest.lock bölümünü (açık), Bölme Kaynaklarını Kopyala bölümünü (alt) ve Bölme Kaynaklarını Göm (alt) silin.

Adım4

Pods.framework öğesini kaldırın.

Yapmak isteyebileceğiniz tek şey, daha önce kullandığınız kütüphanelerin bazılarını içermektir. Bunu, bölme klasörlerindeki klasörleri herhangi bir klasöre projenize sürükleyerek yapabilirsiniz (bunları Destek Dosyalarım klasörüne koymayı tercih ederim).

Benim için çalıştı.


Adım 3 benim durumumda çalıştı, adım 3 -> cmd + alt + shift + k.
ViruMax

4

Büyük olasılıkla bakla projenizde çalışmak için çalışıyoruz değil mi? Bunu yapmanın tek yolu CocoaPod'ları kullanan ayrı bir proje oluşturmaktır.

Kullandığınız tüm çalışma alanlarını kapatın.

Sonra, Podfile'ınızın tamamen hazır olduğundan emin olun.

Komut satırında, dosyanızın olduğu her yerde, komutu yazın:

pod deintegrate

Ardından, kapsül agianınızı kurun.

pod install or pod update

Artık geliştirme yapmak için projenizin yeni çalışma alanını kullanabilirsiniz. .Workspace adlı bir dosya arayın. Bu dosyayı kullan!

İşte CocoaPods kullanımı hakkında bir rehber


Sadece bu bir hata ile 2 gün mücadele sonra benim için çalıştı.
Mitesh Dobareeya

3

Xcode 8.3 kullanıldığında kabul edilen cevap benim için çalışmadı. Diğer birçok çözümü denemiştim ama @Elliott Davies cevabı benim için onu düzeltti. Netlik için bir ekran görüntüsü ekliyorum. Nedense, Xcode artık var olmayan önceki podfile kurulumlarını bağlamaya çalışıyordu. Tek yapmam gereken ekstra referansları silmekti ve her şey işe yaradı.Xcode Bağlantılı Çerçevelerin ve Kütüphanelerin Ekran Görüntüsü


3

Bu sorun, projede herhangi bir değişiklik yapmadan aniden gerçekleştiği için beni deli ediyordu. Ben bu konu (ve diğer ilgili) tüm önerilen çözümleri denedim ve hiçbiri sorunu çözdü.

Diğer projelerimden farklı olan tek şey (ki bu iyi derlendi), bu proje adının bir aksan içermesi (bir Fransız aksanı, "é"). Projeyi ve ilgili tüm dosyaları yeniden adlandırdım ve sonunda işe yaradı!

Belki de bu Xcode 10'a güncelleme ile ilgilidir, çünkü bu proje daha önce iyi çalışıyordu ...

EDIT: Ayrıca -proje adında bir proje kullanırken başarısız gibi görünüyor ...


1
Hayatımı kurtardın
Florian Mac Langlade

1
Hayatımı da kurtardım!
Dan

Projeyi yeniden adlandırmanın dışında bir çözüm var mı?
anestis

@anestis Ben öyle düşünmüyorum. Projeyi hızlı bir şekilde yeniden adlandırmak için, bu yanıttan çok iyi bir iş yapan stackoverflow.com/a/48004237/4894980 komutlarını öneriyorum !
AnthoPak

3

Benim durumumda, doğru inşa edildiğini bildiğim bir dal arasındaki farkı karşılaştırdıktan sonra, Podfile'mda bu satırı fark ettim:

platform :ios, '11.0'

Xcode'daki hedeflerim 10'a ayarlanmışken hedef sürümümü yanlışlıkla 10'dan 11'e yükseltmiştim. 10'a geri dönmek sorunumu çözdü benim için.

Hedef iOS sürümlerinizin doğru ayarlandığından emin olun.


Günümü kurtardın !! Teşekkür ederim
Mayank Patel

3

Benim sorunumu bu şekilde çözerim. ve şimdi bu cevabı yazarken çalışır:

Öncelikle, yukarıdaki en sabit yolu deniyorum,

Pods_xxx.framework bağlantı kitaplıklarından kaldırmak ve hedefin inşa aşamalarında çerçeve yararlıdır ve sorun ortadan kalkacaktır, ancak gelecek sorun ben artık Pods.framework ithal edemez.

Ve sonra, gerçek sorunu anlayabilmem için xcworkspace config'i yeniden başlatmaya çalışıyorum. bu yüzden koşarım

pod deintergate

ve bölmemizi tekrar yükleyin:

pod install

Bu iş kaymakam, ama sorun hala orada, ama gerçek sorun Pods_xxx.framworks derlenemedi cocoapods yapı komut dosyası ile başarılı olduğunu anlıyoruz. Sorunu çözmenin gerçek yolu bu bence.

Son olarak, projemin şemasını düzenlemeye çalışıyorum:

Kapsül şeması düzenlenmemiş

ve ben yönetmek içine Pods düzeni eklemek:

resim açıklamasını buraya girin

ve bu Pods.framework uygulamasını ayrı ayrı oluşturursanız, Pods.framework simgesinin gerçekten yeniden gerçekleştiğini göreceksiniz:

resim açıklamasını buraya girin

ve şimdi "çerçeve bulunamadı Pods_xxxx.framework" sorunu düzeltmek düşünüyorum ama aslında başka bir sorun geliyor:

resim açıklamasını buraya girin

bu yüzden inşa ayarı ve düzenlemek gitmek "Framework Search Path"ile "${inherited}", ve şimdi tüm sorunları, tezahürat söner !!!! :)

resim açıklamasını buraya girin


Pod hedefi ekleme ve oluşturma aslında kapsül oluşturmada neyin yanlış olduğunu gösterdi. Bizim durumumuzda bu, hızlı sürüm çakışmasıydı. Teşekkürler!
green0range

Tüm adımları takip etmedim. O ${inherited}yolu ekledim , sonra yaptım Product->Clean Build Folderve işte bu, şimdi sorunsuz bir şekilde inşa ediyor.
Starwave

2

Bölmeyi kaldırdıktan ve güncelledikten sonra hala aynı sorun vardı.

Önceki geliştiricinin , sorunu oluşturan Çerçeve adı ('benim durumumda-çerçeve' OGVKit ') ile ' Oluşturma Ayarları -> Diğer Bağlayıcı Bayrakları'na bayrak koyduğunu gördüm .

Bu bayrağı sildikten sonra proje düzgün bir şekilde oluşturulur.


Çok teşekkür ederim! Yapı Ayarlarında kalın olan şeylere her zaman dikkat etmeniz gerekir !
Marcio Granzotto

2

Bu sorunu yaşadım çünkü platformdoğru ayarlayamadım .

Bu yüzden macOS uygulamamda platformun:

platform :ios

onun yerine

platform :osx

1

İndirilen projeyi seçip CocoaPodsinşa ederek bu sorunu çözdüm, Çalıştırma çubuğunda görünmesi için Düzenleri Yönet'i tıklayabilirsiniz. Ardından projenizi yeniden oluşturabilirsiniz. Umarım yardımcı olur.


1

Benim durumumda, kaldırdığım kütüphaneye bir referans vardı

Hedefler> Derleme Ayarları> Çalışma Yolu Arama Yolları

Kitaplığı Podfile'dan kaldırmak ve güncelleştirmek açıkça kaldırmadı, bu yüzden manuel olarak yapmak zorunda kaldım ve şimdi her şey çalışıyor.


1

Önceki cevapların hiçbiri benim durumumdaki temel soruna işaret etmedi. Umarım bu başka birine faydalı olabilir.

Benim durumumda , pod dosyamı projemin kökünde düzenlemek zorunda kaldım . Pod dosyamı ilk oluşturduğumda, hızlı statik kütüphaneler desteklenmedi. Bu yüzden use_frameworks!benim podfile hedeflerimin her birinin altında kullanıyordum :

ÖNCE

...
target 'targetName' do
   use_frameworks!
   pod 'podName', '~> 0.2'
end

SONRA

...
target 'targetName' do
   pod 'podName', '~> 0.2'
end

use_frameworks!Pod kurulumunu her çalıştırdığımda çerçeveleri yüklemeye devam eden pod dosyamdan kaldırdım . Bu satırı kaldırdıktan sonra, pod installtekrar çalıştırdığınızdan ve Xcode'daki Frameworks klasörünüzdeki kırmızı .framework referanslarından herhangi birini kaldırdığınızdan emin olun . (Benimki aşağıda belirtildiği gibi farklı görünmesine rağmen.)

Resim artık gerekli olan .framework dosyalarının kaldırılması

use_framework! Burada daha fazla bilgi edinebilirsiniz .


0

.Xcworkspace dosyasını açtı ve hala aynı hatayı aldıysanız:

delete all the contents of Pods directory and from command line write "pod install" to resolve the issue.

0

Kapsül yükleme veya güncelleme işleminden sonra oluşturulan çerçeveler klasörünü silme


0

Sorunumu çözen başka bir şey ise Hedef -> Yapı Ayarları -> Diğer bağlayıcı Bayrakları altına girip "-framework" ve çerçevenizin "name" sini silmek.

Bir kapsülü çıkarmaya çalıştığımda oldu.


0

.frameworkDosyayı Bağlantılı Çerçeve ve Kitaplıklar'a sürükleyerek çözdüm

Diyelim ki hata nedeniyle bu sorunu yaşıyordum FIRAnalyticsConnector not foundve sadece Bağlantılı Çerçeve ve Kütüphaneler'eFIRAnalyticsConnector.framwork dosyayı sürükledim ve sorunum çözüldü


0

Buradaki her cevabı denedim ve hiçbiri işe yaramadı. Dağıtım hedefini 10.0'dan 11.0'a yükselterek işe koyuldum. Bunun neden düzeltildiğine dair hiçbir fikrim yok, ancak Xcode 10.2.1'e yükseltme ile ilgili olduğundan şüpheleniyorum.


0

Belki de aniden .xcodprj dosyasının yanlış dosyasını açıyorsunuz .xcworkspace


Bu tür bir yorum olarak göndermek daha iyidir.
Mesud Rahimi

0

Lütfen içindeki Yürütülebilir dosyanızı kontrol edin. resim açıklamasını buraya girin

  1. Yürütülebilir dosya adı herhangi bir uzantı olmadan böyle olmalıdır.

  2. Böyle gösteren bazı çerçeveler resim açıklamasını buraya girin

  3. Terminal goto .framework dizinini kullanarak aşağıdaki komutu kullanın lipo -create FrameworkName-x86_64 FrameworkName-armv7 FrameworkName-armv7s FrameworkName-i386 FrameworkName-arm64 -output FrameworkName

tek bir yürütülebilir dosya oluşturduktan sonra bu dosyaları silin resim açıklamasını buraya girin

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.