Xcode'da eski / kullanılmayan bir Veri Modeli Sürümü nasıl silinir


163

Xcode'daki eski bir Veri Modelini nasıl silebilirim? Seçenek menüde devre dışıdır. (Silmek istediğim modeller halka açıklanmadı - ara geliştirme modelleri.)


"Düzenle" menüsü altındaki "Sil" seçeneğinin devre dışı olduğunu mu demek istersiniz (Dosya denetçisinde eski Veri Modeli dosyanız seçiliyken)? Yoksa tamamen başka bir şey mi demek istiyorsun?
Michael Dautermann

Evet, Düzenle menüsü altındaki ve ayrıca sağ tıklatma menüsü (ve bulabildiğim herhangi bir menü) altındaki silme seçeneği devre dışıdır. Bazı insanların eski / kullanılmayan sürümleri silmek için önceki bir xcode'a gittiğini biliyorum, ancak yüklü bir sürüm yok.
SAHM

Michael, bunu xCode 4'te yapabilir misin?
SAHM

Evet ... XCode 4 projelerimin hiçbirinde "sil" menü seçeneğinin devre dışı olduğunu hiç görmedim.
Michael Dautermann

Xcdatamodel için mi? Diğerleri de xcdatamodels XCode 4 silmek ile aynı sorunu vardı. Ben sadece bir çözüm görmedim.
SAHM

Yanıtlar:


374

Bu bir hack, ama bu benim için çalıştı:

  1. Xcode'daki modelin Geçerli sürümünü korumak istediğiniz bir sürüme ayarlayın
  2. .Xcdatamodeld'i projenizden kaldırın (Sağ tıklayın -> Sil -> Yalnızca Referansı Kaldır )
  3. .Xcdatamodeld paketinin içeriğini Finder'da gösterme (Sağ tıklayın -> Paket İçeriğini Göster)
  4. Artık istemediğiniz .xcdatamodel dosyalarını silin
  5. Projenize .xcdatamodeld dosyasını yeniden ekleyin

Bu, proje meta veri dosyalarından herhangi birini el ile değiştirme ihtiyacını ortadan kaldırır.


2
Bu tekniği denedim ve model versiyonlarımın isimlendirilme şekli nedeniyle, model versiyonunun yanlış sıralandığını ve xcdatamodel dosyasını projeye tekrar eklediğim için yanlış varsayılan versiyonun seçildiğini buldum. Bunun nedeni 38 model sürümüne kadar olmamam ve varsayılan sürüm adını değiştirmemem olabilir, bu nedenle sürümler "MY_APP 37.xcdatamodel" olarak adlandırılır. 38'i silmek istedim. İçe aktarma sırasında, sözlü sırayla çekildi, yani "MY_APP 10.xcdatamodel" ilkdi ve varsayılan olarak seçildi. Benim durumumda ideal değil.
Mike

1
Mike - benim için aynı sorun, büyük bir dram olmadan bir metin düzenleyicide project.pbxproj'u yeniden sıralayabildim. Hala ideal değil.
Ian Kershaw

1
Bu Xcode 5.1.1 ile çalışmıyor. Önceden, birçok küçük model değişikliği ve artan model sürüm numaraları ile hafif otomatik geçiş doğru şekilde çalışıyordu. Ancak, bu yaklaşımı kullanan tüm "yalnızca geliştirme" modellerini kaldırmayı denedikten sonra hatayı alıyorum: "Hata: Taşıma için eşleme modeli bulunamıyor veya otomatik olarak çıkartılamıyor".
Dalmazio

1
6.4'te referansları kaldırma seçeneği yoktur. Sadece silindi. Adımların geri kalanı işe
yaramış

1
Bu, Xcode 10.2.1'de çalışıyor gibi görünüyor. Taşıma işlemim bazı özellik adı değişikliklerinden ötürü önemli bir şey değildi.
Gavin

35

