Xcode 4 projesini ve gerçek klasörü yeniden adlandırma


119

Xcode 4'te projeyi nasıl yeniden adlandıracağımı biliyorum, ancak kaynak klasörü nasıl yeniden adlandırırsınız? Mesele şu ki, projeyi Xcode'da yeniden adlandırmak, yalnızca Xcode içinde yeniden adlandırıyor (Bir öncekine kıyasla ilerleme olsa da) - ama Xcode neden bilmediğim dosya sistemindeki klasörü yeniden adlandırmıyor.


Klasörü yeniden adlandırmayı denediniz mi?
David Brown

2
Bir arkadaşım var ve proje dosyasındaki tüm dosyalar o zaman kayıp - herhangi bir referans içermediği için hepsi okundu olarak işaretlendi. Ama özü buldum - cevabıma bakın. Yanıtınız için teşekkürler
Chris G.Kas

Yanıtlar:


259

Bunu, bir metin düzenleyicide pbxproj dosyasını elle düzenlemeye başvurmadan Xcode içinden yapabilirsiniz!

Bunu nasıl yapacağınız aşağıda açıklanmıştır:

  1. Finder'da kaynak klasörünüzü yeniden adlandırın. Bu, başlangıçta projeyi bozacaktır çünkü Xcode, sanal (sarı) proje klasörlerinin işaret ettiği gerçek klasörlerin değiştirildiğini otomatik olarak algılamaz, bu nedenle bu klasördeki tüm dosyalar Xcode'da kırmızıya döner. Bunun için endişelenmeyin, 3. adımda düzelteceğiz.

  2. Xcode'da, sol taraftaki kenar çubuğundaki (artık bozuk) sanal klasöre tıklayın ve Finder'daki adla eşleşecek şekilde yeniden adlandırın (aslında istediğiniz herhangi bir şeyi arayabilir veya hiç yeniden adlandırmayabilirsiniz, ancak bu delice olurdu ). Bu, klasörün içindeki kırmızı dosyaları düzeltmez, ancak sorun değil.

  3. Xcode'un sağ tarafındaki kenar çubuğunda, bir dosya iletişim kutusu açmak için aşağıdaki ekran görüntüsünde gösterilen simgeyi tıklayın. Daha önce yeniden adlandırdığınız klasörü seçin. Bu, sanal klasörü diskteki gerçek klasörle yeniden ilişkilendirir ve içindeki tüm dosyalara olan bağlantıları otomatik olarak düzeltir.

  4. Derleme ayarlarınızda, eski klasör adını arayın ve bulduğunuz tüm örnekleri manuel olarak yeniden adlandırın. Tipik olarak iki tane olacaktır, eski klasör / önek.pch ve eski klasör / info.plist, ancak başkaları da olabilir.

Hepsi tamam!

görüntü açıklamasını buraya girin

DÜZENLEME: bu seçenek hala Xcode 5'te mevcuttur, ancak varsayılan olarak yararlı bir şekilde gizlenmiştir. Göstermek için, genişletmek için "Metin Ayarları" panelinin üzerindeki denetçideki ince "Kimlik ve Tür" başlığını tıklayın.


Mükemmel Sadece şunu ekleyeyim, yeniden adlandırma tüm projenin yeniden adlandırılmasının bir parçasıysa, o zaman başka bir adım daha vardır: Sağ taraftaki "Proje Adı" nı değiştirin ve Xcode'un her şeyi eşleşecek şekilde dahili olarak yeniden adlandırmasına izin verin.
RedYeti

1
Her şey harika çalıştı ve proje yeniden adlandırıldı, ancak üstteki yapı mesajı ve simülatörün adı, bunu değiştirmek için hala eski adı korudu: Ürün menüsüne gidin, şemaları yönetin ve şemayı yeniden adlandırın
BlackTigerX

Doğru. Ayrıca şemayı silebilir ve şemaları otomatik oluştur düğmesine basabilirsiniz.
Nick Lockwood

Bunu xCode 5'te nasıl yapacağını bilen var mı? O sihirli düğmeyi artık görmüyorum. :(
Jason

Hâlâ orada, sadece gizli. Denetçideki "Kimlik ve tür" adlı satırı üzerine tıklayarak genişletmelisiniz. Bunu anlamam yaklaşık 20 dakika sürdü!
Nick Lockwood

