Xcode: proje binasında “dosya xxx.png dosyası çalışma kopyasında eksik” sorunu


265

Projeye bazı png dosyalarını sildikten / ekledikten sonra, proje oluştururken mesajlar aldım.

"ProjectPath \ aaa \ xxx.png dosyası, çalışma kopyasında eksik."

Tüm bu dosyalar projede ve uygulama çalışıyor. Ancak, bu mesajlar can sıkıcıdır. .Plist dosyasına bakıldı, ancak bu dosyalardan bahsedilmiyor. Bu mesajları kaldırmak için ne yapmalıyım?


Yanıtlar:


495

Değişiklikleriniz yapılır yapılmaz uyarı kaybolacaktır (Xcode 8).


2
Bazı dosyaları farklı bir dizine taşıdıktan sonra değişiklikleri altında gitmem gerektiğini öğrendim.
Chris Livdahl

@LearnSwift Temiz Cmd + Üst Karakter + K, sil ~ / Library / Developer / Xcode / DerivedData / *?
Alexander Vasenin

2
@AlexanderVasenin ne de
Hızlı Öğrenme

7
Benim için sadece değişiklikleri sahnelemek yeterliydi. Bunu bildiğim iyi oldu.
charmingToad

13
Bahsettiğiniz gibi, son değişiklikleri yapmayı taahhüt ettim. Ancak bunu yapmak hataları ortadan kaldırmadı. Sonra Xcode> Kaynak Denetimi> TÜM Değişiklikleri Sil'i yaptım ve benim için tüm hataları temizledi.
EdwardM

97

Bu sorunun farklı nedenleri olabilir, ancak genellikle kaynak kontrol yazılımı ile ilişkilidir.

Benim durumumda Git'e gidip dosyaları tekrar ekleyerek çözdüm. Aşağıdaki komutu çalıştırmak demek istiyorum:

git add .

Xcode 8'i yükledikten ve kodu hızlı bir şekilde 3'e yükselttikten sonra, sözdizimi düzeltmeleri (büyük proje) gerektiren 300'den fazla sorunla karşılaştım. Bunun yerine, bir yedeklemeden geri yükledim ve hızlı bir şekilde 2.3'e yükselttim ... bu 'eksik' mesajların bir kısmı hariç hepsi iyi gitti. Bu komut bir cazibe gibi çalıştı - işime geri döndüm!
Dan Ross

Bu benim için işe yaradı. Sorun, Eskiden Podha'da Carthage lehine aldığım şeyi kaldırdığımda başladı
Sebastian Sastre

1
Bu benim için de geçerli. Dosya kaynak kontrolü altında gibi görünüyor ve git de güncellenmesi gerekiyor.
Shardon

git taahhüt sonra uyarı kayboldu
carmen_munich

3
Diğerleri için: 'git add' komutunu uygulayarak Xcode projenizin kök klasöründe bulunmalısınız. komut: / MyXcodeProjects / AwesomeApp /
Philip Borges

59

İşaretini kaldırarak da kaynak denetimini devre dışı bırakabilirsiniz

Xcode -> Tercihler -> Kaynak Kontrolü -> Kaynak Kontrolünü Etkinleştir

komut satırı veya başka bir uygulama üzerinden yönetiyorsanız.


bunu benim için yaptı, bunu IDE'de görmek biraz can sıkıcı, ya kaynak kontrolünü iyi desteklemeli ya da hiç desteklememeli
samiq

1
İki işlem yaptım: 1) Kaynak Denetimini Etkinleştir için "işaretini kaldır", 2) "kontrol et". Uyarılar kayboldu.
Viktor

58

XCode'da -> SoureControl:

Update+ Refresh Statusbenim için yaptı.


Bunun dosya adında "@ 2x" ve "@ 3x" konvansiyonu gibi görüntülerden kaynaklanabileceğini düşünüyorum. SVN, revizyon sözdizimi için bu sembolü kullanır (komut satırında SVN ile çalışırken kaçmak için, en sonda revizyon bilgisini belirlemek ve belirlemek için kullandığı "@" eklenir). Sadece Update'i çalıştırmak benim için çalıştı. Bazı yeni görüntüler eklediğimde, aslında Dosya Denetçisi bölmesindeki 2x / 3x varyantlarında da "ekle" yi seçmek zorunda kaldım. Tuhaf.
Android3000

1
Bu! çok önemli. Sorun, dosyaları içeren bir klasörü yeniden adlandırırsanız da gelir. Diğer bir deyişle, xcode bize uyarı veriyor çünkü kodumuzu henüz işleme koymadık! clap clap clap
Warpzit

