Çerçeve bulunamadı GoogleToolboxForMac


82

Firebase'imi "kapsül güncellemesi" aracılığıyla güncelledikten sonra, aşağıdaki gibi bir hata alıyorum:

ld: warning: directory not found for option '-F/Users/bennysantoso/Library/Developer/Xcode/DerivedData/FCM-atfcxuircoryufazlomgwfgmvaqm/Build/Products/Debug-iphonesimulator/GoogleToolboxForMac'
ld: framework not found GoogleToolboxForMac
clang: error: linker command failed with exit code 1 (use -v to see invocation)

İşte benim Pod dosyam:

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
pod 'Firebase/Core'
pod 'Firebase/Messaging'

target 'BB' do
  # Comment this line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for BB

  target 'BBTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'BBUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

Bu hatayı bilen var mı?

GoogleToolboxForMac ve Firebase arasındaki ilişkileri araştırıyorum, ancak sadece biraz bilgi alıyorum.

Bilginize, Swift 2.3 ve Firebase 3.8.0 kullanıyorum.

Sağlayabileceğiniz her türlü yardım için minnettar olacağım. Teşekkürler!


2
Benim için aynı .. kimse yardımcı olabilir mi? Bütün gün bunun üzerinde çalıştım: / Aynı kütüphanenin eski sürümlerini kullanmanın GoogleToolboxForMac kullanmadığını ve mükemmel şekilde çalıştığını fark ettim :(
Santi Iglesias

Diğer yığın akışı yanıtlarından, pod dosyama aşağıdakilerin tümünü eklemeyi denedim, ancak yine de çalışmıyor: pod 'Google / Analytics' bölmesi 'Firebase / Core' bölmesi 'Firebase / AdMob' # GoogleToolboxForMac eksik hata bölmesi 'Firebase / Messaging'i düzeltmeye çalışıyorum 'pod' GoogleToolboxForMac / Logger 'bölmesi' GoogleToolboxForMac ',' ~> 2.1 '
Charlie Seligman

Öncelikle, Podfile'ınızın formatı eski (Q4 / 2016). Onu kaldırın ve 'pod init'i kullanarak yeni bir tane oluşturun. Aşağıda önerildiği gibi xcodeproj değil çalışma alanını kullanın.
igraczech

Yanıtlar:


168

Ben de aynı hatayı aldım. Bölmeleri yükledikten sonra aşağıdaki mesajı göreceksiniz.

[!] Lütfen mevcut Xcode oturumlarını kapatın ve bundan sonra bu proje için MyApp.xcworkspace'i kullanın.

Bunu ilk kez fark etmedim ve projeyi normal xcodeproj dosyasını kullanarak oluşturmaya çalışıyordum. Bu mesajı gördükten sonra doğru projeyi açtım ve iyi çalıştı.

Bu projeyi açtığınızda, iki alt projeniz olduğunu fark edeceksiniz. Biri sizin projeniz, diğeri ise Pods projesi olabilir.


40

Çerçeve Bulunamadı

Bölmeleri kullanırken genellikle bu sorunla karşı karşıyayız.

Bunun iki ana nedeni var

  1. Biz açtığınızda .xcodeproj yerine dosyayı .xcworkspace bunda izaaz-yunus'ait belirtildiği gibi Yanıt

  2. Ne zaman Yapı Aktif Mimarlık Sadece ayarlandığında Evet içinde Yapı Ayarlar

    Bu, proje hedefi ve ayrıca pod projesindeki tüm hedefler için geçerlidir.

Ana Proje Ekran Görüntüsü Yalnızca Aktif Mimari Oluştur'u Hayır olarak ayarlayın

Pod Projesi Ekran Görüntüsü görüntü açıklamasını buraya girin

  1. Yapı Ayarlarını seçin (ana projenin, her ikisini de bölme projesi)
  2. Her Hedefi tek tek seçin
  3. Set Oluşturma Aktif Mimarileri için No her hedef için

Sonunda projenizi temizleyin ve yeniden oluşturun.


bir yazım hatası var mı, # 2'de "evet" diyorsunuz ancak görüntüde "hayır" diyorsunuz, teşekkürler @Vinay Kumar
greenridinghood

# 2 soruna neyin neden olduğunu anlatıyor ve görüntü, sorunun çözülmesi için ayarların nasıl görünmesi gerektiğini anlatıyor
Vinay Kumar

Diğer tüm çözümler benim için işe yaramıyor, örneğin: Tüm pod kitaplığı için Yalnızca Aktif Mimari Oluştur'u HAYIR olarak ayarlayın
tamtoum1987

18

Benim durumumda tüm entegrasyon iyi yapıldı ve ayrıca bölmeyi kaldırmak ve yeniden yüklemek için çok fazla zaman denedim, ancak başarılı olamadı.

Son olarak aşağıdaki adımı deneyin

Projetc-> Şemaları Yönet -> "Bölmeler-ProjemAdı" onay kutusunu seçin

Ve başarıya ulaşın.


Simülatörde çalışırken bu hatayı aldım, ancak gerçek bir cihazda almadım.
mpwhitt

Bu benim için çalıştı, ancak projemi oluşturmaya çalışmadan önce bölmeler projesini de açıkça oluşturmam gerekiyordu. Neden olduğuna dair hiçbir fikrim yok.
pieSquared

1
Bunu yaptım ama uygulamayı simülatörümde çalıştıramıyorum?
Drailan John Terrible

2
"Pods-ProjeAdı" nı oluşturduktan sonra gerçek projeyi cihazımda çalıştırabildim ..
Tim Baas

14

GoogleToolboxForMac bir Firebase / Messaging bağımlılığıdır. İçinde Ayrıntılar podspec . "Kapsül güncellemesi" yaparken, Cocoapods GoogleToolboxForMac'i oluşturmak ve bağlamak için çalışma alanınızı ayarlamalıdır.

Çalışma alanınızla ilgili bir şeyin kötü durumda olduğu anlaşılıyor. Ürün -> Temiz yardımcı olur mu? Türetilmiş Verileri ve ModuleCache'yi (Xcode -> Tercihler -> Konumlar -> Türetilmiş Veriler) silmeye ne dersiniz?

Gerekli olmamalı, ancak Podfile'ınıza açıkça 'GoogleToolboxForMac / Logger' bölmesini eklemeyi deneyebilirsiniz.


Hayır, bu benim için işe yaramadı ... çalışma alanından proje açarak çalıştı!
Jayprakash Dubey

2
@JayprakashDubey Bu yanıt, çalışma alanından başladığınızı varsayar. İlk paragrafa bakın. Cevap, aynı belirtiye yol açan başka bir senaryoyu çözüyor.
Paul Beusterien

1
@PaulBeusterien Burada söylediğin her şeyi denedim ama yine de inşa edemiyorum.
Drailan John Terrible

6
bu çalışıyor
1. projenizi dizinlerden seçin
2. Genel'i seçin
3. Bağlantılı "çerçeveler ve Kitaplıklar" a "GoogleToolboxForMac.framework" ekleyin

Kitaplığı bağlamak benim için açıkça çözdü. Thanx!
Liquinaut

5

Bu, Derleme Ayarları -> LIBRARY_SEARCH_PATHS Ara'ya $ (devralınan) eklenerek düzeltildi.

Bu anlaşılabilir bir durumdur, çünkü projenizin bağlı olduğu kitaplıkların en son sürümleri için pod dosyanızı güncellerken, hata ayıklama çıktısı tüm $ (devralınan) bayrakları nereye eklemeniz gerektiğini size söyler: LIBRARY_SEARCH_PATHS OTHER_LD_FLAGS GCC_PREPROCESSOR_DEFINITIONS


$ (miras alınan) 'ı nereye koymalıyım +' ya basıp sonra $ (miras) yazmalı mıyım?
Drailan John Terrible

Evet, + tuşuna basıp $ (devralınan) girebilir veya düzenlenebilir kutuya çift tıklayabilirsiniz ve ardından $ (devralınan)
TomV

Bu benim sorunumu çözdü! Teşekkür ederim @TomV
Spettacolo83

2

Git: target -> Build Settings -> Other Linker Flags -> remove framework "GoogleToolboxforMAC"ve projeyi inşa et.


1

Cihazımda çalıştırmaya çalıştığımda da aynı sorunu yaşadım. Simülatörde iyi çalışıyordu. Yukarıdakilerin bazılarını denedim ama benim için işe yaramadı. Dosya .xcworkspaceyerine üzerinde çalıştığımı kontrol ettim .xcodeproj, bu yüzden bunu denedim. Aşağıdakileri yapmak için şu adımları izleyin:

  1. .Xc ... dosyasını kullanarak Xcode projesini (cocoapods projesi) açın.
  2. Proje gezgininde Bölmeler projesini seçin (soldaki mavi simge).
  3. Hedefler altında, Bölmeler-ProjeAdı (mavi simge) seçili olduğundan emin olun.
  4. Derleme Ayarları'na gidin ve projeyi çalıştıracağınız iOS sürümünde iOS Dağıtım Hedefini belirleyin.

Not: Ayarladığınızla aynıdır Project->Targets->Deployment info->Deployment Target.

Belki birisi bundan yararlanır.


1

Aynı hatayla karşılaşıyorsanız, XCode'unuzda şu adrese gidin:

Projeniz > hedefiniz > Bağlantılı Çerçeve ve Kitaplıklar'a ilerleyin ve Kitaplık girişinin soluk olup olmadığını kontrol edin:

XCode Linked Framework and Libraries ekran görüntüsü

Varsa, kaldırıp tekrar ekleyin. Benim durumumda, yinelenen girişlerim vardı ve bunlardan biri soluklaştı (XCode bunları diskte bulamadığında).


0

Pod kurulumunu yaptıktan sonra oluşturmaya çalıştığım projeyi kapattıktan sonra .workspace'i açtı ve sonra her şey mükemmel bir şekilde oluşturuldu.


0

Proje hedefinizde your-project.xcworkspace'i açın.

1) Terminali açın -> 2) $ cd / project_destination -> 3) $ projenizi açın.xcworkspace