112

Bunu onlarca kez yaptım:

  • Xcode Proje Gezgini'nizde Başlığı tıklayıp düzenleyerek Projeyi yeniden adlandırın.
  • Xcode'u kapatın.
  • Kaynak klasörü yeniden adlandırın.
  • Finder'dan, .pbxprojherhangi bir metin düzenleyicisiyle proje paketi (bağlam menüsü "Paket İçeriğini Göster") içindeki dosyayı açın .
  • Orijinal klasör adının herhangi bir örneğini arayın ve yeni klasör adıyla değiştirin.
  • Dosya 'yı kaydet.
  • Xcode projesini açın.

3
Bunu projeyi yeniden adlandırdıktan sonra yapmayı unutmayın
Aram Kocharyan

Talimatlarına uyuyorum ve başarısız oluyorum. Sorunun şu olduğunu düşünüyorum: "Orijinal klasör adının herhangi bir örneğini yeni klasör adıyla arayın ve değiştirin." Bu adımla ilgili daha ayrıntılı talimat verebilir misiniz? Teşekkürler
Philip007

Nasıl arama ve değiştirme yapılacağı, seçilen metin düzenleyicisine veya araca bağlıdır. Benim durumumda, vim ile: <ESC>:% s / eski / yeni / g <ENTER> Proje dosyasında çakışan bir ada sahip başka bir şey varsa başarısız olabilir.
djromero

Teşekkürler @madmw, anladım. TextEdit kullanıyorum. İşin püf noktası, arama ve değiştirme sırasında "İçerir" özelliğini "Tam kelime" olarak değiştirmektir. Ve ayrıntılı talimatı aşağıda yayınlıyorum.
Philip007

Bir tedavi işe yarar! Bir hedefin klasörünü, örneğin bir statik kitaplığı yeniden adlandırırken, şemalarımı karıştırmam ve ayrıca önek başlığını ve bilgi plist dosyasını yeniden adlandırmam gerekiyordu.
Tim Potter

12

Görev: Hem Xcode'da hem de Finder'da "Play" i "Play2" olarak yeniden adlandırın

Bunu değiştir:

görüntü açıklamasını buraya girin

Buna:

görüntü açıklamasını buraya girin

ADIMLAR:

// Her şeyden önce, lütfen projeyi Finder'da yedekleyin!

  • Xcode Proje gezgininde projeyi yeniden adlandırın // Proje adına tıklayın ve ardından enter tuşuna basın
  • Xcode Project gezgininde grubu yeniden adlandırın // Finder'daki klasör adını etkilemez
  • Xcode'u kapat
  • Finder'da dış klasörü (resimde sol sütun) yeniden adlandırın

// Yukarıdaki tüm adımlar basittir ve yan etkileri yoktur // // Şimdi zor kısım geliyor: Finder'da iç klasörü (görüntüdeki orta sütun) yeniden adlandırın (.xcodeproj ile aynı düzeydeki)

  • Xcode'u kapalı tutarken Finder'daki iç klasörü yeniden adlandırın
  • .Xcodeproj'a sağ tıklayın, "Paket İçeriğini Göster" i seçin
  • .Pbxproj dosyasını Mac TextEdit ile açın
  • Tüm "Oynat" ı "Oynat2" ile arayın ve değiştirin. Her şeyin doğru gitmesini garantilemek için, arama çubuğunun sol ucundaki oka tıklayın ve arama özelliğini değiştirin. "İçerir" i "Tam kelime" olarak değiştirin ve "Büyük / küçük harfe yok say" seçeneğinin işaretini kaldırın
  • .Pbxproj dosyasını kaydedin
  • Xcode projesini açın ve Çalıştırın

4

