Peringatan Cocoapods - CocoaPods tidak menetapkan konfigurasi dasar proyek Anda karena karena proyek Anda sudah memiliki set konfigurasi kustom

331

Setelah saya menjalankan a pod installdi dasar proyek saya, saya mendapatkan kesalahan berikut:

CocoaPods tidak mengatur konfigurasi dasar proyek Anda karena karena proyek Anda sudah memiliki set konfigurasi kustom. Agar integrasi CocoaPods bekerja sama sekali, silahkan baik mengatur konfigurasi dasar target BluePlaquesLondonFrameworkuntuk Pods/Target Support Files/Pods/Pods.debug.xcconfigatau menyertakan Pods/Target Support Files/Pods/Pods.debug.xcconfigdalam konfigurasi membangun Anda.

Ini mungkin terdengar seperti pertanyaan konyol, tetapi bagaimana cara menetapkan konfigurasi basis untuk target?

https://github.com/seanoshea/BluePlaquesLondon/blob/ios8/Podfile adalah Podfile yang menyebabkan masalah ini.

http://github.com/seanoshea/BluePlaquesLondon di cabang iOS 8 adalah Podfile yang dipermasalahkan jika Anda penasaran untuk melihat seperti apa proyek itu.

seanoshea
sumber
2
Ini agak di luar topik, tetapi; Saya hanya ingin memperingatkan Anda tentang iOS-KML-Framework. Ini menggunakan versi 1.5 dari TBXML, yang agak buggy. Jika Anda mendapatkan XML yang salah format di umpan Anda, aplikasi Anda akan macet. Anda mungkin ingin membuat garpu pribadi untuk iOS-KML-Framework di mana Anda menghapus '1.5' dari podspec, dan cukup gunakan KEPALA TBXML. Itu tampaknya memperbaiki banyak masalah.
churowa
Harap perbarui judul Anda untuk memasukkan lebih banyak peringatan aktual. Misalnya: "CocoaPods tidak mengatur peringatan konfigurasi".
David James
Memperbarui judul @vidaames. Senang mengubahnya lagi jika Anda pikir itu sedikit bertele-tele.
seanoshea
4
Sekarang ini salah satu judul terpanjang yang pernah saya lihat di stackoverflow.
Klaas
github.com/CocoaPods/CocoaPods/issues/2633 memiliki solusi yang baik - setel semua konfigurasi ke Tidak ada, kemudian jalankan "pod install"
David Airapetyan

Jawaban:

583

Saya memiliki masalah yang sama, tetapi dalam Xcode 6.1.1 - yang memperbaikinya bagi saya adalah mengubah pengaturan file konfigurasi Noneuntuk dua target terkait Pods, kemudian jalankan pod installkembali.

Pengaturan file konfigurasi ditemukan dengan memilih proyek (bukan target) dan kemudian tab Info.

TimD
sumber
144
Pengaturan ini ditemukan dengan memilih proyek (bukan target) dan kemudian tab Info.
Grav
34
Ini membantu untuk membuat perubahan, diikuti dengan berhenti xcode, berjalan pod install, lalu buka kembali. Jangan biarkan Xcode terbuka selama waktu itu.
Sebastian Roth
1
Ini memperbaikinya untuk saya. konfigurasi saya menunjuk ke nama xcconfig lama, yang berubah sejak saya menambahkan dua target eksplisit di Podfile saya (satu untuk proj utama satu untuk pengujian), menyebabkan pembuatan file konfigurasi baru dengan nama yang berbeda.
qix
10
Bagi mereka yang memiliki kekhawatiran yang sama dengan saya bahwa menetapkan bahwa untuk Noneakan memecahkan barang-barang .. pod installsemuanya memilah semuanya.
Matius
4
di mana pengaturan ini di xcode 10? Pergi melalui semua tab, tidak dapat menemukannya
JenonD
168

Jangan mengotak-atik, Setel ulang.

Selangkah demi selangkah

  1. Perlihatkan Project Navigator
  2. Pilih Proyek
  3. Pilih Info
  4. Di Konfigurasi , pilih masing-masing, satu per satu (Debug, ApplicationUnitTest, Release, dll.), Dan untuk setiap target dalam konfigurasi tersebut, atur konfigurasi ke Tidak ada .
  5. Pastikan itu Berdasarkan File Konfigurasi membaca 0 Konfigurasi Set atau Tidak Ada Konfigurasi Set untuk setiap konfigurasi. Itulah intinya. 0 Konfigurasi Set
  6. Keluar dari Xcode
  7. rm -rf Pods/ Podfile.lock ; pod install

Setelah Anda diperbolehkan pod installpada langkah 7untuk melakukan sihir, Anda mungkin dapat menggunakan konfigurasi kustom dan mengubah konfigurasi Anda.