Bunu yapma ihtiyacını yeni buldum. Yeni bir model versiyonu oluşturdum ve sonuçta ihtiyacım olmadığını fark ettim. Xcode'dan (bulabildiğim) silmenin hiçbir yolu olmadığını görünce şaşırdım. Yine de, kaldırmak için aşağıdakileri yaptım:

Önce mevcut model versiyonum olmadığından emin oldum. Sonra Finder'a gittim ve * .xcdatamodeld dosyamı buldum. Sağ tıklayın ve Paket İçeriğini Göster. Orada gerçek model dosyasını bulacaksınız ve silebilirsiniz.

Bu hala Xcode'dan kaldırmaz ve Dosyalar ve Gruplar'da kırmızı renkte görünür. Bunun olmasını önlemek için ana * .xcodeproj dosyanızdaki Finder ve Paket İçeriğini Göster'e geri dönün (önce bu dosyanın yedeğine sahip olduğunuzdan emin olmak isteyebilirsiniz). Orada açmak ve düzenlemek project.pbxproj benim model "adımı" aralık 8 ", model sürümü adı bulmak. Benim için iki ayrı çizgide ortaya çıktı. Bu satırları kaldırdım ve şimdi Xcode'dan tamamen kaldırıldı.


1
@Daniel_Wood, evet, elle nasıl yapacağımı da öğrenmiştim, ama dikkat et. Hatta bazı sorunlara neden olabilir ... Bunu birkaç kez yeniden yapmak zorunda kaldım, ayrıca aktif ve aktif olmayan sürümleri bazen değiştirir, daha sonra doğru sürümü sıfırladığınızda, listenin üst kısmında (bazen) daha fazla soruna neden olur! Gerçi giriş için çok teşekkürler. Bu, bu özelliği kaldırabilecekleri tuhaf görünüyor - asla .xcodeproj dosyasına girmemize gerek yok!
SAHM

2

Bu, tüm modeli kaldırırken ve tekrar eklerken sipariş sorunu olmadan XCode 10.3'te benim için çalıştı:

  1. Silmek istediğiniz modelin dışındaki herhangi bir model sürümünü seçin.
  2. XCode'dan .xcdatamodeld dosyasını sağ tıklayın ve 'Finder'da Göster'i seçin.
  3. XCode'u kapatın.
  4. Bulucuda aynı dosyayı sağ tıklayın ve 'Paket İçeriğini Göster'i seçin.
  5. Kaldırmak istediğiniz modelin adını yazın, ardından Finder'dan silin.
  6. Hala Finder'da proje dosyasına (.xcodeproj) gidin.
  7. Atom'a veya başka bir düzenleyiciye sağ tıklayın ve açın .
  8. 'Proje' bölmesinden project.pbxproj dosyasını açın.
  9. Kaldırdığınız model adını içeren tüm satırları kaldırın (Örnek: "ABC 17.xcdatamodel"). Aşağıdakine benzer iki satır bulacaksınız:

    9D88880323C545B800A789B9 / * ABC 17. xcdatamodel * / = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; yol = " ABC 17. xcdatamodel "; sourceTree = ""; };

    9D88880323C545B800A789B9 / * ABC 17. xcdatamodel * /,

    Üçüncü bir satır bulursanız, bunun şöyle bir şey olacağını unutmayın:

    currentVersion = 9D88880323C545B800A789B9 / * ABC 17. xcdatamodel * /;

    Bu şu anda seçili model olduğu anlamına gelir. Bu satırı asla silmeyin. Metni başka bir model sürümüne değiştirmeniz yeterlidir.

  10. XCode'u yeniden açın.


-4

Cevabım konuya özgü değil ama hızlı ve işe yarıyor. Git kullananlar için. Yalnızca değişiklik yapılmayan değişiklikleri atabilirsiniz.

git stash save --keep-index

Daha sonra isterseniz bu zulayı bir git stash dropkomutla bırakabilirsiniz .

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.