XCode4'te (DOSYALAR KLASÖRÜ DAHİL) bir projenin nasıl etkili bir şekilde yeniden adlandırılacağı aşağıda açıklanmıştır:

  1. Herhangi bir sorunu önlemek için tüm açık projeleri XCode'da tamamen kapatın
  2. Söz konusu Projeyi yeni bir Klasöre kopyalayın (ÖNEMLİ: ESKİ PROJENİZİN YEDEKLEMESİNİ TUTUN)
  3. Projeyi açın
  4. XCode4'te Projenin kendisini yeniden adlandırın (proje adına çift tıklayın), adı değiştirin ve adımları izleyin (her şeye evet)
  5. Ürüne gidin, şemaları yönetin ve şemayı yeniden adlandırın (şema adına çift tıklayın)
  6. Projenizi kapatın (tamamen kapalı olduğundan emin olun, aksi takdirde sonraki adımlar işe yaramayacaktır)
  7. Finder'da Proje klasörüne gidin ve .xcodeproj dosyasına sağ tıklayın, ardından "Paket İçeriğini Göster" seçeneğini seçin
  8. Sonra .pbxproj dosyasına sağ tıklayın ve TextEdit ile açın
  9. Projelerin yaşadığı Klasör Adının tüm oluşumlarını değiştirin (Yeni proje adı için eski proje adı)
  10. Dosya 'yı kaydet
  11. Projeyi tekrar açın ve Oluşturun!

9. adımda daha ayrıntılı talimat verebilir misiniz?
Philip007

2

İlk olarak - bir Xcode projesini yeniden adlandırmayın !!!

Eğer mecbur kalırsanız, altında olabilir - hiçbir zaman işe yaramadım, yeni bir proje oluşturdum ve mevcut dosyaların tamamını kopyalamaya başladım. Xcode çok ahh .... Üretken olmayan pek çok şey var, örneğin bir dosyayı "Ad" dan "ad" a yeniden adlandırmayı denemek gibi. İyi eğlenceler.

Cevabı buldum veya bunun nasıl çözüleceğini buldum: "Paket İçeriğini Göster" e sağ tıklayarak pbxproj dosyasını açın ve orada bir project.pbxproj dosyasını düzenleyin - yol adı verilen bir referansı ve diğer bazı şeyleri yeniden adlandırmanız gerekir - sadece arayın klasör adı "/" eklendi.

İşte bu. Umarım birine yardımcı olur.


2
Dün bir projeyi yeniden adlandırdım ve iyi çalıştı. Yine de
Xcode'un

Bunu yapmanın tamamen güvenli ve desteklenen bir yolu var - cevabıma bakın.
Nick Lockwood

2

İşte * .pbxproj dosyanızdaki değerleri değiştirirken bilmeniz gereken başka bir sorun. Eski klasör adınız FooBar ise * .pbxproj dosyanızda şuna benzer bir giriş olacaktır:

yol = FooBar

Yeni klasör adınızın Foo Bar olduğunu varsayalım. Yani, bir alan tanıtıyorsunuz. Sonra bu çizgi

yol = "Foo Bar"

Yalnızca basit bir bul ve değiştir yaparsanız, sonuç Xcode'un ayrıştıramayacağı bir * .pbxproj dosyası olacaktır. Yeni klasör adınızda boşluk varsa ve eski adda boşluk yoksa, çift tırnak işaretlerini eklediğinizden emin olun.


2

