Kesalahan Xcode 10: Beberapa perintah menghasilkan

659

galat: Beberapa perintah menghasilkan '/ Pengguna /ues / Perpustakaan / Pengembang / Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist' memiliki perintah 'Target': '/Pengguna/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist' to '/ Users / uesr / Library / Developer / Xcode / DerivedData / OptimalLive-fxatvygbofczeyhjsawtebkimvwive / Build / iphone / Opt / / .app / Info.plist '2) Target' OptimalLive 'memiliki perintah penyalinan dari' / Pengguna /uesr / Desktop / workSpace/SEALIVE/SeaLive1.1/OptimalLive/Server/Masonry/Info.plist 'to' / Users / uesr / Perpustakaan / Pengembang / Xcode / DerivedData / OptimalLive-fxatvygbofczeyhjsawtebkimvwx / Build / Produk / Debug-iphoneos / OptimalLive.app / Info.plist '3) Target' OptimalLive 'memiliki perintah proses dengan input '/ Pengguna /uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist'

Menjalankan kode di Xcode9 berfungsi, tetapi ada kesalahan di Xcode10.

membuat
sumber
Untuk dependensi yang dikelola cocoapod, lihat stackoverflow.com/a/52421345/334999
Shuo
terjadi ketika Anda mengimpor kerangka kerja pihak ketiga ke proyek Anda dan memiliki info.plist di file sumbernya. Info.plist ini bertentangan dengan salah satu aplikasi Anda. Hapus saja dari fase Build
protspace
Pembaca yang budiman, baca SETIAP jawaban untuk pertanyaan ini, ada banyak hal berbeda yang mungkin salah.
iluvcapra
Jalur Goto "Bangun Fase-> Salin Sumber Daya Bundel". Periksa nama file dan hapus yang sama. Bersihkan dan jalankan aplikasinya
Sagar Sukode

Jawaban:

1227

Masalah ini mungkin terjadi karena beberapa Plist atau file lain dalam App-

Solusi -> Buka target -> Bangun fase> Salin Sumber Daya Bundel dan hapus info.plistdari sana.

masukkan deskripsi gambar di sini

Catatan: Jika Anda telah mengembangkan aplikasi arloji juga maka Anda harus menghapus plist dari arloji dan ekstensi arloji juga.

Alok
sumber
12
Anda juga mungkin perlu mencari di setiap dependensi yaitu CocoaPods untuk salah menambahkan file info.plist
Chris Paveglio
68
Untuk sedikit menguraikan: Kesalahan ini terjadi karena sistem build baru Xcode 10 lebih baik dalam menangkap masalah konfigurasi proyek. Masalah seperti ini terkadang dapat menyebabkan masalah halus pada bangunan Anda, jadi ada baiknya untuk memperbaikinya.
Rick Ballard
2
Dalam kasus saya, saya harus menghapus beberapa file lokalisasi bernama InfoPlist.strings
neowinston
8
Dalam kasus saya, saya memiliki info.plistfile di salah satu dependensi CocoaPods pribadi saya yang sedang diambil karena dicocokkan dengan source_filesproperti podspec . Saya tidak membutuhkan info.plistfile dalam modul saya, jadi saya hanya menghapusnya.
aapierce
3
Terima kasih! Saya telah menambahkan beberapa pengembang plugin dan kode saya beberapa waktu lalu dan itu juga memiliki file info.plist yang bertentangan dengan info.plist aplikasi saya
Christopher Smit
567

Saya menemukan solusi untuk galat build ini, untuk siapa pun yang memiliki masalah yang sama dengan sistem build Xcode 10, ikuti langkah-langkah berikut untuk memperbaikinya:

  1. Dalam Xcode, buka File-> Project / Workspace settings.
  2. Ubah sistem build ke sistem Legacy Build.

masukkan deskripsi gambar di sini Ini akan menyelesaikan masalah build dengan Xcode 10 baru.

Jika Anda ingin bekerja dengan sistem build baru, maka Anda dapat menemukan bantuan pemecahan masalah dari halaman bantuan apple Xcode ini .

Semoga ini membantu!

Akshay Sunderwani
sumber
4
dapatkah Anda menjelaskan mengapa masalah ini datang dan juga bagaimana memilih Legacy Build System menyelesaikannya? @Akshay Sunderwani
user832
142
Anda tidak memperbaiki masalah, Anda hanya menyembunyikannya.
Caio
4
Perbaikan galat pembangunan untuk proyek-proyek asli-bereaksi. Lihat masalah di sini: github.com/facebook/react-native/issues/20492 Ada kemungkinan perbaikan jika Anda tidak ingin beralih ke Legacy Build System: github.com/facebook/react-native/issues/…
Eugen Timm
6
Ini bukan perbaikan jangka panjang. Akhirnya sistem build legacy tidak lagi menjadi pilihan.
Paul King
6
Yah aku 100% akan menyembunyikan masalah daripada memperbaikinya karena tidak ada solusi yang berfungsi. Tampaknya merupakan masalah yang diketahui dengan Cocoapods; lihat github.com/CocoaPods/CocoaPods/issues/7949 . Saya berharap itu entah bagaimana memperbaiki dirinya sendiri pada saat solusi ini tidak lagi menjadi pilihan.
sudo
170