4
Bu benim için çalıştı. Xcode'u kapatıp projeyi tekrar açmam ve çalıştırmam gerekiyordu.
jaytrixz

44

Benim durumumda, dosya kaynak denetiminde eksikti.
Düzeltmek için, bu dosyayı atmak zorunda kaldım (tüm projenizi değil sadece eksik dosyayı atın):

  1. Xcode-> Kaynak Kontrolü-> taahhüt
  2. Eksik dosyayı sağ tıklayın
  3. Değişiklikleri Sil'i seçin

Benim için çalışıyor, DerivedData klasörünü kaldırdım ve uyarılar dosyalar içindi "db.xcindexdb"
tontonCD

1
İlk olarak, son değişiklikleri yapmayı taahhüt ettim. Sonra Xcode> Kaynak Denetimi> Tüm Değişiklikleri Sil'i yaptım ve tüm hataları benim için temizledi.
EdwardM

19

Kaynak Denetimi'ni devre dışı bırakın, derleme klasörünü ( Alt+Shift+Cmd+K) temizleyin , ardından Kaynak Denetimi'ni yeniden etkinleştirin.

Xcode -> Tercihler -> Kaynak Kontrolü -> Kaynak Kontrolünü Etkinleştir


1
doğru cevap ... ama kesin cevap @emrekyv 3 ay önce gönderildi ... O oy alır
eric

@eric o sadece kaynak kontrolünü devre dışı bırakmayı önerdi, nasıl doğru çalışacağını gösterdim.
George

18

Benim durumumda, Xcode bir şekilde .svneksik dosyalara başvuran eski dizinleri buldu . Bu .svn dosyalarını bulmak için proje klasörü üzerinde bir seviye yukarı çıkmak zorunda kaldı . Silindikten sonra Xcode'u yeniden başlattım ve her şey yolundaydı.


Evet, bu durum hala sürüm denetimi tarafından başvurulduğunda (benim durumumda, svn) sürüm denetimi altındaki bir projeden bir şey sildiğinizde olur. Eksik dosyaları geri yüklemek için "svn update" kullanmak, daha sonra "svn delete" kullanarak doğru şekilde silmek, sorunu benim için ortadan kaldırdı.
ChrisB

12

Hala Xcode 7 kullanırken Xcode projemden uzun süredir silinmiş bir avuç dosya ile benzer bir sorun vardı.

