Kesalahan CocoaPods pada Pembangunan Proyek

178

Saya tidak dapat membangun proyek yang menggunakan CocoaPods. Saya mendapatkan kesalahan berikut:

diff: /../Podfile.lock: No such file or directory
diff: Manifest.lock: No such file or directory error: 
The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.`

$ pod installtampaknya berfungsi dengan baik dan menambahkan PodsProyek ke Workspace saya. Saya sudah mencoba $ pod updatetetapi ini tidak membantu.

Tampaknya PODS_ROOTtidak diatur.

Podfile:

platform :ios, '6.0'

workspace 'Example.xcworkspace'
xcodeproj 'example/Example.xcodeproj' 

pod 'TestFlightSDK', '~> 1.3.0-beta.5'
pod 'TestFlightLogger', '~> 0.0.2'
pod 'CocoaLumberjack', '~> 1.6.2'
pod 'Reachability', '~> 3.1.0'
pod 'SBJson', '~> 3.2'
pod 'MKMapViewZoom', '~> 1.0.0'
Gangguan
sumber
3
Perbaikan "pod install" sederhana ini :)
onmyway133
Penting! [!] From now on use MyProject.xcworkspace.not te old `.xcodeproj '
Dawid Drozd
Ketika Anda menguji dalam sebuah emulator hanya ada layar putih
desigNerd

Jawaban:

171

Saya memiliki masalah yang sama ketika saya melakukan perubahan besar pada Podfile saya. Solusi saya adalah menghapus file ruang kerja dan menjalankannya pod installlagi:

rm -rf MyProject.xcworkspace
pod install
Asgoth
sumber
17
Berarti cocoapods tidak terpasang dengan benar. runsudo gem install cocoapods
asgoth
4
gem install cocoapodsbahkan lebih baik. Sebagian besar waktu sudoseharusnya tidak diperlukan dengan permata.
PatrickNLT
5
Jawaban Anda membuat saya senang. Saya terjebak di dalamnya selama berjam-jam. topi
shaikh
Terima kasih untuk ini, ini memperbaiki kesalahan. FWIW, saya mendapatkan kesalahan setelah melakukangem update cocoapods
rounak
Memperbaiki masalah. Mendapat kesalahan saat melakukan "pembaruan pod"
swebal
68

TLDR: Kemungkinan besar ini adalah bug dengan Xcode dan menutup dan membuka kembali proyek biasanya merupakan perbaikan yang paling sederhana. Dengan asumsi segala sesuatu yang lain dikonfigurasi dengan benar .


Saya sesekali mendapatkan kesalahan yang sama ketika menghapus Podsdirektori dan kemudian berjalan pod install.

Semuanya tampak benar di info proyek:

masukkan deskripsi gambar di sini

Namun, ketika saya pergi ke Pengaturan Build Buatan Pengguna target, entri PODS_ROOT sepenuhnya hilang atau kosong untuk satu konfigurasi atau lebih. Yang menyebabkan kesalahan saat membangun:

masukkan deskripsi gambar di sini

Perbaikan paling sederhana adalah dengan menutup proyek dalam Xcode dan membukanya kembali .

Jika Anda pergi ke Pengaturan Bangun target dan memfilter pada Semua , Anda sekarang akan melihat PODS_ROOTentri tanpa kesalahan:

masukkan deskripsi gambar di sini

Seharusnya sekarang dibangun tanpa kesalahan.


Catatan: Bahkan Contoh iOS AFNetworking resmi Cocoa Pods memiliki masalah ini, yang membuat saya percaya bahwa itu adalah bug dengan Xcode.

Perbaikan alternatif adalah mengubah konfigurasi secara manual None, lalu kembali ke nilai aslinya:

masukkan deskripsi gambar di sini

Masuk akal
sumber
1
Ternyata ini untukku! $ PODS_ROOT saya salah disetel
Alex Ryan
Setelah lama mencari perbaikan, saya bisa menjalankannya tanpa kesalahan berkat solusi Anda. Saya hanya perlu mengubah Konfigurasi ke Tidak Ada dan kembali ke Pod
Glogo
Ini BAIK menempatkan TIDAK ADA membantu.
32

Pergi ke target Build Settingsdan pastikan nilai PODS_ROOTsama dengan ${SRCROOT}/Podsdi bagian "Ditentukan Pengguna".

masukkan deskripsi gambar di sini