Pergi ke Xcode -> File -> Pengaturan Workspace. Anda akan menemukan satu pop up suka.

masukkan deskripsi gambar di sini

Pilih " Legacy Build System " dari tag Build System. Tekan pada " Selesai "

Catatan: - Pastikan hapus proyek Anda dengan " cmd + shift + alt + k " dan " Derived Data "

Bangun proyek Anda itu akan bekerja pesona :)

Hardik1344
sumber
Sesuai pemahaman saya, proyek kami yang ada dibuat dalam swift dan xcode lama yang didukung versi swift dan xcode lama. Jadi sebelumnya apa yang kami lakukan, kami melanjutkan "Pengaturan Bundel-> Sistem Swift legacy Build" dan memilih versi sebelumnya.
Hardik1344
Saya awalnya memilikinya di "Sistem Swift Legacy Build", tetapi telah diaktifkan setelah me-restart komputer saya. Bahkan jika Anda berpikir Anda memiliki set ini dengan benar, itu masih layak untuk diperiksa ulang.
EndersJeesh
Solusi ini tidak memperbaiki masalah, itu hanya menyembunyikannya.
Argus
Pastikan juga Anda mengubah pengaturan ruang kerja Per-Pengguna ke yang sama;)
Wei Shen
114

Coba ini juga. Xcode-> File-> Pengaturan Proyek-> Build System -> Legacy Build System.

Hari Prasath Balachandran
sumber
38
Dalam hal ini Xcode menandai masalah dalam proyek, jadi kembali ke sistem build lawas akan menyembunyikannya untuk saat ini. Pelaporan Xcode tentang masalah seperti ini disengaja dan yang terbaik untuk memperbaiki masalah ini.
Rick Ballard
2
Jika kesalahan dalam proyek yang dihasilkan CocoaPods maka saya akan menonaktifkan Sistem Build baru sampai versi CocoaPods baru memperbaiki masalah.
Rivera
@ RickBallard masuk akal, sekarang, mana yang bisa menjadi perbaikan yang tepat? tampaknya ada campuran jawaban
rolando
1
Ada beberapa penyebab kesalahan jenis ini, tetapi Anda dapat membaca lebih lanjut tentang apa artinya di help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0
Rick Ballard
74

Jika Anda mendapatkan ini dari Dittoperintah yang membuat banyak instance dengan nama yang sama (BUKAN 'copy files' build phase), Anda mungkin harus mengubah Product Module Name.

  1. Klik pada Target Anda yang dikeluhkan oleh Xcode
  2. Klik Build Settings
  3. Pencarian untuk Product Module Name
  4. Ubah nama menjadi sesuatu yang unik

Kami memiliki target tontonan dan beberapa target pemberitahuan di aplikasi kami, jadi saya hanya menempatkan hal-hal seperti Extensiondi akhir nama modul.

Saya menemukan solusi ini awalnya di sini: https://forums.developer.apple.com/thread/103913

u2Fan
sumber
1
Ini bekerja agak baik, tetapi kemudian putus dengan file bridging.
Mohamad Kaakati
5
Dalam kasus saya, saya harus memilih Alldi sebelah kanan tempat Anda mencari untuk Product Module Namemembuat konfigurasi yang ditampilkan.
Hodson
56
Saya mendapat masalah yang sama di Xcode 10. Proyek yang sama bekerja dengan baik di Xcode 9.4.1. Jadi solusinya sangat sederhana. Hapus saja semua file info.plist dari target. Silakan lakukan ini untuk semua file info.plist. Langkah 1. Pilih file info.plist. 2. Pada File inspector Hapus centang proyek dalam Keanggotaan Target. Kemudian jalankan proyek Anda. Terima kasih!
Sebuah Kit
12
Bagi saya, saya harus pergi ke [Project_Name]> Bangun Fase> Salin Sumber Daya Bundel dan hapus duplikat di sana
user3322509
5
@Harhar Jangan hapus file info.plist dari proyek Anda. Anda hanya perlu menghapus dari Target seperti yang saya sebutkan. Kami tidak dapat menghapus info.plist, Ini sangat penting untuk proyek.
An Kit
69

