Xcode: masalah "file xxx.png hilang dari copy pekerjaan" di gedung proyek

265

Setelah menghapus / menambahkan beberapa file png ke proyek, saya sudah mendapat pesan saat membangun proyek.

"File ProjectPath \ aaa \ xxx.png hilang dari copy pekerjaan."

Semua file ini ada di proyek, dan aplikasi sedang berjalan. Namun, pesan-pesan ini menyebalkan. Tampak file .plist, tetapi tidak disebutkan file-file ini. Apa yang harus saya lakukan untuk menghapus pesan-pesan ini?

Iban
sumber

Jawaban:

495

Peringatan akan hilang segera setelah Anda melakukan perubahan Anda (Xcode 8).

Alexander Vasenin
sumber
2
Ditemukan bahwa saya hanya harus melakukan perubahan di bawah git setelah memindahkan beberapa file ke direktori yang berbeda.
Chris Livdahl
@LearnSwift Bersihkan Cmd + Shift + K, hapus ~ / Library / Developer / Xcode / DerivedData / *?
Alexander Vasenin
2
@AlexanderVasenin tidak
Belajar Swift
7
Bagi saya hanya melakukan perubahan sudah cukup. Senang mendengarnya.
charmingToad
13
Seperti yang Anda sebutkan, saya memastikan untuk Berkomitmen dan Mendorong perubahan terbaru saya. Tetapi melakukan hal itu tidak menghapus kesalahan. Jadi saya melakukan Xcode> Kontrol Sumber> Buang SEMUA Perubahan, dan itu membersihkan semua kesalahan untuk saya.
EdwardM
97

Tampaknya masalah ini mungkin memiliki penyebab yang berbeda, tetapi seringkali terkait dengan perangkat lunak kontrol sumber.

Dalam kasus saya, saya menyelesaikannya dengan membuka Git, dan menambahkan file lagi. Maksud saya menjalankan perintah berikut:

git add .
nbloqs
sumber
Setelah menginstal Xcode 8 dan meningkatkan kode ke swift 3 saya berakhir dengan lebih dari 300 masalah yang membutuhkan koreksi sintaksis (proyek besar-besaran). Sebaliknya, saya memulihkan dari cadangan dan meningkatkan ke swift 2.3 ... semua berjalan dengan baik kecuali untuk sekelompok pesan 'hilang' ini. Perintah ini bekerja seperti pesona - saya kembali dalam bisnis!
Dan Ross
Inilah yang bekerja untuk saya. Masalah dimulai ketika saya menghapus apa yang dulu ada di Pods untuk Carthage
Sebastian Sastre
1
Ini juga berfungsi untuk saya. Tampaknya file tersebut di bawah kendali sumber dan git perlu diperbarui juga.
Shardon
setelah git melakukan peringatan itu menghilang
carmen_munich
3
Untuk yang lain: Anda harus berada di folder root proyek Xcode Anda dengan mengeksekusi 'git add.' perintah: / MyXcodeProjects / AwesomeApp /
Philip Borges
59

Anda juga dapat menonaktifkan kontrol sumber dengan menghapus centang

Xcode -> Preferensi -> Kontrol Sumber -> Aktifkan Kontrol Sumber

jika Anda mengelolanya melalui baris perintah atau aplikasi lain.

emrekyv
sumber
ini melakukannya untuk saya, agak menyebalkan melihat ini di IDE, mereka harus mendukung kontrol sumber dengan baik atau tidak sama sekali
samiq
1
Saya telah melakukan dua tindakan: 1) "hapus centang", 2) "centang" untuk Mengaktifkan Kontrol Sumber. Peringatan menghilang.
Viktor
58

Dalam XCode -> SoureControl:

Update+ Refresh Statusmelakukannya untuk saya.

lebih tenang
sumber
Saya pikir ini mungkin karena gambar memiliki "@" di nama file, seperti konvensi "@ 2x" dan "@ 3x". SVN menggunakan simbol itu untuk sintaks revisi (untuk menghindarinya ketika bekerja dengan SVN di baris perintah, Anda cukup menambahkan "@" di akhir karena kejadian terakhir adalah yang ia gunakan untuk mencoba dan menentukan info revisi). Cukup menjalankan Pembaruan berhasil untuk saya. Ketika saya menambahkan beberapa gambar baru, saya sebenarnya harus memilih "tambah" secara manual pada varian 2x / 3x di panel File Inspector juga. Aneh.
Android3000
1
Ini! sangat penting. Masalahnya juga muncul jika Anda mengganti nama folder yang berisi file. Dengan kata lain, xcode memberi kita peringatan karena kita belum melakukan kode kita! clap clap clap
Warpzit
4
Ini berhasil untuk saya. Saya harus menutup Xcode dan membuka proyek lagi dan menjalankannya.
jaytrixz
44