Arsitektur Swift
sumber
10
jawaban ini harus diterima, sebelumnya tidak jelas bagi saya juga.
Evgeniy Kleban
Menggunakan Podskonfigurasi, seperti yang disarankan dalam jawaban lain, tidak menyelesaikan masalah saya sedikit pun: Pengaturan Build sudah cocok Pods.debug& Pods.release, yang merupakan masalah. Apa yang dilakukan adalah 0 Konfigurasi yang Diatur untuk setiap konfigurasi. Bukan jawaban yang sama sekali.
SwiftArchitect
Ini juga bekerja untuk saya. Sebagai catatan, Anda harus mengubah dari Target ke Proyek untuk melihat Konfigurasi. Saya mencari ini untuk waktu yang lama sampai saya menemukan dropdown.
marty331
Saya akan memilih ini seratus kali jika saya bisa. Setelah 30 jam memerangi proses pembuatan Jenkins setelah menggabungkan 4 cabang pengembang menambahkan 3 ekstensi ke aplikasi iOS dengan file konfigurasi khusus, mengebom skrip manifest.lock dari pod kakao, ini akhirnya memperbaiki masalah. (Di antara banyak hal lain, tapi ini adalah perbaikan jerami terakhir). : Cheers:
Augie
"[!] Tidak dapat menentukan versi Swift untuk pod berikut:"
Richard
138

Pergilah ke XCode dan buka pengaturan proyek Anda dan di bawah tab Info, Anda akan melihat "Konfigurasi" di mana Anda dapat mengatur file konfigurasi untuk Debug dan Rilis. Anda tampaknya telah menyetel ini ke beberapa konfigurasi khusus dan CocoaPods ingin / membutuhkan Anda untuk menggunakan konfigurasi Pods.

Ini cuplikan layar

quark
sumber
7
Perhatikan bahwa ini tidak menyelesaikan masalah jika Anda benar-benar perlu menggunakan konfigurasi khusus untuk tujuan nyata. Lihat masalah terbuka ini .
funroll
1
Tidak ada yang berubah di Xcode 6 untuk membuat jawaban ini salah
quark
Masalah lain tetapi itu memecahkan masalah saya untuk saya. Menggunakan cocoa pods dengan Tes UI dan hal ini menyelamatkan hidup saya! Terima kasih.
Akshit Zaveri
70

Berlari ke masalah yang sama. Itu akan membangun pada simulator tetapi tidak pada perangkat saya. Tidak ada jawaban yang memecahkan masalah ini untuk saya. Inilah yang saya lakukan mengumpulkan beberapa jawaban bersama:

  1. Mengubah file pod saya untuk menggunakan target tertentu:

    target :MyProject do
        pod 'AWSCognitoSync'
        pod 'Facebook-iOS-SDK'
    end
  2. Pasang pod install

  3. Itu memberikan kesalahan: [!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `MyProject` to `Pods/Target Support Files/Pods-MyProject/Pods-MyProject.debug.xcconfig` or include the `Pods/Target Support Files/Pods-MyProject/Pods-MyProject.debug.xcconfig` in your build configuration.
  4. Buka Pengaturan proyek dan klik pada tab Info. Akan ada kesalahan di mana ia tidak dapat menemukan file Konfigurasi. Setel ke "Tidak Ada" untuk Debug dan Rilis.
  5. Jalankan instal lagi
  6. Bersihkan dan bangun. Ini bekerja.
Chris Fellows
sumber
1
Antara langkah 4 dan 5, saya selalu menutup xcode. Saya mengalami masalah saat xcode dijalankan saat menginstal pod.
Ray Hunter
Hanya berlari ke ini sendiri membuat skema khusus. Di atas juga berfungsi di Xcode 7. Saya akan merekomendasikan saran @shunteruntuk menutup Xcode selama instalasi.
subv3rsion
1
Saya berharap bisa memilih lebih dari satu kali. Ini membuat saya setiap saat.
Bill Burgess
16

Anda juga harus memastikan bahwa Anda tidak memiliki pod di root Podfile, Anda harus mendefinisikan semua pod yang digunakan di banyak target seperti itu:

def shared_pods
  pod 'ReactiveCocoa', '~> 2.5'
end
target 'app' do
  shared_pods
  pod 'RestKit'
end
target 'tests' do
  shared_pods
  pod 'OCMock'
end

Anda juga mungkin perlu menghapus libPods.adan libPods-app.adari dependensi target, melakukan pembersihan lalu jalankan pod installlagi.

Deteksi ulang
sumber
10

Saya baru saja mengalami masalah ini setelah menambahkan beberapa konfigurasi build khusus. Saya bisa melihat di bawah:

Pods (target) > Target Support Files > Pods

bahwa itu benar-benar membuat xcconfigfile baru yang cocok dengan konfigurasi build baru tetapi untuk beberapa alasan saya tidak dapat memilih ini dalam target proyek aplikasi saya.

Apa yang diperbaiki untuk saya adalah menginstal dan menggunakan cocoapods-deintegrate :

gem install cocoapods-deintegrate

lalu jalankan:

pod deintegrate

diikuti oleh:

pod install
Hodson
sumber
2
Ini membantu saya.
Krishnan
7

Baris di podfile yang menghasilkan masalah adalah: link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework'].

Buat saja ini: link_with ['BluePlaquesLondon'] atau ini (berhasil dalam kasus saya, harap akan ada di Anda :-)):

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