Saya sedang bereksperimen dengan Data Inti. Saya membangun model data untuk program checklist sederhana dan menghasilkan NSManagedObjects. Ketika saya mengkompilasi proyek saya mendapat kesalahan berikut:

error: Multiple commands produce '/Users/myUSerName/Library/Developer/Xcode/DerivedData/myCoreDateExperiment-gzbslaqdwglkzxemijpdqmizgyzc/Build/Intermediates.noindex/ myCoreDateExperiment /Debug-iphonesimulator/ myCoreDateExperiment.build/Objects-normal/x86_64/CheckListItem+CoreDataProperties.o':
1) Target ' myCoreDateExperiment ' (project ' myCoreDateExperiment ') has compile command for Swift source files
2) Target ' myCoreDateExperiment ' (project ' myCoreDateExperiment ') has compile command for Swift source files

Masalahnya adalah model data (CheckList.xcdatamodeld dalam kasus saya) ada di daftar "Sumber Kompilasi". Proyek dikompilasi dengan bersih ketika saya menghapusnya dari daftar.

  1. Buka navigator proyek dan pilih proyek (entri pertama di atas)
  2. Pilih target bangun Anda di bawah Target di panel "Proyek dan Target"
  3. Pilih opsi Bangun Fase di dekat bagian atas
  4. Luaskan entri "Kompilasi Sumber" dan cari nama model data Anda. Cari "xcdatamodeld" jika Anda kesulitan menemukannya.
  5. Hapus model dari daftar kompilasi
  6. Pastikan model data termasuk dalam daftar "Salin Sumber Daya Bundel". Tambahkan jika tidak ada.

EDIT

Sebagai @WilliamT. menjelaskan dalam komentar, Anda memerlukan xcdatamodeld dalam daftar kompilasi. Sebagai gantinya, buka entitas Anda di dalam file xcdatamodeld. Pilih model yang salah, perluas panel kiri, dan ubah bidang "Codegen" menjadi "Manual / None".

Positron
sumber
36
File xcdatamodeld sebenarnya harus dalam Sumber Kompilasi. jika Anda melihat kesalahan ini dalam kaitannya dengan Data Inti, kemungkinan karena Anda memanggil "Buat NSManagedObject Subclass" tetapi Entitas Anda disetel ke Codegen = "Definisi Kelas". Ini berarti secara otomatis membuat kelas-kelas ini untuk Anda dan Anda membuatnya secara manual sehingga mereka ada dua kali.
William T.
1
Anda adalah penyelamat hidup
user578386
1
@ Willill. Jadi apa yang harus menjadi nilai Codegen jika seseorang memanggil Create NSManaged Object Subclass?
Kaunteya
2
@ Kaunteya Ada opsi untuk mengatur Codegen ke "Manual" pada setiap Atribut CoreData (tabel)
William T.
1
Ikuti @WilliamT. saran dan kemudian bersihkan dan bangun.
PruitIgoe
40

Saat memeriksa log pembangunan, saya melihat peringatan:

note: Using new build system
note: Planning build
note: Constructing build description
Build system information
warning: The Copy Bundle Resources build phase contains this target's Info.plist file '/Users/<redacted>/Repositories/Whitesmith/optimize-ios/Carthage/Checkouts/WSStatusBarNotification/Miscellaneous/Info.plist'. (in target 'JDStatusBarNotification')

Jadi, jika itu kasus Anda, maka pergilah ke target Anda:

  1. Membangun fase
  2. Salin Sumber Daya Bundel
  3. Hapus info.plist.
AndrewSas
sumber
32
file info.plist tidak ada dalam sumber daya salinan bundel, masih mendapatkan kesalahan yang sama
bunty kumar
Menghapus Info.plist yang berlebihan dari fase pembuatan sumber bundel salinan menyelesaikannya untuk saya. Namun, peringatan saya berbeda karena secara tidak sengaja Info.plist dari target yang berbeda tetapi dalam proyek yang sama ditambahkan ke fase pembangunan Copy Bundle Resources. Peringatan itu adalah: "peringatan: duplikat file keluaran '... MyApp.app/Info.plist' pada tugas: ProcessInfoPlistFile". Dan mengarah ke kesalahan yang sama seperti pada pertanyaan asli: "error: Beberapa perintah menghasilkan '... MyApp.app/Info.plist'".
Martin Polak
dalam kasus saya itu adalah file "LISENSI" - setelah saya menghapusnya, masalah telah diperbaiki, jadi saya kira masalahnya lebih umum daripada "plist", sepertinya hanya lebih sering ditemui
vir us
37

