Xcode projesini ve ilgili klasörleri çoğaltın ve yeniden adlandırın [kapalı]


195

Tüm Xcode projesini çoğaltmak, Xcode zihinsel olmadan proje ve ilişkili dosyaları yeniden adlandırmak ve tüm dosyaları el ile projeye yeniden almak zorunda kalmadan istiyorum.

Yanıtlar:


368

Bu cevap, ileride başvurmak ve aynı sorunla karşılaşan herkese yardımcı olmak için İnternet'teki diğer StackOverflow yayınlarının ve öğreticilerinin bir noktaya getirilmesidir. Sonunda diğer cevaplar için tüm krediler verilir.

Xcode Projesini Çoğaltma

  • Finder'da, proje klasörünü yeni projenizin istediğiniz konumuna çoğaltın. Bu aşamada .xcodeproj dosya adını veya ilişkili klasörleri yeniden adlandırmayın.

  • Xcode'da projeyi yeniden adlandırın. Gezinme bölmesinden (sol bölme) projenizi seçin. Yardımcı Programlar bölmesinde (sağ bölme) projenizi yeniden adlandırın, Xcode'un önerdiği değişiklikleri kabul edin.

  • Xcode'da, "Düzenleri Yönet" bölümündeki düzenleri yeniden adlandırın, sahip olabileceğiniz hedefleri de yeniden adlandırın.

  • Sonunda geçerli PRODUCT_NAME ürününü içeren varsayılan Paket Kimliğini kullanmıyorsanız (otomatik olarak güncellenir), ardından Paket Kimliğinizi yinelenen projeniz için kullanacağınız yenisiyle değiştirin.

Kaynak klasörü yeniden adlandırma

Bu nedenle, yukarıdaki adımları izledikten sonra, başarıyla derlenmesi ve derlenmesi gereken çoğaltılmış ve yeniden adlandırılmış bir Xcode projeniz olmalıdır, ancak kaynak kodu klasörünüz yine de orijinal projede olduğu gibi adlandırılacaktır. Bu herhangi bir derleyici sorunlarına neden olmaz, ancak insanların SCM, vb. Gezinmek için en açık dosya yapısı değildir. Tüm dosya bağlantılarınızı bozmadan bu klasörü yeniden adlandırmak için şu adımları izleyin:

  • Finder'da kaynak klasörü yeniden adlandırın. Bu, projenizi bozacaktır, çünkü Xcode değişiklikleri otomatik olarak algılamayacaktır. Tüm xcode dosya listeleriniz gerçek dosyalarla bağlantılarını kaybedecek, bu yüzden hepsi kırmızıya dönecektir.

  • Xcode'da, yeniden adlandırdığınız sanal klasöre tıklayın (Bu, büyük olasılıkla en üstte, gerçek .xcodeproject'inizin hemen altında olacaktır) Bunu, Finder'daki adla eşleşecek şekilde yeniden adlandırın, bu hiçbir şeyi düzeltmez ve kesinlikle bir gerekli adım ancak dosya adlarının eşleşmesi güzel.

  • Xcode'da, gezinme bölmesinde az önce yeniden adlandırdığınız klasörü seçin. Ardından, Yardımcı Programlar bölmesinde (en sağda), 'Konum' açılır menüsünün hemen altındaki koyu gri klasöre benzeyen simgeyi tıklayın. Buradan, bulucudaki yeniden adlandırılmış klasörünüze gidin ve 'Seç'i tıklayın. Bu, tüm dosyalarınızı otomatik olarak yeniden ilişkilendirir ve artık Xcode gezinme bölmesinde kırmızı görünmemelidir.

Tıklanacak simge

  • Proje / hedef oluşturma ayarlarınızda, eski klasör adını arayın ve bulduğunuz oluşumları manuel olarak yeniden adlandırın. Normalde prefix.pch için bir ve info.plist için bir tane vardır, ancak daha fazlası olabilir.

  • Herhangi bir üçüncü taraf kitaplığı (Testflight / Hockeyapp / etc) kullanıyorsanız, 'Kitaplık Arama Yolları'nı da aramanız ve eski dosya adının herhangi bir örneğini burada yeniden adlandırmanız gerekir.

  • Projenizin içerebileceği herhangi bir birim test kaynak kodu klasörü için bu işlemi tekrarlayın, işlem aynıdır.

Bu, bir xcode projesini ve ilişkili tüm dosyaları, herhangi bir xcode dosyasını manuel olarak düzenlemek zorunda kalmadan ve işleri karıştırmak zorunda kalmadan çoğaltmanıza ve yeniden adlandırmanıza izin vermelidir.