veya dosyayı bulucuda açın


0

Hem proje hedefiniz hem de kapsül için "Aktif Mimari Oluşturma ayarlarınızın" aynı olduğundan emin olun. Her iki durumda da HAYIR ayarı sorunumu çözdü.


0

Sorunum, var olmayan belirli Bölmeleri kopyalayan bir / bin / sh betiğim olmasıydı. Bu onlardan biriydi. Komut dosyasını kaldırmak, yapı sorununu çözdü.


0

- GoogleToolboxForMac dosyaları için sabit sürücüde arama yapıyorum, şu konumlarda bulunur: / Users / Marco / Documents / iosapps / BomRetiro / Bom Retiro / Pods / Target Support Files

  • Ve sonra dosyaları şu klasöre kopyaladım: / Kullanıcılar / EvKlasörünüz / Kitaplık / Geliştirici / Xcode / DerivedData / Bom_Retiro-bsfjbazzzuwmuidqurdmjvdtnnsb / Build / Products

Ve sonra benim için usinf .xcworkspace dosyasını açarak çözüldü.


0

Tüm bunlardan sonra hala sorunları olanlar için. Bir cordova projesi üzerinde çalışıyorum ve sorun XCode 11.5'e yükselttikten sonra aniden ortaya çıktı.

Sonunda proje kökünde pods.json dosyasını açarak ve "FirebaseMessaging" e ait "libraries" içindeki girişi kaldırarak çözebildim. Onu kullanmıyorduk ve oraya nasıl geldiğini bilmiyorum. Ayrıca her yerde "Yapı Ayarı" -> "Yalnızca Aktif Mimari Oluştur" seçeneğini "Hayır" olarak değiştirdim.