Jika Anda menggunakan CocoaPods, Anda mungkin ingin mencoba mendegradasi pod dan menginstalnya lagi. Ini bekerja untuk saya.

pod deintegrate

pod install

Ming Chu
sumber
Ya, masalah saya disebabkan oleh paket pod dan hanya ini yang memperbaiki masalahnya! terima kasih
CodeBrew
@ Jing Chu Terima kasih
N. Der
30

Coba ini Bekerja:

Dalam Xcode, buka File-> Project / Workspace settings.

Ubah sistem build ke sistem Legacy Build.

Akash Patel
sumber
2
Dalam hal ini Xcode menandai masalah dalam proyek, jadi kembali ke sistem build lawas akan menyembunyikannya untuk saat ini. Pelaporan Xcode tentang masalah seperti ini disengaja dan yang terbaik untuk memperbaiki masalah ini. Untuk informasi lebih lanjut, lihat help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 .
Rick Ballard
27

Baca jawaban ini jika pesan kesalahan merujuk file Data Inti

Sinopsis: Anda mungkin memiliki file kelas objek yang dikelola secara otomatis dan buatan Core Data yang dihasilkan secara manual.

Jawaban ini berlaku jika baris pertama kesalahan merujuk ke file Foo + CoreDataProperties.o atau Foo + CoreDataClass.o . Contoh:

error: Multiple commands produce '/Users/me/Library/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/ MyApp /Debug-iphonesimulator/ MyApp.build/Objects-normal/x86_64/Foo+CoreDataProperties.o':

1) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files

2) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files

Penyebab root dapat dilihat dengan memperluas bagian Compile Swift Source Files dari Build Transcript. Sebagai contoh:

<unknown>:0: error: filename "Address+CoreDataClass.swift" used twice: '/Users/myUserName/Projects/Jnky/Foo+CoreDataProperties' and '/Users/jk/myUserName/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/MyApp.build/Debug/MyApp.build/DerivedSources/CoreDataGenerated/Jnky/Foo+CoreDataProperties.swift'

File pertama yang disebutkan ada file sumber di direktori proyek Anda, yang dihasilkan oleh seseorang dengan memilih model data Anda di Project Navigator dan mengklik menu Editor > Buat Subclass Obyek yang Dikelola . Fitur ini ditambahkan dalam Xcode 7 atau lebih.

File kedua adalah file dengan nama yang sama tetapi yang dimakamkan di Xcode DerivedData. File ini dihasilkan secara otomatis oleh Xcode selama setiap build jika file data model ( .xcdatamodeld) termasuk dalam fase build Compile Sources target . Fitur ini ditambahkan dalam Xcode 9 atau lebih. Nol, satu atau dua file dihasilkan untuk setiap entitas / kelas, tergantung pada pengaturan popup Codegen . Munculan itu ada di Inspektur Model Data ketika Anda memilih entitas saat mengedit model data Anda ...

tangkapan layar Inspektur Model Data

Pengaturannya adalah:

  • Manual / Tidak Ada Ada ada file yang dihasilkan
  • Kategori / Ekstensi Satu file, Foo + CoreDataProperties.m atau .swift dihasilkan, berisi kategori Objective-C atau ekstensi Swift.
  • Definisi Kelas File Kategori / Ekstensi yang sama dihasilkan, dan selain itu Foo + CoreDataClass.m atau .swift dihasilkan, berisi deklarasi dan definisi kelas.

Jadi Anda melihat masalah terjadi ketika pengembang (seperti saya) yang terbiasa dengan Xcode yang lebih lama memulai proyek dalam Xcode yang lebih baru. Kami berpikir bahwa kami perlu menggunakan item menu Buat Subjek Obyek yang Dikelola , yang kami lakukan, untuk membuat file yang dapat kami lihat di Project Navigator sambil tidak menyadari bahwa pengaturan kami di popup Codegen menyebabkan Xcode membuat file duplikat, yang oleh Apple "cerdik" tidak muncul di Navigator Proyek, karena mereka tidak percaya pengembang untuk membaca dan mengindahkan komentar di header // File ini secara otomatis dihasilkan dan tidak boleh diedit.

Solusi 1 - Gunakan Cara Lama

Anda dapat menonaktifkan semua Codegen otomatis untuk model data hanya dengan satu pengaturan:

  • Buka fase Fase Bangun Target (Di Project Navigator , pilih proyek, lalu dalam daftar TARGET yang muncul, pilih target masalah, lalu tab Bangun Fase ).
  • Perluas entri Sumber Kompilasi dan temukan model data masalah ( .xcdatamodeldfile).
  • Hapus dari daftar kompilasi
  • Pastikan model data termasuk dalam daftar Sumber Daya Bundel Salin .

Solusi 2 - Core Data Magic Untuk Pemula