Yukarıdaki çeşitli cevapları inceledikten ve kendimi denedikten sonra kendim için özetliyorum. Mevcut proje adının ProjAbc olduğunu ve ProjDef olarak yeniden adlandırmak istediğinizi varsayalım:

  1. O projenin Xcode'undan çıkın.

  2. Finder'da, yedekleme için ProjAbc.xcodeproj YUKARIDAKİ klasörünü çoğaltın.

  3. Finder'da, yeni proje adına uyması gerektiğini düşünüyorsanız YUKARIDAKİ ProjAbc.xcodeproj klasörünü serbestçe yeniden adlandırın.

  4. Finder'da, ProjAbc.xcodeproj'a paralel kaynak dosyaları klasörünü ProjAbc'den ProjDef'e yeniden adlandırın.

  5. ProjAbc.xcodeproj için Xcode'u açın (Project Navigator'da, ProjAbc sanal kaynak klasöründeki tüm dosyalar Kırmızı renkte olacaktır).

  6. Xcode'da, sol taraftaki kenar çubuğunda bulunan Proje Gezgini'ndeki (artık bozuk) sanal klasöre tıklayın ve Finder - ProjDef'teki adla eşleşecek şekilde yeniden adlandırın. Bu henüz klasörün içindeki kırmızı dosyaları düzeltmeyecek, ancak sorun değil.

  7. Xcode'da (sol taraftaki kenar çubuğunda sanal klasörü seçmeye devam eder) sağ taraftaki kenar çubuğunda, Dosya denetçisinde, bir dosya iletişim kutusu açmak için aşağıdaki ekran görüntüsünde gösterilen simgeye tıklayın. Dosya iletişim kutusunda, daha önce yeniden adlandırdığınız klasörü seçin (ProjDef). Bu, sanal klasörü diskteki gerçek klasörle yeniden ilişkilendirir ve içindeki tüm dosyalara olan bağlantıları otomatik olarak düzeltir. Resim, Dosya denetçisindeki Klasör simgesinin nereye tıklanacağını gösterir

  8. Xcode'da, Proje Gezgini'nde ProjAbc proje adına tıklayın ve projeyi ProjDef olarak yeniden adlandırın.

    • Sorulacak: "Proje içerik öğelerini yeniden adlandırılsın mı?". "Yeniden Adlandır" düğmesini tıklayın.
    • Sorulacak: "Xcode'un Proje Yeniden Adlandırma ve benzeri işlemlerden önce otomatik anlık görüntüler almasını ister misiniz?". "Devre Dışı Bırak" veya "Etkinleştir" i tıklayın. Sorun değil.
  9. Xcode'da, şimdi ProjDef hedefi içinde "Yapı Ayarları" nı açın (Proje Gezgini'ndeki ProjDef projesi içinde). Hem * -Info.plist hem de * -Prefix.pch dosyalarının hem klasör adını hem de dosya adını ProjAbc yerine ProjDef içerecek şekilde yeniden adlandırın.

  10. Xcode'da, Project Navigator'da, ProjDef sanal kaynaklar klasöründe, "Supporting Files" içinde hem * -Info.plist hem de * -Prefix.pch dosyalarını ProjAbc yerine ProjDef içerecek şekilde yeniden adlandırın

  11. Xcode Menüsünde, Ürün / Şema / Şemaları Yönet ... düğmesine basın (veya Xcode'un sol üstündeki Şema Çubuğunda "ProjAbc"> Şema adı'na tıklayın ve "Şemaları Yönet ..." düğmesine basın) ve iletişim kutusunda Şemayı şuradan yeniden adlandırın: ProjAbc'den ProjDef'e, ardından "Tamam" düğmesine basın. Proje adı tek kelimeden oluşuyorsa, hemen şimdi çalıştırabilirsiniz!

  12. Xcode'da Supporting Files / * - Prefix.pch dosyasındaki üst yorum satırını düzenleyin ve ProjAbc'yi ProjDef ile değiştirin (2 kez). Elbette bu yorumu düzeltmek isteğe bağlıdır.

  13. Xcode'dan çıkın.

  14. Finder'da ProjDef.xcodeproj'a gidin ve metin düzenleyicide açın. (Ya TextWrangler.app içinde açın ya da fareyi sağ tıklayın ve açılır menüde "Paket İçeriğini Göster" e basın ve ardından TextEdit.app içinde project.pbxproj dosyasını düzenleyin)

  15. Metin Düzenleyicide, bir kez görünmesi gereken (paragrafta: / * PBXNativeTarget bölümüne * / satır içi: productName = ProjAbc;) "ProjAbc" (Tam Sözcük, Büyük / Küçük Harf Eşleştir) öğesini arayın ve "ProjDef" ile değiştirin. Aslında, proje yine de çalışabilir! Bu nedenle bu adım isteğe bağlıdır.

  16. proje adı "ProjDef Geh" gibi 2 veya daha fazla ayrı kelimeden oluşuyorsa, sonraki adımları YAPMANIZ GEREKİR: Sanal kaynak dosyalar klasörünün Finder klasörüne başvuruyu arayın -

    • Satırı arayın: yol = ProjDef Geh;
    • Paragrafta bir kez görünecektir / * ProjDef Geh * /
    • Bunu şu satırla değiştirin: yol = "ProjDef Geh";
  17. Metin düzenleyiciden kaydedin ve Metin Düzenleyiciden çıkın.

  18. Bu kadar. Yukarıda belirtildiği gibi, proje adı tek kelimeden oluşuyorsa 11. adımın hemen sonunda koşabilirsiniz.


Bunu olması gerekenden daha karmaşık hale getirdin. Adım 8'i (projeyi yeniden adlandırırsanız), 4. adımdan önce (kaynak klasörü yeniden adlandırırsanız), Info.plist ve Prefix.pch dosyanızı otomatik olarak yeniden adlandırır, böylece adım 9 ve 10'u atlayabilirsiniz.
Nick Lockwood