Jagie
sumber
Bagus sekali. Inilah yang dibutuhkan.
pr4n
Saya harus menambahkan PODS_ROOTke target saya dengan jalur ini dan violá (saya juga menambahkannya header search pathssebagai "$ (PODS_ROOT)" rekursif
Jacksonkr
Tidak BEKERJA Bagi saya.
30

pembaruan: a podfile.lockdiperlukan dan tidak boleh diabaikan oleh kontrol versi, itu melacak versi perpustakaan yang diinstal pada pemasangan pod tertentu. (Ini mirip dengan gemfile.lock dan composer.lock untuk manajemen ketergantungan rel dan php, masing-masing). Untuk mempelajari lebih lanjut silakan baca dokumen . Kredit diberikan ke cbowns .


Dalam kasus saya, apa yang saya lakukan adalah saya melakukan pembersihan rumah untuk proyek saya (yaitu percabangan tes integrasi sebagai submodule git .. menghapus file duplikat dll) .. dan mendorong hasil akhir ke repo remote git .. semua klien yang mengkloning repo saya mengalami kesalahan di atas. Terinspirasi oleh komentar Hlung di atas, saya menyadari bahwa ada beberapa skrip pod menggantung yang berusaha dijalankan terhadap beberapa file yang tidak ada. Jadi saya pergi ke fase build target saya, dan menghapus semua fase yang tersisa yang ada hubungannya dengan pod kakao (dan komentar Hlung yang ia sarankan hapus Copy Pods Manifest.lockdan copy pod resources.. milik saya bernama berbeda mungkin b / c saya menggunakan Xcode 5 .. the intinya adalah menghapus fase-fase build yang menjuntai) ..

abbood
sumber
1
Bukan Podfile.lockitu tujuannya : baca dokumentasi Cocoapods tentang "Bekerja dengan tim" untuk informasi lebih lanjut.
cbowns
@cbowns Anda benar, terima kasih atas komentarnya. Saya memperbarui jawaban saya.
abbood
12
Saya menghapus file xcworkspace saya dan menginstal pod, tetapi saya masih mendapatkan pesan kesalahan yang sama.
jowie
@ Janie sama di sini ... bisakah Anda membimbing saya jika Anda telah menyelesaikannya.
Bandish Dave
28

Jadi sepertinya CocoaPods tidak mengatur Konfigurasi untuk Proyek saya. Mereka harus didasarkan pada Pods.xcconfigyang ditemukan di Internet Pods/Target Support Files/Pods. Agar ini berfungsi, saya harus melakukan yang berikut:

  1. Seret file ini ke Proyek Xcode saya di Xcode, memilih untuk tidak menyalin.
  2. Sekarang ada referensi di proyek kami, kami dapat mengatur konfigurasi: masukkan deskripsi gambar di sini

Saya kemudian memiliki kesalahan build lain yang mungkin terkait atau tidak. Jalur ke skrip shell yang didefinisikan dalam Copy Pods Resourcestidak benar.

"${SRCROOT}/Pods/Pods-resources.sh"

Dipecahkan dengan salah. Tampaknya SRCROOT menambahkan direktori tambahan yang tidak ada di jalurnya. Jadi saya mengkodekan path ke folder Project.

Ini memungkinkan saya untuk membangun.

Mengapa begitu banyak hal yang seharusnya menghemat waktu Anda akhirnya memakannya?

Catatan: Silakan lihat jawaban @ abood untuk penjelasan.

Gangguan
sumber
27
Jika Anda melihat kesalahan ini karena Anda menghapus semua pod dari target, Anda tidak akan lagi memiliki skrip pod tetapi masih akan mencoba untuk menjalankannya. Anda harus pergi ke Target Anda Membangun Fase, dan menghapus Copy Pods Manifest.lockdan Copy Pods Resourcesfase. Dan juga menghapus libPods.adi Binary Link dengan Perpustakaan.
Hlung
@Hlung komentar yang sangat baik .. sebenarnya mengatasi akar penyebab masalah, saya mencoba solusi di atas dan saya masih berakhir dengan Podfile.lock (yang sebagian besar .gitignorefile dikonfigurasi untuk mengabaikan .. dan memang demikian) .. file itu seharusnya tidak tetap tinggal di sekitar .. Jika Anda menuliskannya sebagai jawaban, saya akan memberi Anda +1!
abbood
@abbood Tuliskan itu dan aku akan memberimu kemenangan.
Undistraction
Hanya ingin menambahkan bahwa masalah ini pada halaman Github CocoaPods menyebutkan memeriksa fase build untuk kemungkinan masalah yang tepat ini (bahkan lebih mirip karena saya memiliki beberapa target). Masalah membuat saya gulir ke bawah sini ....
DanBlakemore
22

Saya memiliki masalah yang sama dengan ini:

  1. Dalam Xcode:
    • Bersih
    • Hapus Data Berasal di Xcode / Window / Organizer / Proyek / Proyek Anda
    • Direktori pod (berisi file konfigurasi, hapus file, bukan hanya referensi!)
    • Menghapus semua referensi ke file konfigurasi pod untuk setiap target di Proyek / Konfigurasi (debug / rilis)
    • Dihapus "Target / Bangun Fase / Salin Sumber Daya Pods" dari semua Target
    • "Target / Bangun Pengaturan Dihapus / Ditentukan Pengguna / PODS_ROOT" dari semua Target
  2. Keluar dari Xcode
  3. Dalam direktori proyek Anda:
    • rm -rf Pods
    • (Opsional) rm -rf YourProject.xcworkspace
    • rm -rf Podfile.lock
  4. instal pod
  5. Buka YourProject.xcworkspace di Xcode
Tibidabo
sumber
4
Jangan hanya menghapus ruang kerja Anda secara sewenang-wenang - Bahkan jika ruang kerja Anda dibuat oleh Cocoapods, itu dikelola oleh Anda.
Joseph DeCarlo
Ini berhasil bagi saya menghapus setiap file yang terkait dengan pod dan menginstal ulang pod.
Leena
15

Saya menyingkirkan masalah yang sama dengan melakukan langkah-langkah berikut:

  • Xcode->Product->Clean Build Folder(tahan tombol alt pada Produk untuk melihatnya)
  • Buka Xcode->Window->Organizerdan pilih Projectstab. Kemudian cari proyek Anda dan hapus derived data proyek tersebut.
Timuçin
sumber
1
Bekerja untukku. Kesal. Sekarang senang
fresidue
Dalam kasus saya, saya mengalami masalah dengan proyek github. Jadi saya harus benar-benar menghapus direktori Project (rm -rf), melakukan di atas, kemudian unzip proyek, instal pod dan membuka xcworkspace dan tidak ada kesalahan!
rharvey
Bekerja untukku. Terima kasih.
xevser
10

Cukup diselesaikan dengan melakukan hal berikut:

  • (sudo) permata instal cocoapods

  • instal pod

  • bersihkan dan bangun

tampaknya masalahnya disebabkan oleh salah satu anggota tim kami yang memiliki pemasangan permata cocoapods yang lebih baru.

Diego
sumber
1
Saya harus menginstal ulang cocoapods dan restart XCode untuk menyelesaikan masalah ini.
The Camster
Harus menjalankan gem install cocoapodsdan kemudian pod installdan hampir semua hal lain yang disebutkan di utas ini ...
Echelon
9

  1. buka file .xcodeproj dalam teks luhur
  2. hapus dua baris ini, jika Anda memiliki folder pod bersih, maksud saya jika Anda mendapatkan kesalahan di atas setelah Anda menghapus folder pod
Ivan Zhang
sumber
memberi saya ld: perpustakaan tidak ditemukan untuk -lPods - / * Nama Proyek Saya * / Tes
SleepsOnNewspapers
juga akankah ini memberi saya kesalahan pada pemasangan pod masa depan?
SleepsOnNewspapers
6

Punya masalah yang sama dengan mengatakan /Pods/Pods-resources.sh: Tidak ada file atau direktori seperti itu bahkan setelah file dll yang terkait dengan pod dihapus.

Singkirkan itu dengan pergi ke target-> Membangun fase dan kemudian menghapus fase pembangunan "Salin Sumber Daya Pod".

roshi
sumber
perbaikan keren tapi saya khawatir setelah proyek pembersihan dan data yang diperoleh Anda mungkin memperhatikan mengapa Anda membutuhkan ini :)
Julian Król
Maka saya mendapatkan file ".h" tidak ditemukan kesalahan dari fileName yang menggunakan Pod
coolcool1994
4