Benim çözümüm şuydu:

  1. Xcode'un şikayet ettiği adlarla dosyalar oluşturun (herhangi bir içeriğe ihtiyaçları yoktur)
  2. Dosyaları Xcode projeme ekleyin (Xcode'da ana proje dizinime sağ tıklayın, Dosyalarımı proje_adı'na ekle'ye tıklayın ve yeni oluşturulan dosyaları seçin
  3. Yeni eklenen dosyaları seçin ve silin - çöp kutusuna taşı'yı seçin.

Bu benim için uyarılardan kurtuldu.


Bu benim için de işe yaradı. Türev yapmak için mevcut bir projeyi kopyaladıktan sonra sorun yaşadım, ancak işlevselliği daha az kaynak dosyaları kesti.
Stefan

9

Alexander Vasenin'nin cevabına eklemek için ...

Önce değişiklikleri taahhüt ettim ve ittim

Xcode Ana Menü> Kaynak Kontrolü> Tamamlama

Sonra hatalardan kurtulmak için Tüm Değişiklikleri Attım

Xcode Ana Menü> Kaynak Kontrolü> Tüm Değişiklikleri Sil

Bundan sonra, "xxx.png dosyası çalışma kopyasında eksik" ifadesi kayboldu.


Proje sürüm kontrolü veya XCode tarafından desteklenmeyen bir sürüm kontrol sistemi kullanmıyorsa ne olur.
Martin

8

Bu, Xcode'daki dosyayı sildiğinizde oluşur, ancak svn sunucusuna bu konuda bilgi vermedi.

Komut satırı aracına gidin ve dosyayı doğrudan silin.

svn delete missingFile.m 

ve taahhüt et

svn commit -m "Deleting file"

.svn klasörünü silerseniz, uyarı kaybolur ancak svn sunucusuyla iletişimi kaybedersiniz.


5

Ben hallettim.

sadece üçüncü taraf SVN aracınızı açın, miss dosyalarını bulun, Revert; bu kadar.


5

Ben de aynı sorunu vardı ve git eklemek tarafından çözüldü. Komut Satırı Aracını Aç

cd "project folder path"
git add .

Daha sonra Xcode projesini yeniden başlatın ve projenizi tekrar açın.


Git kullanmazsanız ne olur?
Martin

4

Hedef-> yapı aşamalarında göster -> Paket Kaynaklarını kopyala. ve derleme klasörü komutunu temizle + üst karakter + alt + k


3
Teşekkürler, ancak Derleme Aşamalarında değildirler ve derleme klasörünü temizlemek de yardımcı olmaz.
Iban

4

El ile Terminal girmek ve ile dosyaları kaldırmak git rm ProjectPath\aaa\xxx.pngve sonra taahhüt vardı. Ondan sonra her şey yolunda gitti.


3

XCode 8'e geçtikten sonra her proje için bunu aldım.

Seçenek Tuşuna basıldığında, Ürün (başlık menüsünde) -> Klasörü Temizle'yi seçin.


2

Benim durumumda, simülatördeki eski projelerimden yanlış verilerim vardı. Simülatördeki içeriği ve ayarları sıfırlayarak çözüldü:

Simülatör -> İçeriği ve ayarları sıfırla ...


1

Benim için aşağıdakiler işe yaradı:

Git'i kullanmadığım ve hiç kullanmadığım için yeni bir proje oluşturdum (XCode 8, her zamanki "Git'i kullan" ı göremedim ya da onay işareti etiketlendi). Sonra bu yeni projedeki tüm dosyaları açıkça sildim; eski dağınık projeye gitti, proje klasöründeki her şeyi kopyaladı, yeni oluşturulan projeye geri döndü, eski şeyleri yapıştırdı, açıldı - aylardır mevcut olmayan dosyalar hakkındaki tüm uyarılar gitti. Parmaklar geçti.


1

Ben de aynı sorunu vardı ve sadece belirtilen dosyaları bulucudan proje navigator (diyalogda "dosyaları kopyala seçili olmasını sağlamak) içine sürükleyerek ve dosyaları işleyerek çözüldü.


1

Bu uyarılar derleme uyarısı değildir, SVN deponuzla ilgilidir.

Gösterilen dizinlerin artık mevcut olmadığı doğrudur, CocoaPods başlıkları Pods/Headers/{Private,Public}şimdi saklar . Bu kopyaları yansıtacak şekilde çalışma kopyanızı güncellemelisiniz.


XCode içindeki sürüm kontrolünü kullanmıyorum ve eşik sorunu çözdü.
Martin

1

Benim durumumda Xcode proje pencereme birkaç dosyayı sürükleyip bıraktım. Kaynak dizinime kopyalar yaptı ama onları gitmelerini istediğim yere koymadı (dizinimin köküne koydu, bir alt dizinde istedim). Düşünmeden onları Finder'da yakaladım ve onları istediğim dizine taşıdım. Proje penceresine döndükten sonra elbette onları bulamadı, bu yüzden onları pencerede sildim ve tekrar ekledim. Derledikten sonra bu hataları almaya başladım.

Yukarıda bir git sorunu olduğunu ancak "git ls-tree --full-tree -r HEAD" koştuğunda bahsettiğim gibi dosyaları hiç görmedim?

Her neyse bunu düzeltmek için yaptığım tek şey "Dosya Ekle ..." menü komutunu kullanmak, her bir dosyayı varsayılan konuma eklemek, temiz bir derleme yapmak ve sonra bunları proje penceresinden silmek (çöp kutusuna taşıyarak) ve bütün hatalardan kurtuldu.


1

Uyarılar vardı ve ayrıca XCode (svn kullanarak) altında değişiklikler yapamadım. Tek yapmam gereken XCode'u yeniden başlatmaktı ve sorun ortadan kalktı.


1

Bu benim için çalışıyor: Xcode -> ("seçenek + tıklama") Ürün -> Klasörü Temizle ...
xCode'u yeniden başlat


0

Benim durumumda git ve büyük / küçük harf duyarsız bir dosya sistemi ile ilgili bir sorun vardı.

Yanlışlıkla, yalnızca iki durumda farklı dosya yollarını kullanarak aynı dosyayı iki kez göndermiştim:

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

Xcode eksik dosyalardan biri hakkında şikayet ediyordu.

Sorun yaratan dosyaları silerek ve yeniden ekleyerek düzeltildi.

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

0

Bu kesinlikle kaynak kontrolü ile ilgilidir. Birkaç kararlı olmayan plist dosyasını yeniden adlandırdım ve taşıdım ve bu hatayı aldım. Svn kullanıyorum. Source Control - CommitEski başvuru dosyalarını kaldırarak bunu düzeltmeyi başardım .


Sorun var ve XCode farkında farkında sürüm kontrolü kullanmıyorum. Tüm sürüm kontrolü XCode dışında yapılır.
Martin
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.