Di sini, Anda melakukan semuanya dengan cara yang lebih baru.

  • Biarkan model data Anda seperti pada Kompilasi Sumber itu .
  • Di setiap Inspektur Entitas dalam model data Anda, setel Codegen ke Definisi Kelas .
  • Di Project Navigator, hapus dan buang semua file Foo + CoreDataClass , dan ganti nama file Foo + CoreDataProperties.m atau .swift menjadi sesuatu seperti Foo + MyProperties .
  • Di setiap file Foo + MyProperties.m atau .swift , jika ada properti yang dihasilkan oleh Xcode, hapus properti ini karena mereka akan berada di file tersembunyi yang dibuat oleh Codegen .

Dengan solusi ini, definisi kelas Anda dihasilkan secara otomatis dari model data pada setiap build. Anda bahkan tidak bisa melihatnya. Ini adalah Core Data Magic , bagus dan sederhana untuk pemula.

Solusi 3 - Untuk Sebagian Besar Aplikasi Dunia Nyata

Tetapi Solusi 2 tidak baik jika Anda benar-benar ingin menambahkan properti yang tidak dikelola. (Objective-C tidak memungkinkan properti ditambahkan dalam kategori, dan Swift tidak mengizinkan properti tersimpan ditambahkan dalam ekstensi.) Jadi di sebagian besar aplikasi dunia nyata, Anda mungkin ingin setengah jalan antara Solusi 1 dan 2 ...

  • Tinggalkan model data Anda dalam daftar Sumber Kompilasi
  • Di setiap Inspektur Entitas dalam model data Anda, setel Codegen ke Kategori / Ekstensi .
  • Di Project Navigator, hapus dan buang file Foo + CoreDataClass.m atau .swift , dan, untuk mengurangi kebingungan di masa mendatang, ubah nama file Foo + CoreDataProperties.m atau .swift menjadi mungkin hanya Foo.m atau .swift .
  • Pastikan bahwa setiap Foo.m atau .swift file berisi definisi kelas, yang Anda dapat menambahkan sendiri non-dikelola properti Anda.

(Ucapan terima kasih atas jawaban oleh Positron. Jawaban saya di sini menjelaskan mengapa jawaban Positron (Solusi saya 1) berfungsi, dan menambahkan Solusi 2 dan Solusi 3.)

Jerry Krinock
sumber
ini bekerja untuk saya. kamu luar biasa!
Srujan Simha
Jawaban bagus. Hanya ingin menambahkan, Anda dapat menghapus file tersembunyi yang digandakan menggunakan 'Produk> Bersihkan Folder' setelah memperbaiki Codegen menjadi Manual / Tidak Ada yang diambil dari komentar dari sini .
pasti
21

Salah satu opsi yang memecahkan masalah saya adalah mengubah sistem build menjadi sistem build lawas. Ikuti langkah-langkah berikut dalam Xcode 10+.

Di sini saya telah menulis artikel terperinci tentang masalah & solusinya. Kesalahan Xcode: Beberapa perintah menghasilkan

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Asad Ali Choudhry
sumber
1
Menyelamatkan hidupku. Bekerja dengan sempurna.
Reinaldo
2
Jawaban ini telah diperbaiki sendiri seperti 12 masalah yang saya alami di Xcode dengan React Native. Terima kasih!
Chris Gilardi
19

Dalam kasus saya PDFGenerator membuat file info.plist, saya baru saja menghapusnya.

masukkan deskripsi gambar di sini

Badr
sumber
18

Saya memiliki masalah yang sama, saya memiliki satu aplikasi pembantu lagi di Aplikasi utama dan menyalinnya di sumber daya. Dalam kasus saya dipecahkan sebagai: -

1) Target -> 2) Membangun Fase 2) Salin File (n item) 3) Hapus Salin File.

Aplikasi Helper secara otomatis disalin dalam Xcode 10.0.

masukkan deskripsi gambar di sini

Prakash Jat
sumber
3
Salin file + penghapusan Penghapusan Sumber Daya Bundel membantu.
Oleksandr
Ini bekerja untuk saya dengan sedikit modifikasi - Dalam kasus saya ada beberapa file dalam langkah menyalin file, entah bagaimana nama file yang sama disalin ke bundel beberapa kali / dua kali - menghasilkan kesalahan: menghapus satu baris perlu Anda untuk menyorot baris / filter nama yang dikeluhkan dalam kesalahan dan hapus satu baris dengan tanda minus (selalu di baris bawah) alih-alih menghapus seluruh langkah file salinan.
AztecWarrior_25
16