xcodeproj 'BluePlaquesLondon.xcodeproj'
inhibit_all_warnings!
link_with ['BluePlaquesLondon']

def import_pods

     pod 'TTTAttributedLabel', '~> 1.10.1'
     pod 'GoogleAnalytics-iOS-SDK', '~> 3.0.9'
     pod 'Google-Maps-iOS-SDK'
     pod 'IntentKit'
     pod 'HCViews'
     pod 'SVProgressHUD', :head
     pod 'iRate'
     pod 'iOS-KML-Framework', :git => 'https://github.com/FLCLjp/iOS-KML-Framework.git'

end

import_pods

target "BluePlaquesLondonFramework" do
    import_pods
    pod 'Kiwi'
end
fred foc
sumber
Ini bekerja dengan baik untuk saya. Saya sudah memiliki konfigurasi Cocoapods sesuai jawaban yang diterima, tetapi masih melihat peringatan. Jadi mengapa ini bekerja, padahal link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework']tidak?
churowa
6

Jika Anda menambahkan konfigurasi bangunan kustom ke proyek Anda yang ada, Cocoapods akan mengeluh tentang hal itu.

Cocoapods akan secara otomatis membuat file xcconfig di bawah direktori Pods/Target Support Files/<build_target>mengikuti pola penamaan Pods-<build_target>.<build_config>.xcconfig.

Pastikan untuk menambahkan file-file itu secara manual ke proyek Anda di Xcode (di bawah direktori Pods, tetapi tidak di dalam proyek Pods!). Setelah file-file itu dimasukkan, pilih proyek Anda dalam Xcode, buka tab "Info", dan perluas konfigurasi khusus Anda. Pilih file xcconfig yang sesuai untuk setiap target di bawah konfigurasi khusus Anda.

diegoreymendez
sumber
4

Saya memiliki kesalahan yang sama saat menginstal pod. Saya mencoba semuanya (instal ulang pod, perbarui semua permata, dll.) Dan saya menemukan solusi berfungsi dalam kasus saya. Ada masalah karena mengubah nama target. Dalam hal ini solusinya sederhana:

  1. Klik Produk -> Skema -> Kelola Skema ...
  2. Klik target Anda pada daftar dan hapus dengan tanda "-" di bagian bawah jendela.
  3. Klik "+" untuk menambahkan target kembali ke daftar. Pilih target dan nama yang benar.

Lagipula semuanya harus bekerja.