Saya memiliki masalah yang sama baru-baru ini. Saya telah mencoba setiap saran yang mungkin, tidak ada kecuali plugin ini telah bekerja untuk saya:

https://github.com/kylef/cocoapods-deintegrate

Setelah pembersihan integrasi cocoapods saat ini, yang tersisa untuk dihapus adalah Podfile, Podfile.lock dan .xcworkspace. Kemudian instal sekali lagi.

Saya harap saya akan membantu seseorang dengan ini.

Chiara
sumber
Ini adalah satu-satunya hal yang memperbaikinya bagi saya.
Charlie
Aku senang bisa membantu Charlie
Chiara
4

Masalah ini menyelesaikannya.

  1. Pilih Target Proyek Anda
  2. Pilih Bangun Pengaturan
  3. Buka daftar drop-down Buatan Pengguna
  4. Ubah nilai kunci PODS_ROOT menjadi $ {SRCROOT} / Pods

Tangkapan layar untuk langkah-langkah di atas

Jayprakash Dubey
sumber
1
AKU MENYUKAINYA. Tapi saya masih mendapatkan kesalahan buruk yang sama. Apa ini!!! tidak ada yang punya jawaban yang benar tentang ini.
@YumYumYum: Lalu coba instal ulang pod Anda.
Jayprakash Dubey
Mencoba di atas semua solusi tetapi yang ini berhasil. Dalam kasus saya itu tetap menetapkan jalur dalam rilis.
Ankit Kargathra
3