Tidak ada solusi yang diusulkan di sini yang berfungsi untuk saya. Ini terutama karena CocoaPods. Saya sebelumnya menggunakan Cocoapods 1.3.1. Cukup memutakhirkan ke 1.5.3 tidak langsung menyelesaikan masalah.

Langkah-langkah yang saya ikuti adalah:

  1. Hapus Podfile.lock
  2. Hapus direktori Pods
  3. Hapus Data Berasal & Bersih
  4. Keluar dari Xcode
  5. Perbarui CocoaPods ke 1.5.3
  6. Lari pod install
  7. Buka ruang kerja dan bangun
Justin
sumber
5
Memperbarui CocoaPods ke 1.5.3 (sudo gem install cocoapods) dan menjalankan (instal pod) sudah cukup untuk membuatnya bekerja untuk saya. Terima kasih!
mikemike396
Saya melakukan beberapa rekomendasi di atas tetapi ini adalah satu-satunya yang diselesaikan untuk saya. Terima kasih
Almeida
Yang ini juga memecahkannya untuk saya. Saya pikir ini lebih baik daripada solusi build legacy karena itu sebenarnya menangani masalah.
MateusK
1
Ini bekerja untuk saya, tetapi saya juga harus menambahkan install! 'cocoapods', :disable_input_output_paths => truedi bagian atas podfile saya. Selain itu, jika Anda tidak ingin memperbarui pod Anda - jangan hapus podfile.lock dan semua pod akan diinstal pada versi mereka saat ini.
DoesData
11

Sebelum saya mulai perhatikan bahwa proyek saya menggunakan Carthage sebagai manajer dependensi.

Tidak ada jawaban yang ada di sini yang menyelesaikan masalah saya. Apa yang menyelesaikan masalah bagi saya adalah sebagai berikut.

Pertama, saya perhatikan bahwa kesalahan pembangunan menunjukkan satu kerangka kerja tertentu. Selanjutnya saya memfilter Target Aplikasi> Bangun Fase untuk kerangka kerja itu. Saya perhatikan bahwa framework itu hadir di "Link Binary With Libraries" dan "Embed Frameworks". Memperhatikan bahwa tidak ada kerangka kerja yang tercantum dalam "Kerangka Kerja Embed" yang dikelola oleh Carthage, saya menghapus kerangka kerja yang dimaksud dari "Kerangka Kerja Sematan". Saya kemudian membangun kembali proyek saya dan semuanya berfungsi dengan baik termasuk fungsi yang diaktifkan oleh kerangka kerja yang dimaksud.

palmi
sumber
1
Saya menggunakan PODS. Menghapus semuanya dari Kerangka Sematan berhasil. Saya membersihkan dan membangun kembali tanpa kesalahan. Solusi lawas juga berfungsi tetapi tidak menyelesaikan masalah yang dihadapi (bagi siapa pun yang membaca ini). Saya menggunakan xcode 10.2, cocoapods-1.6.1.
Nadine Rose
1
Saya menggunakan Carthage dan memperbaikinya untuk saya!
Devin B
Saya juga menggunakan CocoaPods. Kerangka terhubung sebagai pod pengembangan. "Embed Frameworks" kosong dan masih mengalami masalah ini
Luten
11

Langkah:

  1. Pergi ke File Xcode
  2. Klik untuk Pengaturan WorkSpace
  3. Build System Pilih sebagai Legacy Build System
Sanjay Mali
sumber
4
Dalam hal ini Xcode menandai masalah dalam proyek, jadi kembali ke sistem build lawas akan menyembunyikannya untuk saat ini. Pelaporan Xcode tentang masalah seperti ini disengaja dan yang terbaik untuk memperbaiki masalah ini. Untuk informasi lebih lanjut, lihat help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 .
Rick Ballard
Ini bekerja untuk saya. Mengubah nama produk tidak. Karena produk saya dicampur dengan setengah kode obyektif-c dan kode cepat. Masalah saya adalah "Banyak perintah menghasilkan modul swift"
wzhang84
10

Coba semua opsi ini, siapa pun dari 3 opsi ini akan bekerja untuk Anda, pasti

Option 1: Remove all files from

Target >> Bangun Fase >> Kompilasi Sumber

Target >> Bangun Fase >> Salin Sumber Daya Bundel

Option 2: Change the build system

Xcode-> File-> Pengaturan Proyek-> Build System -> Legacy Build System

Option 3: remove and update existing pod

cache pod bersih PromisesObjC
cache cache bersih PromisesSwift
cd [your_project_dir]
rm -rf Pods /
rm Podfile.lock
pembaruan pod

I hope this will help you, Happy coding :-)
Shoaib Bagwan
sumber
-1. Tidak, itu tidak berhasil "pasti". Apa gunanya menghapus sumber kompilasi dan menyalin sumber bundel ?! Proyek tidak akan berfungsi tanpa kompilasi kode dan sumber daya.
Luten
9

