Dosyaları Xcode'da Gerçek Bir Klasöre Taşıma


177

Projemi başlattığımda Google Grupları'nı gerçek klasörlerden ziyade Xcode'da kullanmaktan mutluluk duydum: Her şeye erişmek için Xcode'da tarayıcıyı kullandığım için, işler güzelce organize edildi ve mutluydum.

Ancak, proje sürüm kontrolü için paylaşılmak üzereyken, proje klasörünün kendisi, yarısı 300'den fazla grafik olan bir terminal aracılığıyla taramaya çalışanlar için bir korku gösterisi.

Şimdi şeyleri yeniden organize etmeye çalışıyorum, gerçek klasörler oluşturup Xcode'a aktarıyorum. Ne yazık ki Xcode, onlarla gruplarla olduğu gibi çalışmama izin vermiyor. Örneğin, gerçek bir eklenen klasöre sağ tıklarsam (sarı değil, mavi) ve varolan dosyaları eklemeyi seçersem, onları bu klasöre koymaz, köküne koyar.

Benzer şekilde, bir dosyayı bir sahte klasörden (bir grup) gerçek bir klasöre taşıyamam: Xcode, gerçek klasörlerin bir şeyler taşımak için geçerli yerler olduğunu düşünmez.

Neyi kaçırıyorum? Xcode'u klasörleri grupları kullandığım şekilde kullanmama nasıl ikna edebilirim? Burada biraz benzer bir sorunun cevabı var , ancak mevcut dosyalarla çalıştığım için sorunumu gerçekten çözmüyor.

Yanıtlar:


176

2017 için modern (ve çok basit!) Bir yaklaşım (Xcode 6, 7, 8 ve bazen 9, çünkü bazen otomatik olarak yapar):

Bir grup dosyayı yeni bir klasöre taşıyorsanız ve alt hiyerarşiyi koruyorsanız, aslında her dosyayı tek tek taşımaktan çok daha kolaydır:

  1. Xcode klasör ağacında yeni gruplar oluşturun ve dosyalarınızı dilediğiniz gibi düzenleyin.
  2. Finder'da eşleşen bir fiziksel klasör ağacı oluşturun ve fiziksel dosyalarınızı 1. adımda yaptıklarınıza uyacak şekilde düzenleyin.
  3. Xcode'daki tüm referanslar şimdi kırmızı olmalıdır (sorun değil!).
  4. Kimlik ve Tür yöneticisinden, yeniden konumlandırmak istediğiniz Grubu Xcode'da seçin , ardından bilgi bölmesinden klasör simgesini tıklatın:

  5. Finder seçimi iletişim kutusunda, 2. adımda bu grup için oluşturduğunuz eşdeğer yeni klasörü bulun. Gruptaki tüm dosyalar artık otomatik olarak yeniden keşfedilecek!

Hoş değil mi? Oluşturduğunuz her yeni grup için en fazla bu 5 adımı bir kez tekrarlamanız gerekir (bu, her dosyanın ayrı ayrı taşınmasını yener!)

Bonus puanlar!

Yanlışlıkla hareketi bozduğunuzu ve şimdi bir grup dosyanızın kırmızı olduğunu ve bulunamadığını varsayalım: bozuk birden çok dosya seçin ve 4. adımdaki ekran görüntüsünde aynı klasör simgesini kullanarak bunları içeren doğru klasörü bulun ve eksik yolları otomatik olarak çözer.


3
Ancak bunu yapmak Git'te dosyaların izlenmesini engeller. Tabii ki her zaman dosyayı okuyabilirim ama bir şey eksik mi?
SleepNot

2
@jeraldo git'in hangi lezzetini kullandığınızdan emin değilim ama bu problemi hiç yaşamadım. Ancak bunu kolayca yapabilirsiniz git add ..
brandonscript

Bir şey eksik ve ne olduğundan emin değilim. Belki adım (1) 'de "dosyalarınızı onlara organize ..." kelimelerinin anlamını anlamıyorum? Bunun "dosyaları sürükle bırak yöntemiyle veya gruba ekleyin" anlamına geldiğini varsayalım. Ancak bunu yaparsam, elbette Xcode dosyaları tanır ve adım (3) 'te belirtildiği gibi kırmızı renkte göstermez. Ne yaptığımı biliyor musun?
hkatz

Fiziksel dosyaları 2. adımdaki gibi taşıdınız mı?
brandonscript