Kredi

Nick Lockwood ve Pauly Glott'a bu soruna ayrı cevaplar verdikleri için çok teşekkür ediyoruz .


3
Yukarıdakileri izledikten sonra delik projesini "eski ad" için aradım ve neyin değiştirilmesi gerektiğini (Önek başlığı) buldum ve "yeni ad" ile başka bir yerde tamamladı. Büyük öğretici - tam ihtiyacım olan şey. (Xcode 5.0.1 / iOS 7.0 ile test edilmiştir)
Mac

Bu beni oraya götürecek gibi görünmüyordu (Xcode 5.0.2'de, 4.6.3'ten 5.0.0'a taşınan bir proje ile). *.xcodeproj/project.pbxprojDosyanın içinde orijinal klasör yolunu içeren birçok şey vardı . Özellikle, yapı özgün klasöründe bir info.plist aramaya devam ettiğinden başarısız oldu.
Steven Lu

2
Bir merak olarak, bunu yapmanın eski bir okul yolu ... stackoverflow.com/questions/10006482/… (Daniel'in cevabı)
Fattie

1
Xcode 7.1.1, ilk engelde benim için çöküyor - projeyi yeniden adlandırmak. Soruşturur, ama başka kimse bunu buldu mu?
HughHughTeotl

5
Projede Cocoapods entegrasyonu olduğunda nasıl idare edeceğiniz eksik. Bunu da ele almak için yararlı bir bağlantı buldum: h4ckish.com/2015/01/22/renaming-your-cocoapods-ios-project
KK

30

Bunu, bir projeyi yeniden adlandırırken her zaman mücadele ettiğim için gönderiyorum XCode.

Projeyi yeniden adlandırmak iyi ve basittir, ancak bu kaynak klasörü yeniden adlandırmaz. Aşağıda, aşağıdaki bağlantılar sayesinde Xcode 4 ve 5'te harika çalışmış yaptığım adım adım.

REF bağlantıları:
Project'i yeniden adlandırın.
Kaynak Klasörü ve diğer dosyaları yeniden adlandırın.

1- Projenizi yedekleyin.

Git kullanıyorsanız, herhangi bir değişiklik yapın, değişiklik yapmadan önce tüm proje klasörünün bir kopyasını alın ve zaman makinesinde yedekleyin (bu adım gerekli değildir, ancak şiddetle tavsiye edilir).

2- Projenizi açın.

3- Proje adını (mavi üst simge) yavaşça çift tıklayın veya enter tuşuna basın ve istediğiniz gibi yeniden adlandırın.

NOT: Projeyi yeniden adlandırıp 'enter' tuşuna bastıktan sonra, proje adıyla ilgili tüm girdileri otomatik olarak değiştirmenizi ve isterseniz bazılarının seçimini kaldırmanızı önerir. Hepsini seçin ve Tamam'a tıklayın.

4- Şemayı Yeniden Adlandırma

a) Durdur düğmesinin hemen yanındaki menüyü tıklayın ve Şemaları Yönet'i seçin.

b) Eski ad düzeninde tek-yavaş tıklatın veya enter tuşuna basın ve istediğiniz gibi yeniden adlandırın.

c) Tamam'a tıklayın.

5 - Çalıştığından emin olmak için derleyin ve çalıştırın.

NOTLAR: Bu noktada, proje oluşturulurken oluşturulan kaynaklardaki veya kaynak klasördeki yorumlar dışındaki tüm önemli proje dosyaları yeniden adlandırılmalıdır. Sonra dosya sistemindeki klasörü yeniden adlandıracağız.

6- Projeyi kapatın.

7- Ana ve kaynak klasörü yeniden adlandırın.

8- Proje paketi .xcodeprojdosyasını sağ tıklayın ve içerik menüsünden “Paket İçeriğini Göster” i seçin. Herhangi bir metin düzenleyicisiyle .pbxproj dosyasını açın.

9- Orijinal klasör adının herhangi bir örneğini yeni klasör adıyla arayın ve değiştirin.

10- Dosyayı kaydedin.

11- XCode projesini açın, test edin.

12- bitti.

11/11/19 DÜZENLEME:

Xcode projeleri yeniden adlandırmak için yeterli denemedim bir araç var. https://github.com/appculture/xcode-project-renamer


2
Soru, kopyalanan projeyi çoğaltmak ve sonra yeniden adlandırmaktı. Bu cevap sadece mevcut bir projeyi yeniden adlandırmak içindir.
martinjbaker