Jadi masalah yang saya alami adalah bahwa saya tidak sengaja memasukkan Info.plist dalam pengaturan proyek -> Build Phases -> Salin Sumber Daya Bundel untuk target saya.

Austin
sumber
Ini adalah solusi tepat bagi saya juga, karena kesalahan ini terjadi ketika mencoba menjalankan tflite_camera_example di Xcode 10
zai chang
9

Masalah ini muncul untuk saya setelah menambahkan bagian kedua dari rangkaian Fabric SDK ke aplikasi.

Apa yang sebenarnya terjadi adalah bahwa GoogleUtilies Framework ditambahkan dua kali ke proyek Pods

Dua entri untuk GoogleUtilities.framework

Ini akan baik-baik saja sebelum Xcode 10 tetapi Xcode 10 akan mengeluh jika file memiliki dua tindakan menentangnya (dalam hal ini tindakan salin).

Aman untuk menghapus kerangka kerja kedua.

Damo
sumber
Hal yang sama bagi saya, tetapi menggunakan Carthage menyeret semua .frameworks ke proyek bagian perpustakaan
Ronaldo Albertini
Sudahkah Anda memperbaiki @Damo ini
Harikarthick K
Saya menghadapi masalah ini, Bisakah Anda memberi tahu saya cara memperbaikinya, tanpa mengubah warisan
Harikarthick K
9

Berikut ini solusi lain yang berfungsi: (Jika Anda menggunakan Pods khusus)

  • Pilih "Pods" dari sidebar sebagai highlight di tangkapan layar.
  • Klik pada Build Phase. Luaskan bagian "Header". Ada 3 opsi Publik, Pribadi, Proyek
  • Perluas Publik dan periksa ada file duplikat. Singkirkan. DIBUAT !!

masukkan deskripsi gambar di sini

Gajendra K Chauhan
sumber
jawaban ini juga harus dilihat sebagai solusi jika pod (kustom) menyebabkan masalah!
MkaysWork
Anda juga dapat menghapus file * .plist dari sini. Tampaknya berfungsi untuk pod kustom.
Amit Ahire
8

Saya punya banyak Multiple commands produce peringatan - tidak terbatas pada duplikasi info.plist dalam satu target. Termasuk sumber daya lokal dan file string, header dll.

Solusi: hapus semua duplikasi dalam keanggotaan target.

Will Gwo
sumber
Saya mengalami kesalahan ini karena saya memiliki target tontonan dengan file infoplist.strings sendiri yang sedang disalin ke direktori yang sama dengan file infoplist.strings aplikasi utama. Mereka berdua akan berakhir di tempat yang sama ketika sedang dibangun.
Lyck
7

Saya memiliki masalah ini ketika saya memiliki file dengan nama yang sama di dua target yang berbeda. Untuk beberapa alasan, salah satu file itu saya punya bagian dari kedua target. Jadi pada dasarnya saya punya dua file. Dan kedua file tersebut milik satu target.

Masuk akal bahwa target hanya dapat memiliki satu nama file per target, jadi cukup hapus centang pada kotak anggota target untuk file yang tidak terkait dengan target utama menyelesaikan masalah.

Charlie Fish
sumber
7

Saya menggunakan Carthage dan Xcode 10.

Solusi saya adalah -> Proyek -> Target -> Umum ->

Hapus Kerangka ditambahkan dengan Kartago dari "Binari Tertanam"

biasanya kamu harus menambahkan skrip dalam Build Phases untuk menghapus arsitektur untuk app store.

Dalam Xcode 10 skrip sepertinya selalu dipanggil. Jadi itu menyalin kerangka kerja ke tempat yang tepat dan Anda tidak perlu menambahkannya ke Tab Umum.

Catatan: jika tidak disetel -> dalam Pengaturan Bangun -> Jalur Pencarian -> Path Pencarian Paths -> setel path ke Framework u ditambahkan dengan Carthage .... misalnya. "$ (PROJECT_DIR) / Carthage / Build / iOS"

Raegtime
sumber
7

Perlu dicatat bahwa kesalahan ini dapat dihasilkan setelah generasi otomatis model CoreData di mana Codegen tidak diatur ke Manual / None.

Untuk memperbaikinya dalam Xcode 10 klik dua kali pada file xcdatamodeId Anda dan pilih masing-masing entitas Anda dan atur Codegen ke Manual / None di bawah Class di Inspektur Model Data Anda.

Aurelia W
sumber
Iya! Dan juga melakukan "Clean Build Folder".
Dirk
6