1
Ah, anladım! Adım (2) benim için biraz fazla şifreli idi. Yeniden yazsaydım, "Eşleşen bir fiziksel klasör ağacı oluştur, ardından Adım (1) 'de yeni Gruba eklediğiniz dosyaları bulmak için Xcode'un Finder'da Göster komutunu kullanın ve bu dosyaları fiziksel olarak taşıyın. yeni oluşturduğunuz klasöre ekleyin. " Böyle bir şey ...
hkatz

119

DAHA FAZLA DÜZENLENMİŞ HAZİRAN 2017: Xcode 9 bunu otomatik olarak yapar, özel bir çaba gerektirmez. Bu cevap ve Brandon sadece Xcode 8 ve öncesi için geçerlidir.

DÜZENLİ Aralık 2016: Brandon'ın aşağıdaki cevabı şimdi daha iyi bir çözüm. Bu cevap 2010 yılında oluşturulduğunda, bulabildiğim tek seçenek buydu. Şimdi Brandon'ın cevabını aşağıda öneriyorum .


Olması gerektiği kadar basit olmasa da, dosyaları gerçek klasörlere taşımanın kesinlikle mümkün olduğu ortaya çıkıyor.

Burada bir sorudan temel bilgileri aldım, Xcode dosyaları ve klasörleri düzenledi (temel veri modeli nesneleri - iPhone) , ancak yol boyunca önemli şeyler öğrendim.

Süreç

Dosyaları taşımak, birden fazla alt adımı olan iki adımlı bir işlemdir:

  1. Xcode'a dosyaların nerede olmasını istediğinizi söyleyin :

    • Taşımak istediğiniz dosyaya veya dosya grubuna sağ tıklayın / Control tuşunu basılı tutarak tıklayın ve görüntülenen bağlam menüsünden Bilgi Al'ı seçin . Grup Bilgisi veya Dosya Bilgisi penceresi görünür.

    • Yol alanında pencerenin en sağ tarafındaki Seç düğmesini tıklayın . Bir iletişim kutusu görünür.

    • Dosyaların taşınmasını istediğiniz klasöre gidin. Gerekirse Yeni Bir Klasör oluşturun . İletişim kutusunun sağ alt köşesindeki Seç düğmesini tıklayın , ardından Grup Bilgisi / Dosya Bilgisi penceresini kapatın.

    • Gruptaki dosya / dosyaların adları, Xcode'un bunları belirttiğiniz yerde bulamadığını göstermek için kırmızıya döner.

  2. Gerçek dosyaları taşıma

    • Finder'da (veya Git'te) 1. adımda seçtiğiniz dosyaları istediğiniz gerçek klasörlere taşıyın.

    • Xcode'a geri dönün. Dosyaların / grupların hepsi tekrar siyaha dönmüş olmalıdır. Herhangi biri hala kırmızıysa, bir şeyi doğru klasöre taşımayı kaçırdınız.

İpuçları