Saya pikir ada bug di sini.
Bagi saya, saya menghapus Podsfolder dan Podfile.lockdan melakukan pod installlagi untuk menyelesaikan masalah.
Pesan ini mengabaikan .. :(

Johnny
sumber
2

Itu tidak terlalu intuitif. Saya pergi ke pengaturan proyek dasar dan kemudian saya hardcod jalur untuk pod.lock dan pod.manifest saya di bawah Periksa Pods Manifest.lock, karena mereka sebenarnya tinggal di folder yang berbeda, sehingga jalur saya terlihat seperti ini:

diff "/Users/admin/Desktop/Experimental/projectfolder/Podfile.lock" "/Users/admin/Desktop/Experimental/projectfolder/Pods/Manifest.lock" > /dev/null
if [[ $? != 0 ]] ; then
    cat << EOM
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
EOM
    exit 1
fi
Vladimir Stazhilov
sumber
Skrip tampaknya dibuat oleh CocoaPod. Di mana Anda meletakkan skrip ini?
Nickolas
2

Anda dapat mencoba yang berikut ini. Itu memperbaiki saya.

  1. install gem install cocoapods-deintegrate
  2. install gem install cocoapods-clean
  3. goto pod deintegrate
  4. pod bersih
  5. instal pod

Plugin akan dihapus dari cocoapods untuk proyek Anda dan akan menginstal baru.

MD Aslam Ansari
sumber
2

Dalam kasus saya, ini adalah target pengujian yang saya hapus semua pod dari dalam podfile saya (karena saya menambahkan pod yang kemudian saya sadari saya tidak perlu pada target itu). Tidak ada solusi lain di sini yang berfungsi untuk saya.

  1. Buka tab Bangun Fase di pengaturan proyek untuk target yang menyebabkan masalah.

  2. Hapus bagian bernama "Periksa Manifest Pods" dan "Salin Sumber Daya Pods"

  3. Di dalam "Tautan Biner Dengan Perpustakaan" hapus libPods-YourTarget.a

  4. Dalam pengaturan proyek Anda di tab Info memperluas "Konfigurasi" dan mengatur konfigurasi untuk target ke Tidak ada untuk debug dan rilis. (Ini akan memperbaiki beberapa peringatan file yang hilang)

  5. Hapus data turunan proyek Anda (Window> Projects> Delete [di sebelah proyek Anda) dan mulai ulang Xcode. Bangun / jalankan target.

shim
sumber
2

Ini membuat hariku!

  1. Menghapus file Podfile.lock di folder proyek Anda
  2. Menghapus folder Pods di folder proyek Anda
  3. Jalankan pod installdi folder proyek Anda
  4. Lakukan "Bersihkan" di Xcode
  5. Bangun kembali proyek Anda
alitosuner
sumber
1

Dalam kasus saya masalahnya ada pada cara yang salah. solusinya di sini http://guides.cocoapods.org/using/troubleshooting.html

Jika sesuatu tampaknya tidak berfungsi, pertama-tama pastikan bahwa Anda tidak sepenuhnya mengesampingkan opsi apa pun yang ditetapkan dari file Pods.xcconfig dalam pengaturan pembangunan proyek Anda. Untuk menambahkan nilai ke opsi dari pengaturan build proyek Anda, tambahkan daftar nilai dengan $ (diwarisi) .

R00We
sumber
1

Saya punya masalah ini.

Cara saya memperbaikinya adalah dengan sepenuhnya menghapus penerapan Pod dan mengimplementasikannya kembali. Pastikan untuk menghapus "Salin Sumber Daya Pods" dan "Periksa Pods Manifest.lock" dari "Bangun Fase" pada semua target seperti yang dinyatakan di sini: Bagaimana cara menghapus CocoaPods dari suatu proyek?

dloomb
sumber
1

Bagi saya untuk menghilangkan kesalahan ini, saya perlu menghapus Podsdirektori dan menghapus Podfile.lockfile.

BlackHatSamurai
sumber
Saya setuju dengan Anda, saya melakukan semua yang Anda lakukan termasuk menghapus file ruang kerja dan itu berhasil bagi saya.
Alix
1

Dalam kasus saya, saya meletakkan Podfile.lock & Manifest.lock di kontrol sumber, tapi saya lupa menambahkan Pods-Project.debug (rilis) file .xcconfig ke kontrol sumber (dengan keliru menambahkan * .xcconfig ke .gitignore), lalu saya mendapat kesalahan kompilasi yang sama dengan alasan yang persis sama, PODS_ROOT tidak disetel.

Jadi, jika tujuannya adalah setelah mengkloning repo, proyek dapat segera membangun dan menjalankan, tanpa CocoaPods diinstal pada mesin, Anda bisa menambahkan seluruh direktori Pods dalam kontrol sumber atau menambahkan Podfile.lock, Manifest.lock, file xcconfig proyek dan Pods file xcconfig ke kontrol sumber.

Saya tidak meletakkan private .xcconfig yang menggabungkan pengaturan build dengan konfigurasi CocoaPods default ke kontrol sumber.

Qiulang
sumber
1

Setelah menghabiskan berjam-jam saya menemukan solusinya pergi ke "Bangun Fase" Lalu "Periksa Pods Manifest.lock" Centang "Jalankan Script hanya ketika menginstal"

Terima kasih nanti;)masukkan deskripsi gambar di sini

Abdul Hadi Siraj
sumber
1

Saya memiliki masalah yang sama dengan proyek IONIC saya , saya mencoba di atas semua solusi tetapi tidak beruntung.

Jika Anda masih memiliki masalah yang sama, periksa apakah pengaturan di bawah ini ada Build Settings -> User-Defined settingsatau tidak

1. PODS_ROOT 2.PODS_PODFILE_DIR_PATH

Jika tidak ada maka tambahkan,

PODS_ROOT = ${SRCROOT}/Pods

PODS_PODFILE_DIR_PATH = ${SRCROOT}/

Ini akan menyelesaikan masalah, tautan solusi

Onkar
sumber
0

Saya telah membuat banyak target sebelum saya menggunakan pod. Kemudian ketika saya mulai mengkompilasi target lain saya harus menambahkan link_with dengan daftar target di Podfile saya.

Vladimír Slavík
sumber
0

Saya memiliki masalah yang sama. Setelah menelusuri kembali langkah terakhir saya, saya menemukan bahwa menambahkan deklarasi target untuk target baru, diikuti dengan menjalankan pod install,adalah penyebab masalah:

masukkan deskripsi gambar di sini

Mengatur ulang cabang saya dan membersihkan proyek saya tidak berhasil, karena Cocoapods memodifikasi setidaknya satu file yang tidak di bawah kendali sumber. Saya tahu ini karena sekali saya mereset cabang jauh ke komit sebelum menambahkan target tambahan, dan mengklon ulang repo, masalahnya tidak ada lagi.

Sheamus
sumber
0

Jika Anda memiliki target watchOS: Saya menemukan itu tiba-tiba, memiliki pod dalam ekstensi arloji tetapi tidak dalam target arloji itu sendiri memecahkan hal-hal dengan kesalahan yang sama ini. Solusinya adalah menambahkan pod ke target arloji juga.

xaphod
sumber
0

jika Anda menambahkan target baru setelah membuat Podfile, cukup hapus Podfile, Podfile.lock, folder Pods dan workspace kemudian init pods -> lalu pasang pod pod Anda instal

mohammad alabid
sumber
0

Setelah mencoba hal di atas, saya menyadari saya mendapatkan kesalahan pod install

[!] CocoaPods tidak mengatur konfigurasi dasar proyek Anda karena proyek Anda sudah memiliki set konfigurasi kustom.

Ini menyebabkan kesalahan, karena cocoapods tidak menambahkan file .xcconfig ke proyek saya.

Untuk mengatasi ini saya pergi ke Infotab proyek saya. Setel saya Berdasarkan pada File Konfigurasi ke Noneuntuk semua skema dan target. Kemudian berlari kembalipod install

Lihat tautan ini untuk informasi lebih lanjut. Peringatan Cocoapods - CocoaPods tidak menetapkan konfigurasi dasar proyek Anda karena karena proyek Anda sudah memiliki set konfigurasi kustom

Matt Hudson
sumber
0

Dalam kasus saya, saya secara tidak sengaja mengetik titik yang tidak perlu di akhir file konfigurasi yang menyebabkan masalah aneh ini. Pastikan file konfigurasi Anda tidak mengandung kesalahan!

Jidong Chen
sumber