Dalam kasus saya, file tersebut hilang dari kontrol sumber.
Untuk memperbaikinya, saya harus membuang file ini (hati-hati hanya membuang file yang hilang tidak semua proyek Anda):

  1. Xcode-> Source Control-> commit
  2. Klik kanan file yang hilang
  3. Pilih Buang Perubahan
Ronen
sumber
Ini berfungsi untuk saya, saya memang menghapus folder DerivedData, dan peringatan untuk file adalah "db.xcindexdb"
tontonCD
1
Pertama, saya memastikan untuk Berkomitmen dan Mendorong perubahan terbaru saya. Lalu saya melakukan Xcode> Kontrol Sumber> Buang Semua Perubahan, dan itu membersihkan semua kesalahan untuk saya.
EdwardM
19

Nonaktifkan Source Control, bersihkan folder build ( Alt+Shift+Cmd+K), lalu Enable Source Control lagi.

Xcode -> Preferensi -> Kontrol Sumber -> Aktifkan Kontrol Sumber

George
sumber
1
jawaban yang benar ... tetapi jawaban yang tepat @emrekyv diposting 3 bulan sebelumnya ... Dia mendapatkan suara
eric
@ eric dia menyarankan hanya untuk menonaktifkan kontrol sumber, saya menunjukkan cara membuatnya bekerja dengan benar.
George
18

Dalam kasus saya, Xcode entah bagaimana menemukan .svndirektori lama yang mereferensikan file yang hilang. Saya harus naik tingkat di atas folder proyek saya untuk menemukan file .svn itu. Setelah dihapus, saya memulai ulang Xcode dan semuanya baik-baik saja.

kubi
sumber
Ya, ini terjadi ketika Anda menghapus sesuatu dari proyek di bawah kontrol versi ketika masih direferensikan oleh kontrol versi (dalam kasus saya, svn). Menggunakan "pembaruan svn" untuk mengembalikan file yang hilang, kemudian menghapusnya dengan cara yang benar menggunakan "svn delete", membuat masalah ini hilang untuk saya.
ChrisB
12

Saya memiliki masalah yang sama dengan beberapa file yang sudah lama dihapus dari proyek Xcode saya saat saya masih menggunakan Xcode 7.