Bu projede ~ 300 dosyayı ayarlarken birkaç önemli şey öğrendim:

  • Bazı dosyalar bu şekilde taşınmayı reddediyor; başka bir deyişle, yeni hedefe gittiğinizde , Yeni Klasör düğmesi gibi Seç düğmesi devre dışı bırakılır . Çözüm, neden bir fark yarattığını bilmesem de, önce bu dosyaları bir Gruba koymak için Xcode kullanmaktır (dosyaları sağ / control-tıklatın ve Grup'u seçin ve gruba bir ad verin) ve ardından grubunu yeni konuma taşıyın. Finder'daki dosyaları gerçekten taşıdıktan sonra, bunları gruptan çıkarabilirsiniz (yeni üst gruba / klasöre sürükleyip grubu silerek).

  • Birkaç dosya için 2. adımı tamamladıktan sonra birkaç dakikada bir durun ve derleyin. Yapı size şimdiye kadar herhangi bir şeyi berbat ettiyseniz, size geri dönüp çok fazla hasar vermeden düzeltmeyi kolaylaştıracak.

  • Dosyalar istediğiniz yere taşınmazsa - Classes klasöründe daha önce oluşturulmuş bazı dosyaları taşımak için bir şeytanım vardı - bunları bulucudaki eski yerlerinden dışarı sürükleyebilirsiniz. masaüstü gibi kullanışlı bir yerde, Xcode'da bunlara yapılan referansları silin ve ardından sağ / control-click Mevcut Dosyaları Ekle seçeneği ile yeniden içe aktarın .

  • Geçmişte Xcode'u, bu projedeki çöp kutusuna taşımadan dosya referanslarını silmek için kullandıysanız, taşınması gerekmeyen, sadece orada otururken dosyaları bulacaksınız. Yaptığım şeyi yapmamaya dikkat edin, taşıdığım mevcut dosya grubunun ve artık bağlı olmayan eski dosyaların adlarını karıştırın, Xcode'un yoğun olduğunu düşündüğünüz için onları içe aktarmasında ısrar edin.

Umarım bu gelecekteki bazı kişilere yardımcı olur. Bunun kadar zor ve bazen de zor olduğu için şaşırdım.


2
Tüm dosyaların aynı dizinde olması beni gerçekten rahatsız ediyordu. Bunun için teşekkür ederim!
Curtis Shipley

Ayrıca: Finder'da dilediğiniz zaman dizin yapısını yeniden düzenleyebilir, projedeki tüm "kırmızı dosyaları" kaldırabilir ve sonra "klasörlerdeki grup" seçeneğini kullanarak hepsini projeye geri ekleyebilirsiniz
bshirley

@bshirley Çok doğru ve ana dizindeki tüm dosyaların projede olması gerekiyorsa, bu çok zaman kazandırabilir. Ne yazık ki, birden fazla kişiyi içeren ya da zaman içinde çok fazla yayın yapan projelerle, projeye eklenmemesi gereken çok sayıda dosya olabilir. Bu durumda, geri yüklemek için hangilerini kaldırdığınızı veya benzer bir şeyi izlemeniz gerekir.
Matthew Frederick

11
xcode 4 farklı bir şey yapmak zorunda - sağ tıklayarak herhangi bir bağlamsal 'bilgi almak' bağlantıları görmedim. Bunun yerine kimlik ve tip görünümü (muhtemelen bunun için bilmiyorum bir ad) görüntülemek zorunda kaldı. xcode4 başlık çubuğundaki görünüm seçeneklerinde en sağdaki düğme. önce dosya sistemindeki dosyayı taşıyın ve yolun yanındaki garip simgeyi tıklatıp xcode'a yeni dosyanın nerede olduğunu söyleyin.
Evan Pon

6
Dosyaları taşımayla ilgili sorun, zaten SVN kontrolü altındayken, dosyaları hareket ettirmek için Sürümler veya Cornerstone gibi bir uygulama kullandığınızdan emin olmanız ... Ya da korkunç sürüm kontrolü sorunları yaşayacaksınız! Keşke Apple sadece "gruplar" fikrini atmak ve gerçek klasörler, a-la Eclipse her şeyi var ...
jowie

104

Xcode 5 veya Xcode 6'da:

  1. Finder'da Gruplarınızla eşleşen klasörleri oluşturun
  2. Dosyaları Finder'da bu klasörlere taşıma
  3. Soldaki Xcode kenar çubuğunda kırmızı olan her dosyayı seçin
  4. Sağ kenar çubuğunu görüntülemek için "Yardımcı Programları Göster / Gizle" düğmesini tıklayın (şekle bakın)
  5. "Kimlik ve Tür" bölümünde küçük düğmeyi tıklayın ve dosya konumunu seçin (şekle bakın)

resim açıklamasını buraya girin

Şerefe.


1
Bazı kullanıcılara, üstbilgi bilgileri önceden derlendikten sonra değişiklik yapıldığı konusunda bir hata alıyorsanız, ürünün temizliğini yapın ve işler halledecektir!
kuantum

Bir başlık dosyasını fiziksel bir klasöre taşımak için Xcode 5.1.1'de bu yaklaşımı izledim. Dosyayı taşıyabiliyorum. Ancak Xcode, projeyi oluştururken "dosya bulunamadı" diyor. Lütfen yardım eder misiniz.
Rashmi Ranjan mallick

22

Burada XCode'un korkunç tasarımını bulmanın en güvenilir yolunu iki nedenden dolayı TÜM dosyalarınızı Finder'da düzenlemektir:

  1. Bulucu, XCode GUI'sinden farklı olarak "hata" yapmaz
  2. Finder'da bir şeyler düzenlendikten sonra, Finder klasörlerinin tamamını XCode'a sürükleyip bırakabilirsiniz ve ... tam olarak istediğinizi çaba harcamadan yapar

Mevcut XCode dosyalarını hareket ettirirken bile, bunu yapmak daha hızlıdır:

  1. Finder'daki dosyaları seçin
  2. Finder'da onlar için bir klasör oluşturun
  3. Bunları klasöre sürükleyin / bırakın (otomatik olarak taşır)
  4. Finder klasörünü Xcode'a sürükleyip bırakın (otomatik olarak: Xcode klasörünü oluşturur, Finder klasöründeki her dosyayı ekler)
  5. cmd-şimdi Xcode'da gördüğünüz her "kırmızı" dosyayı seçin (çünkü onları taşıdınız) ve sil tuşuna basın

Not: XCode 3'te genellikle umutsuzca buggy olan ve projeleri bozabilecek olan "alt gruplarla sürüklenen klasörler oluştur" seçeneğini asla kullanmam. Apple açıkça (IMHO) bu özelliği dahili olarak KULLANMIYOR, aksi takdirde asla bu kadar hatalı olmasına izin verilmezdi; Apple bir şey kullanmazsa, onu da kullanmak genellikle güvenli değildir - testte iyi değildir :)


2
Bunu yarın deniyorum .. aradığım basit çözüm buydu. Neden bu kadar zorlaştırdılar? Sadece dosya sistemini yansıtsaydı daha az kafa karıştırıcı olurdu. Teşekkürler!
delux247

Bu denediğim dördüncü çözümdü ve SADECE xcode 5.1.1 ile çalışabildiğim çözümdü. Ayrıca, bazı nedenlerden dolayı bu benim kategorilerimin hiçbirinde işe yaramaz. Kelimenin tam anlamıyla Çöp Kutusu'na taşımak, Çöp Kutusu'ndan geri almak ve sonra tekrar xcode'a eklemek zorunda kaldım ve sonunda işe yaradı.
user3344977

21

Komut Satırı Aracı kurulumu ve kullanımı basittir - github'da tam olarak burada gerekenleri yapan "synx" .

Bulucudaki Xcode proje klasörünü, projedeki Xcode gruplarıyla eşleşecek şekilde yeniden düzenler.

Burada bulabilirsiniz: https://github.com/venmo/synx

GÜNCELLEME: XCode 9 varsayılan olarak bu özelliği destekler. Artık başka araçlar kullanmaya gerek yok!


Harika bir araç ancak daha büyük projelerde son derece yavaşlıyor (işi tamamlamak birkaç dakika sürebilir) ve artık desteklenmiyor gibi görünüyor.
Lukasz

6

Xcode 9

Görünüşe göre Xcode 9 artık varsayılan olarak destekliyor. Dosyaları bir gruptan diğerine taşıdığınızda, dosya eski klasörden yeni klasöre de taşınır. Bu WWDC 2017'de açıklandı.



2

Ben genellikle dosyaları doğrudan Finder'da dizine taşıyordum, sonra da "Bilgi Al" iletişim kutusundaki XCode'da kırmızı renkli adlara sahip dosyaları düzeltiyorum: "Seç ..." düğmesini tıklayın ve dosyanın yeni locatoinini seçin. XCode'da dosyaları taşımak istediğimde ilk yanıt bu ve işe yarıyor.


1

Bir klasör yapısında sürüklediğinizde Xcode 4.5'ten itibaren otomatik olarak Proje Gezgini'nde iç içe gruplara dönüştürülür. Ardından, diske bakarsanız (örneğin sağ tıklayın ve Finder'da Göster'i seçin), klasör yapısı korunur.

Eski bir projeden bir şeyleri düzeltmeye çalışmanın sadece bir acı olduğunu buldum. Bu dosyaları silmek ve tekrar sürüklemek çok daha kolay oldu.


1

Bir klasörü xcode 4.5'te taşımak için ...

  1. Dosyaları / grupları xcode'dan silin ve "Referansı Kaldır" ı seçin.
  2. Bulucuya gidin ve klasörü / dosyaları gerektiği gibi taşıyın.
  3. Bir kez Xcode içine geri dönün ve {ProjectName} Dosya-> Dosya Ekle seçin.
  4. "Öğeleri Hedef Grubun klasörüne Kopyala (gerekirse)" öğesinin işaretli olduğundan emin olun
  5. "Eklenen herhangi bir klasör için Grup Oluştur" seçeneğinin işaretli olduğundan emin olun
  6. Projeniz için "Hedefe Ekle" seçeneğinin işaretli olduğundan emin olun

1

XCode 8 için en kolay teknik ....

Mantıksal bir grupta A, B, C dosyalarınız olduğunu, ancak sabit sürücünüzdeki bir klasöre taşınmasını istediğinizi varsayarsak.

  1. Finder ile hedef klasör oluşturma
  2. Klasör Referansını (grup değil) seçmek için Seçenekler bölmesini kullanarak klasörü XCode'a (Dosya -> Dosya Ekle) ekleyin
  3. A, B, C dosyalarını (eski) gruptan proje gezginindeki (yeni) klasör referansına sürükleyin. XCode, dosyaları hem projede hem de diskte klasöre taşır.

Bitti.

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.