Daha sonra .xcworkspace dosyasını tekrar açtım ve yapı geçti.


-1

Swift 5 Basit Cevap

Shift+Alt+Cmd+K  //Clean the project and Run again! 
//if not work restart Xcode and again clean it 
//Its will work happy coding

-6
    Friends, you must be confused with the exact result, as i was. So, i feel to share the 
screenshot that might be helpful. We all had to be careful that we need to change the flag for property **"Build Active architecture Only"** for **pod target** to **NO** And build, it would not show the linking error.

    See the attached screenshot.
    Screen Shot 1, Screen Shot 2, Screen Shot 3
    [Select Pods][1]
    [Select Targets in the pod][2]
    [Change flag to No][3]


  [1]: https://i.stack.imgur.com/E7mjX.png
  [2]: https://i.stack.imgur.com/wCwET.png
  [3]: https://i.stack.imgur.com/KVGKM.png

Tüm ekran görüntülerini yayınlamayın, lütfen sadece satır içi kısımlar sağlayın dostum.
igraczech

Bu işe yaradı, ancak ekran görüntülerini göndermek yerine çözümleri açıklamak daha iyi olurdu. Çözüm, proje ve Kapsül hedeflerinde Yalnızca Geçerli Kemeri "Hayır" olarak değiştirmektir.
Ignacio Barrea
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.