Solusi saya adalah:

  1. Buat file dengan nama yang dikeluhkan Xcode (mereka tidak memerlukan konten apa pun)
  2. Tambahkan file ke proyek Xcode saya (di Xcode klik kanan pada direktori proyek utama saya, klik Tambah file ke my_project_name dan pilih file yang baru saja dibuat
  3. Pilih file yang baru ditambahkan dan hapus - pilih pindah ke tempat sampah.

Ini menghilangkan peringatan untuk saya.

Gabrielle Earnshaw
sumber
Ini berhasil juga untuk saya. Saya memiliki masalah setelah menyalin proyek yang ada untuk membuat turunan, tetapi dengan mengurangi fungsionalitas ⇒ lebih sedikit file sumber.
Stefan
9

Untuk menambahkan jawaban Alexander Vasenin ...

Pertama saya berkomitmen dan mendorong perubahan saya

Xcode Menu Utama> Kontrol Sumber> Komit

Lalu saya Buang Semua Perubahan untuk menyingkirkan kesalahan

Xcode Menu Utama> Kontrol Sumber> Buang Semua Perubahan

Setelah itu, kesalahan yang menyatakan "file xxx.png hilang dari copy pekerjaan" menghilang.

EdwardM
sumber
Bagaimana jika proyek tidak menggunakan kontrol versi atau sistem kontrol versi yang tidak didukung oleh XCode.
Martin
8

Ini terjadi ketika Anda menghapus file pada Xcode, tetapi tidak memberi tahu server tentang hal itu.

Buka alat baris perintah, dan hapus file secara langsung.

svn delete missingFile.m 

dan lakukan itu

svn commit -m "Deleting file"

perhatikan bahwa jika Anda menghapus folder .svn, peringatan itu hilang tetapi Anda akan kehilangan komunikasi dengan server svn.

Kang Byul
sumber
5

Saya berhasil.

cukup buka alat SVN pihak ketiga Anda, cari file yang hilang, Kembalikan; itu saja.

traximus
sumber
5

Saya memiliki masalah yang sama dan menyelesaikannya dengan menambahkan git. Buka Alat Baris Perintah

cd "project folder path"
git add .

Kemudian, restart proyek Xcode dan buka kembali proyek Anda.

Atc Ugur
sumber
Bagaimana jika Anda tidak menggunakan git?
Martin
4

Tunjukkan pada target-> tahap membangun -> salin Sumber Daya Bundle. dan bersihkan perintah build folder + shift + alt + k

BHASKAR
sumber
3
Terima kasih, tetapi mereka tidak ada dalam Build Phases, dan membersihkan folder build tidak membantu juga.
Iban
4

Saya harus secara manual masuk ke Terminal dan menghapus file dengan git rm ProjectPath\aaa\xxx.pngdan kemudian komit. Setelah itu semuanya bekerja dengan baik.

yesthisisjoe
sumber
3

Dapatkan ini untuk setiap proyek setelah pindah ke XCode 8. Ini menyelesaikannya:

Dengan Tombol Pilihan ditekan, Produk (dalam menu judul) -> Bersihkan Folder Bangun.

TomV
sumber
2

Dalam kasus saya, saya memiliki data yang salah dari proyek lama saya di simulator. Dipecahkan dengan mengatur ulang konten dan pengaturan di simulator:

Simulator -> Setel ulang konten dan pengaturan ...

Saluran
sumber
1

Bagi saya yang berikut ini berfungsi:

Karena saya tidak dan tidak pernah menggunakan Git, saya membuat proyek baru (XCode 8, saya tidak bisa melihat "use Git" yang biasa atau tanda centangnya berlabel). Kemudian saya menghapus semua file dalam proyek baru ini; pergi ke proyek lama yang berantakan, menyalin semua yang ada di folder proyek, kembali ke proyek yang baru dibuat, menempelkan barang-barang lama, membuka itu - semua peringatan tentang file yang belum ada selama berbulan-bulan hilang. Semoga saja.

TommyTheCat
sumber
1

Saya memiliki masalah yang sama dan menyelesaikannya dengan hanya menyeret file yang ditentukan dari finder ke navigator proyek (memastikan bahwa "salin file" dipilih dalam dialog) dan melakukan file.

user2698617
sumber
1

Peringatan ini bukan membangun peringatan, ini tentang repositori SVN Anda.

Benar bahwa direktori yang ditunjukkan tidak ada lagi, CocoaPods menyimpan header di Pods/Headers/{Private,Public}sekarang. Anda harus memperbarui copy pekerjaan Anda untuk mencerminkan perubahan itu.

Mutawe
sumber
Saya tidak menggunakan kontrol versi di dalam XCode dan karena itu punya masalah.
Martin
1

Dalam kasus saya, saya tarik & jatuhkan sejumlah file pada jendela proyek Xcode saya untuk menambahkannya. Itu membuat salinan ke direktori sumber saya tetapi tidak menempatkan mereka di mana saya ingin mereka pergi (itu menempatkan mereka di root direktori saya, saya ingin mereka di sub-direktori). Tanpa pikir panjang saya hanya mengambilnya di Finder dan memindahkannya ke direktori yang saya inginkan. Setelah kembali ke jendela proyek, tentu saja tidak dapat menemukannya sehingga saya menghapusnya di jendela dan menambahkannya. Setelah mengkompilasi saya mulai mendapatkan kesalahan ini.

Saya pikir, seperti yang disebutkan di atas bahwa itu adalah masalah git tetapi ketika saya menjalankan "git ls-tree --full-tree -r KEPALA" Saya tidak melihat file sama sekali ??

Pokoknya untuk memperbaiki semua yang saya lakukan adalah menggunakan perintah menu "Add File ..." untuk menambahkan masing-masing file ke lokasi default, melakukan build bersih, dan kemudian menghapusnya dari jendela proyek (menggunakan pindah ke tempat sampah) dan itu menghilangkan semua kesalahan.

KevinR
sumber
1

Saya mendapat peringatan, dan juga tidak dapat melakukan perubahan di bawah XCode (menggunakan svn). Yang harus saya lakukan adalah me-restart XCode dan masalahnya hilang.

Hugh Jeffner
sumber
1

Ini berfungsi untuk saya: Xcode -> ("option + click") Produk -> Clean Build Folder ...
Daripada restart xCode

Mykyta Savchuk
sumber
0

Dalam kasus saya itu adalah masalah dengan git dan sistem file case-insensitive.

Saya secara tidak sengaja mengirimkan file yang sama dua kali, menggunakan jalur file yang berbeda hanya dalam kasus:

MyProject/Resources/foo.png
MyProject/resources/foo.png

Xcode mengeluh tentang salah satu file yang hilang.

Diperbaiki dengan menghapus file yang menyinggung, dan menambahkan kembali.

cd MyProject
mv Resources/foo.png /tmp
git rm Resources/foo.png
git rm resources/foo.png
git commit
mv /tmp/foo.png Resources
git add Resources/foo.png
git commit
Darren
sumber
0

Ini jelas terkait dengan kontrol sumber. Saya mengganti nama dan memindahkan beberapa file plist yang tidak berkomitmen dan mendapatkan kesalahan ini. Saya menggunakan svn. Saya dapat memperbaikinya Source Control - Commitdengan menghapus file-file referensi lama.

Hahnemann
sumber
Saya mendapat masalah dan saya tidak menggunakan kontrol versi yang diketahui XCode. Semua kontrol versi dilakukan di luar XCode.
Martin