Punya masalah serupa tetapi dengan file .swiftdoc.

Saya memiliki ekstensi dan target uji unit dalam proyek. Dan mereka memiliki "Nama Modul Produk" yang sama (PRODUCT_MODULE_NAME dalam Pengaturan Bangun) sebagai aplikasi. Setelah membuat nama masalah unik hilang.

Igor Palaguta
sumber
6

Pindah ke Xcode 10, suka kesalahan

error: Multiple commands produce '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist':

dapat diselesaikan sebagai berikut:

Pergi ke Xcode->File->Workspace/Project Settings-> Build System -> Legacy Build System.

Noor
sumber
2
Dalam hal ini Xcode menandai masalah dalam proyek, jadi kembali ke sistem build lawas akan menyembunyikannya untuk saat ini. Pelaporan Xcode tentang masalah seperti ini disengaja dan yang terbaik untuk memperbaiki masalah ini. Untuk informasi lebih lanjut, lihat help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 .
Rick Ballard
yang ini melakukannya untuk saya, Anda seorang tuan yang genious
samouray
6

Masuk ke Tahap Pembangunan Proyek dan Hapus info.plist dari Sumber Kompilasi. Ini akan menghapus masalah itu dan proyek akan aktif kembali.

masukkan deskripsi gambar di sini

Aditya Sharma
sumber
6

Salah satu CocoaPods saya terpukul dan menyebabkan masalah. Apakah pembaruan pod dan itu berfungsi dengan baik.

Saya percaya itu mungkin LivePerson SDK

ninjaneer
sumber
bagi saya saya hanya perlu melakukan 'pod install'
Pnar Sbi Wer
6

Masalah saya adalah Xcode 10 dijalankan di Mojave, dan ketika mencoba menjalankan unit test yang saya tulis sebelum memperbarui ke XCode 10.

Dalam kasus saya, saya mengalami masalah ini saat menjalankan TestTargettarget saya . Untuk menyelesaikannya, saya harus:

  • Hapus salah satu ketergantungan target (dalam TestTarget > build phases > Target Dependencies)

karena saya memiliki dua target lain selain saya TestTargetdan keduanya menjalankan skrip yang sama dan membuat / menyalin file pada titik tertentu.

Dan itu bertentangan dengan apa yang disebutkan di Build System Release Notes untuk Xcode 10 di sini :

Ini adalah kesalahan untuk setiap file individual dalam build yang diproduksi oleh lebih dari satu perintah build. Misalnya, jika dua target masing-masing mendeklarasikan file output yang sama dari fase script shell, faktor keluar deklarasi file output menjadi target tunggal.

PEMBARUAN Baru setelah saya memperbarui dari Xcode 10.1 ke 10.2

Masalah serupa muncul lagi setelah saya memperbarui ke Xcode 10.2. Saya memiliki beberapa target berdasarkan proyek: Target1dan Target2, dan saya memecahkan masalah ini dengan:

  • menavigasi ke Edit Scheme > Builddan
  • menghapus salah satu target dari yang sedang dibangun: hapus centang pada kotak di Target1bawah Testkarena saya tahu Target2diimporTarget1

Yang perlu diperhatikan di sini, Target2kotak centangnya tetap dicentangTest

Samman Bikram Thapa
sumber
6
error: Multiple commands produce '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings':
1) Target 'chat21' (project 'chat21') has copy command from '/Users/KunshtechNew/Downloads/chat21-ios-demo-master/TildeskWidget/Chat21Core/Base.lproj/Chat.strings' to '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings'
2) Target 'chat21' (project 'chat21') has copy command from '/Users/KunshtechNew/Downloads/chat21-ios-sdk-master 2/Chat21Core/Base.lproj/Chat.strings' to '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings'

Ada 2 solusi berbeda untuk menghilangkan masalah ini:

Solusi 1

Seperti yang dapat kita lihat, saya mendapatkan kesalahan yang sama .. dalam kasus saya ada salinan tambahan folder Chat21Core di folder TildeskWidget .. Ini menciptakan masalah .. Jadi salah satu solusi yang mungkin dapat juga hanya membaca kesalahan sepenuhnya dan coba cari apakah ada salinan tambahan yang dirujuk dari proyek atau tidak.

Solusi 2

Solusi sederhana lain yang saya temukan ketika saya menghadapi masalah yang sama untuk proyek yang berbeda. Kali ini saya harus menerapkan solusi yang berbeda.

  • pod deintegrate dari proyek.
  • Hapus file ruang kerja dan file pod.lock dari folder proyek.
  • Sekali lagi pod install dan cobalah untuk membangun proyek.

Semoga ini bisa bekerja untuk Anda ..

Teknologi Kunsh
sumber