lukszar
sumber
3
  1. Tambahkan file xcconfig relevan ke proyek Anda. Cocoapods akan membuatnya tetapi Anda tidak dapat mengaturnya dalam Xcode sampai mereka berada di proyek.
    • Anda mungkin ingin menambahkannya ke grup Pods di mana file xcconfig pod lainnya berada. Klik kanan dan tambahkan file.
    • Cari file xcconfig di folder proyek Anda atau lihat Pods/Target Support Files/[TARGET_NAME]/(Saya punya cocoapod yang berbeda dikonfigurasi untuk setiap target (ekstensi dan proyek utama ini mungkin sedikit berbeda dalam kasus Anda)
  2. Pergi ke konfigurasi proyek di Info proyek utama Anda
  3. Untuk setiap target dan konfigurasi, atur konfigurasi pod yang sesuai.
  4. pod install lagi dan Anda seharusnya tidak melihat kesalahan.
Joseph Lord
sumber
3

Saya memindahkan pod di Podfile di luar dari target. Perubahan file dari ini:

# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks!

target 'MyProject' do

pod 'Firebase', '>= 2.5.0'
pod 'Onboard'
pod 'GoogleMaps'
pod 'IQDropDownTextField'

end

Untuk ini:

# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks!

pod 'Firebase', '>= 2.5.0'
pod 'Onboard'
pod 'GoogleMaps'
pod 'IQDropDownTextField'

target 'MyProject' do

end
Manuel BM
sumber
2

Jika Anda menggunakan konfigurasi khusus, Anda dapat mengikuti saran dalam peringatan dan memasukkan konfigurasi Pod dalam file konfigurasi Anda

     #include "Pods/Target Support Files/Pods-YYY/Pods-YYYY.develop-archive.xcconfig"

Ini TIDAK akan menghentikan peringatan tetapi akan memungkinkan Anda untuk menggunakan konfigurasi pribadi Anda (ada bug terbuka pada peringatan dengan proyek CocoaPods) https://github.com/CocoaPods/CocoaPods/issues/2633

Zeev Vax
sumber
2
Terima kasih telah menambahkan jawaban yang tidak mengorbankan pengaturan proyek Anda saat ini.
Dan Leonard
1

Jadi bagi saya, masalahnya adalah karena nama file xcconfig tersebut diubah sebelum pembaruan Swift 3 terjadi.

Ada yang tidak sinkron, jadi Cocoapods membuat bagian folder 'Pulih Referensi' dengan file-file lama, dan ditautkan ke mereka.

Untuk memperbaikinya, saya:

  1. Menghapus folder 'Recovered Reference' dan file .xcconfig lama yang berisi Xcode dan sistem file
  2. Keluar dari Xcode

  3. Jalankan instal pod

Semuanya ditangani untuk saya setelah itu, dan peringatan itu hilang.

Harry Bloom
sumber
0

Saya dapat membangun proyek yang tersentuh oleh masalah ini di XCode 6 dengan:

  • memilih Project dari Project Navigator
  • memilih Project, bukan Target
  • pergi ke tab Info
  • memilih Pods (debug / lepaskan) File Konfigurasi dari kotak kombo untuk masing-masing Konfigurasi.

Semoga ini bisa membantu seseorang.

Michael
sumber
0

Ini terjadi pada saya karena saya sudah memiliki konfigurasi Pod. Saya baru dalam pengembangan iOS, sedang mencari instruksi untuk menginstal Alamofire + SwiftyJSON dan akhirnya menginstal perpustakaan lebih dari sekali, secara tidak sengaja. Bagi saya, yang berhasil adalah: pada folder "Target Support Files" di proyek "Pods", saya memilih dua file .xcconfig yang benar dan menyeretnya ke folder "Pods" dari proyek aplikasi saya. Ini memungkinkan pemilihan file konfigurasi yang benar pada konfigurasi dasar.

Tetapi kemudian, jika saya menjalankan "pod install" lagi, peringatan akan berubah ke file .xcconfig sebelumnya. Saya mencoba menghapus file dan kerangka kerja lama dari proyek utama tetapi ketika saya menjalankan perintah sebelumnya sekali lagi, memberi saya peringatan yang sama, dan membuat file "Pods.framework" di bawah folder "Pods" dari proyek aplikasi saya. Saya mengabaikannya, dan tampaknya berjalan ok, meskipun dua kerangka kerja. Saya tidak tahu apakah itu benar, dan sebuah solusi, jika ada, itu akan disambut.

Pablo
sumber
Ini tidak benar-benar menjawab pertanyaan itu. Jika Anda memiliki pertanyaan yang berbeda, Anda dapat menanyakannya dengan mengeklik Ajukan Pertanyaan . Anda juga dapat menambahkan hadiah untuk menarik lebih banyak perhatian ke pertanyaan ini setelah Anda memiliki reputasi yang cukup .
Petro Korienev
Terima kasih untuk penjelasannya Petro. Saya hanya ingin membagikan hasil yang berhasil untuk saya (dengan peringatan, tetapi masih), namun saya akan lebih berhati-hati di masa depan.
Pablo
0

Saya memiliki kesalahan:

diff: /../Podfile.lock: Tidak ada file atau direktori seperti itu diff: /Manifest.lock: Tidak ada kesalahan file atau direktori tersebut: Kotak pasir tidak sinkron dengan Podfile.lock.

Saya menarik permintaan dari bitbucket untuk pertama kalinya. Saya membersihkan proyek saya dan mencoba semuanya (menginstal pod, pembaruan pod, dll.) Tetapi tidak ada jawaban di atas yang bekerja untuk saya. Kemudian saya hanya memeriksa jalan di mana saya menginstal pod dan memperbaikinya dan menginstalnya lagi, Itu hanya bekerja. Pastikan berikan path tepat sebelum di mana .xcodeproj atau .xcworkspace (jika sudah ada) ada. Mungkin seseorang mendapat manfaat dari ini.

Maurya sederhana
sumber
-2

Solusi paling sederhana untuk ini (setelah memiliki masalah ini beberapa kali):

  1. Hapus Podfile & Podfile.lock dari perpustakaan proyek Anda (simpan Podfile di suatu tempat sehingga Anda dapat dengan mudah menempel ke Podfile baru)
  2. jalankan 'pod init'
  3. Edit 'Podfile' ke surat wasiat Anda (tambahkan pod yang Anda gunakan)
  4. jalankan 'pod install'

Ini akan menciptakan kembali semuanya dan bekerja selalu dalam hitungan menit (tidak menghabiskan waktu untuk merekayasa balik "bug").

Idan
sumber