1
Bu benim için en basit yaklaşım. Özgün proje klasörünü, örneğin MyProject'i, yinelemeli olarak "MyNewProject" dosyasına kopyalamanız yeterlidir. Ardından MyNewProject'i açın ve fs_tigre'nin talimatlarına uyun. Ne Android Studio'nun ne de Xcode'un bu kadar kullanışlı olabilecek bir "Dosya-> Klon Projesi" seçeneği sunmamasına şaşırdım. Belki birisi için güzel bir eklenti projesi ( nshipster.com/xcode-plugins )?
Blisterpeanuts

Sadece benim için çalışan yöntem - XCode 8.2
GreenAsJade

2
Adım 10.1 - Köprü üstbilgisi ve / veya yetkilendirme dosyalarınız varsa, bunları yeni adınızı yansıtacak şekilde yeniden adlandırın. Cocoapod kullanıyorsanız, kapsül dosyanızdaki adı düzenleyin.
David Lari


2

İOS Projemi yeniden adlandırdıktan sonra bu komut dosyasını kullanıyorum . Dizinlerin adını değiştirmeye ve adları senkronize etmeye yardımcı olur.

http://github.com/ytbryan/rename

NOT: şemanın adını manuel olarak değiştirmeniz gerekecektir.


1

"İOS için Instant OpenCV" kitabının örnek kodunda, bir projeyi bir klasörden diğerine kopyalayan bir bash betiği buldum.
Biraz araştırma yapıyorum Komut dosyasının orijinal yazarı gibi görünen bir blog yazısı buldum: http://mohrt.blogspot.it/2009/01/renaming-xcode-project-from-command.html , burada betiği indirebilirsiniz . Ben denedim ve böyle terminalden çalıştırıyorum

    sh renameXcodeProject.sh <name-of-existing-folder> <name-of-folder-to-create>   

iyi çalışıyor.
Dosyayı bir metin düzenleyicisiyle açarken ek bilgiler bulunabilir. umarım yardımcı olur


0

Xcode 6+ kullanıyorum ve sadece yapıyorum:

  • Proje klasörlerindeki tüm dosyaları yeni Klasörlere (yeni adla) kopyalayın.
  • Açık *.xcodeproj or *.xcworkspace
  • Proje adını değiştirin.
  • Şemayı tıklayın ve geçerli şemayı silin ve yenisini ekleyin.

İşte bitti, ama pencere Xcode ve *.xcodeproj or *.xcworkspacehala adı <old-name>. Sonra yaparım:

  • pop install
  • Açık <new name>.xcworkspace

0

Denemek için bir şey daha!

Tüm dosyalarımı kopyaladığımda, projeyi açıp yeniden adlandırdığımda , test hedefi hariç her şey yeni proje adımla değişti ! "MyOldProjectname.app" adlı bir dosya eksik olduğunu söyledi bir linker hatası aldım. İşte sorunu düzelten:

  1. Proje ayarlarınızı tıklayın ve test hedefinizi seçin resim açıklamasını buraya girin

  2. Yapı ayarlarını tıklayın ve "test ana bilgisayarı" nı arayın resim açıklamasını buraya girin

  3. Bu 2 dosya yolunu kontrol edin. Muhtemelen bu 2 yol hala eski proje isminizi gösteriyor olabilir. resim açıklamasını buraya girin

Umarım yardımcı olur!


0

Projenizi kopyaladıktan sonra film şeridi çökmeleriyle ilgili sorunları olan herkes için, Kimlik Denetçisi altındaki Main.storyboard'a gidin.

Ardından, geçerli modülünüzün eskisi değil, doğru yeniden adlandırılmış modül olup olmadığını kontrol edin.


0

Yeniden adlandırmak için basit BASH betiği kullanıyorum.

Kullanımı: ./rename.sh oldName newName

#!/bin/sh

OLDNAME=$1
NEWNAME=$2

export LC_CTYPE=C 
export LANG=C
find . -type f ! -path ".*/.*" -exec sed -i '' -e "s/${OLDNAME}/${NEWNAME}/g" {} +

mv "${OLDNAME}.xcodeproj" "${NEWNAME}.xcodeproj"
mv "${OLDNAME}" "${NEWNAME}"

Notlar:

  1. Bu komut dosyası, .gitve gibi tüm dosyaları yok sayar..DS_Store
  2. Eski ad / yeni ad boşluk içeriyorsa çalışmaz
  3. Kapsül kullanırsanız (test edilmez) çalışmayabilir
  4. Şema adı değiştirilmeyecek (yine de proje normal şekilde çalışıyor ve derleniyor)
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.