0

Yukarıdaki cevapları, özellikle de Nick Lockwood'un cevabını gerçekten yararlı buldum.

Xcode 8'deki birkaç klasörü yeniden adlandırdım ve iki sorunla daha karşılaştım: A) "çalışma kopyalama hatalarında eksik" B) Temel Veri çöküyor .

Bu iki sorun nasıl çözülür:

A) " çalışma kopyalama hatalarında eksik "

Aşağıdaki cevabı çok faydalı buldum: Swift 3 / Xcode 8 Yükseltmesi - çalışan kopyalama hatalarında 100'lerce DerivedData dosyası eksik

Temel olarak Xcode 8, yukarıdaki hatalara yol açabilecek sıkı bir kaynak kontrolüne sahiptir. Yapmalısın:

  1. Xcode'dan türetilen verileri temizleyin.
  2. Kaynak Kontrolüne gidin ve Durumu Yenile'yi tıklayın.
  3. Kaynak Kontrolüne gidin ve Kaydet'i tıklayın; taahhütte bulunurken taahhüt menüsünün sol kenar çubuğundaki tüm dosyaları seçin (sağ tıklama -> Tümünü Seç).
  4. Muhtemelen bir hata alırsınız.
  5. Kaydet menüsünü kapatın.
  6. Durumu Yenile.
  7. Xcode'dan çıkarak projenizi kapatın.
  8. Projenizi yeniden açın, durumu yenileyin, tekrar kesin.
  9. Bu sefer taahhüt işe yaramalı.
  10. Proje -> Temizle'yi tıklayın.

Kaynak Kontrolünü zaten etkinleştirdiğinizi varsayıyorum. Yapmadıysanız veya talimatlarımı uygulayarak takılırsanız, sağlanan bağlantıdaki daha ayrıntılı talimatları izleyin.

B) Çekirdek Veri çöküyor

Klasörlerin yeniden adlandırılması bazen Temel Verileri bozabilir. Bunun birkaç olası nedeni vardır ve aşağıda önerebileceğim bazı düzeltmeler vardır:

  1. Yanlış AppDelegate model adı. Benim durumumdaki durum buydu. AppDelegate'inize gidin ve bulun let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME"). Adın doğru olduğundan emin olun.

    Gelecekte (bu gönderiden birkaç yıl sonra, Apple Core Data'yı tekrar değiştirdiğinde) veya Core Data'nın eski bir sürümünü kullanıyorsanız AppDelegate'e dikkatlice bakın. Muhtemelen orada Core Data'nızı karıştıran garip bir şey vardır.

  2. Xcdatamodeld'de yanlış model adı . Finder'a gidin ve .xcdatamodeld'inizi bir metin düzenleyicide açın.

Aşağıdakileri kontrol et:

<plist version="1.0">
  <dict>
     <key>_XCCurrentVersionName</key>
     <string>YOUR CORE DATA MODEL NAME.xcdatamodel</string>  <-- Make sure this is correct.
  </dict>
</plist>

Daha fazla ayrıntı burada: Çekirdek Veri modeli dosyaları yeniden adlandırma sırasında yüklenmez

  1. Yukarıdaki iki şey işe yaramazsa, 1) varlığınızı silmeyi ve ardından aynı olan başka bir varlığı eklemeyi deneyin veya 2) xcdatamodeld'inizi silin ve ardından aynı olan başka bir veri modeli ekleyin (ve yeni xcdatamodeld'in adının eşleştiğinden emin olun. AppDelegate'inizde ve kodunuzun geri kalanı). Bunu asla canlı bir Uygulama ile yapmayın veya bunu yaparsanız, Çekirdek Verilerinizi doğru şekilde taşıdığınızdan emin olun.

0

Projenize kaynak projenin eski referansınız varsa, Projeyi kopyalarken (yapılan her değişiklik her iki projeyi de etkiler) burada çözüm

  • Kaynak projeden Proje Dublicate
  • Referans sorununu bozan kaynak projenin kaynak klasörünü yeniden adlandırın.
  • İkili projede her şey kırmızıya döner ve mevcut proje klasörünüzü seçin. (ekran görüntüsü stackoverflow'un yeşil onay işaretiyle gösterilir)

================================================== ======================

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.