Bir Xcode projesini nasıl tamamen yeniden adlandırabilirim (örn. Klasörler dahil)?


472

Adlı bir projem var XXX. Bu projeyi yeniden adlandırmak istiyorum YYY.

Bunun XXXson derece yaygın bir terim olduğunu (örneğin, "veri" veya sadece "proje" için) ve dolayısıyla proje yapılandırma dosyalarının bozulma riski nedeniyle basit bir RegEx arama ve değiştirme işleminin mümkün olmadığını unutmayın.

Mevcut proje dizinim aşağıdaki öğeleri içeriyor:

  • XXX
  • XXXTests
  • XXX.xcodeproj

ve onları şu şekilde yeniden adlandırmak istiyorum:

  • YYY
  • YYYTests
  • YYY.xcodeproj

... sırasıyla gerekli değişiklikler proje dosyama yansıtılıyor.

El ile yeni bir proje oluşturmak ve doldurmak zorunda kalmadan bunu nasıl başarabilirim?


Edit: Bu benim en upvoted soru haline gelmiş olması kesinlikle çok saçma.



1
Ayrıca sordu ve burada cevap stackoverflow.com/questions/17744319/… cevabında 200 yukarı oy ile
Ron Myschuk

1
Ayrıca burada sordu ve cevapladı stackoverflow.com/questions/8262613/… 189 yukarı oy ile her iki
yazı

Sadece uygulama simgesi adını yeniden adlandırmak istiyorsanız, bu yanıtı kontrol edin stackoverflow.com/questions/238980/…
LYu

Yanıtlar:


1022

Adım 1 - Projeyi yeniden adlandırın

  1. Xcode penceresinin sol panelindeki "Proje gezgini" nde yeniden adlandırmak istediğiniz projeye tıklayın.
  2. Sağ panelde "Dosya denetçisi" ni seçtiğinizde projenizin adı "Kimlik ve Tür" altında bulunmalıdır. Yeni adınızla değiştirin.
  3. İletişim kutusu projenin içerik öğelerinin yeniden adlandırılıp adlandırılmayacağını sorduğunda, "Yeniden Adlandır" ı tıklayın.

2. Adım - Şemayı yeniden adlandırın

  1. Pencerenin üst tarafında, "Durdur" düğmesinin yanında, ürününüz için eski adıyla bir düzen bulunur; üzerine tıklayın, ardından "Şemaları Yönet…" i seçin.
  2. Şemadaki eski isme tıkladığınızda düzenlenebilir hale gelir; adı değiştirin ve "Kapat" ı tıklayın.

3. Adım - Klasörü varlıklarınızla yeniden adlandırın

  1. Xcode'tan çıkın.
  2. Doğru adlandırılmış ana klasörde, yanlış adlandırılmış OLD klasörüne sahip yeni adlandırılmış bir .xcodeproj dosyası vardır. OLD klasörünü yeni adınızla yeniden adlandırın (Git kullanıyorsanız, Git'in git mv oldname newnameyeni dosyaları silmek / eklemek yerine bir taşıma olduğunu algılaması için çalıştırabilirsiniz ).
  3. Xcode projeyi yeniden açın ve "OLD klasörü yok" uyarısı göreceksiniz; uyarıyı yok say.
  4. Sol paneldeki "Proje gezgini" nde, üst düzey OLD klasörünü tıklayın.
  5. Sağ panelde, "Kimlik ve Tür" altında, "Ad" alanını ESKİ adından yeni adla değiştirin.
  6. Bu alanın hemen altında bir "Konum" menüsü bulunur. Yakındaki klasör simgesini tıklayın ve yeniden adlandırılan klasörü seçin.

Adım 4 - Build plist verilerini yeniden adlandırın

  1. Soldaki "Proje gezgini" nde projeyi tıklayın ve ana panelde "Yapı Ayarları" nı seçin.
  2. Ayarlarda "plist" i arayın.
  3. Paketleme bölümünde göreceksiniz Info.plistve Product Bundle Identifier.
  4. Girilen bir ad varsa Info.plist, güncelleyin.
  5. İçin de aynısını yapın Product Bundle Identifier.
  6. SwiftUI kullanıyorsanız, "Geliştirme Varlıkları" için arama yapın ve yolu güncelleyin.

Adım 5 - Testler için 3. adımı tekrarlayın (eğer varsa)

Adım 6 - Adı proje adıyla eşleşiyorsa (varsa) çekirdek veriler için 3. adımı tekrarlayın

Adım 7 - Projenizi yeniden oluşturun

  1. Commandtemizlemek için + Shift+K
  2. Command+ Binşa etmek

5
Projenin adını değiştirebilirsiniz ancak klasör adları aynıdır. Bunları nasıl değiştireceğinizi biliyor musunuz
Coder221 15:16

5
Teşekkürler! Xcode 8 için, yetkilendirmeler dosyası manuel olarak yeniden adlandırılmalıdır.
Jiulong Zhao

54
Adım 3 bölüm 2'yi yaparken (klasörü yeniden adlandırırken), git'i kullanıyorsanız git mv oldname newname, bu şekilde git, tüm dosyalarınızı silmeden ve eklemeden bir hareket olduğunu fark edecektir.
Aaron Ash

14
mükemmel, Xcode 8.2'de mükemmel çalışır , şema adını bir kez tıklatıp düzenlenebilir hale getirmezse şemayı düzenlerken burada işaret etmek için sadece bir şey düzenleyin ve sonra şema adını düzenlenebilir hale getirecek dönüş tuşuna basın.
Khurram Shehzad

5
Eski proje adınızın diğer örneklerini bulmayı ve değiştirmeyi unutmayın .
Derek Soike

194

@ Luke-west 'in mükemmel cevabına eklemek için:

CocoaPods kullanırken

2. adımdan sonra:

  1. XCode'dan çıkın.
  2. Usta klasöründe, yeniden adlandırmak OLD.xcworkspaceiçin NEW.xcworkspace.

4. adımdan sonra:

  1. XCode'da: Podfileproje gezgininden seçin ve düzenleyin . targetESKİ adında bir cümle görmelisiniz . YENİ olarak değiştirin.
  2. XCode'dan çıkın.
  3. Proje klasöründe OLD.podspecdosyayı silin .
  4. rm -rf Pods/
  5. Koş pod install.
  6. XCode'u açın.
  7. Proje gezgininde proje adınızı tıklayın.
  8. Ana bölmede Build Phasessekmeye geçin .
  9. Altında Link Binary With Libraries, arayın libPods-OLD.ave silin.
  10. Bir objektif-c Köprüleme başlığınız varsa, Yapı ayarları'na gidin ve başlığın konumunu OLD / OLD-Bridging-Header.h yerine NEW / NEW-Bridging-Header.h olarak değiştirin.
  11. Temizleyin ve çalıştırın.

7
Xcode 8.3.2 kullanarak cocoapods-deintegrate kullanmak ve projeyi yeni adla çalıştırmak için tüm bölmeleri yeniden yüklemek zorunda kaldım.
SteffenK

2
@SteffenK bu yöntem ile rm -rf Pods /? Arasında bir fark var mı? Diğer tüm adımları attığınızı mı düşünüyorsunuz?
Vaiden

1
Lütfen biraz açar mısınız? Ne izleri var?
Vaiden

2
@Vaiden, CocoaPods ile çalışırken ekstra netlik için çok teşekkür ederim! Süreç, garip olan ikinci bir referans yarattı, ancak kaldırdıktan sonra her şey mükemmel bir şekilde çalışıyordu! Tekrar teşekkürler! :)
Matt Swift

4
Birisi bana bu cevapta belirtilen OLD.podspec dosyasını nerede bulabileceğimi söyleyebilir mi? Projemde 'Podfile' / 'Podfile.lock' / 'Pods.xcodeproj' gibi birkaç dosyam var ve 'Yerel Podspecs' adlı boş bir klasör buldum, ancak bir .podspec dosyası bulamıyorum
codeDude

51

Kabuk komutlarını kullanarak daha hızlı bir çözüm (CocoaPods ile de çalışır):

cdDEVAM ETMEDEN ÖNCE GIT OLMAYAN BİR TEKLİF İÇİN LÜTFEN ⚠️

Adım 1 - Önkoşullar

  1. Özgün proje klasörünüzü /NewProjectFolder git deponuzun dışında geçici bir yere kopyalayın . ⚠️ .git olarak yapılan değişiklikler git dizininizi bozabilir 💥 ☠

Adım 2 - Terminali Aç

Şimdi projeyi yeniden adlandırmak için gidiyoruz oldNameiçin NewProject.

  • XCode'u kapatın.
  • Git /NewProjectFolder.
cd /Path/to/your/NewProjectFolder
  • Gereken ekstra aletleri takın.
brew install rename ack
  • Kaynak dizeyi içeren dosyaları ve dizinleri yeniden adlandırın. Bu KOMUT İKİ KEZİ ÇALIŞTIRMALISINIZ , çünkü önce dizinler yeniden adlandırılacak, daha sonra bunların içindeki dosyalar ve dizinler bir sonraki yinelemede yeniden adlandırılacaktır.
find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'NewProject'
  • Kaynak dizeyi içeren tüm dosyaların yeniden adlandırılıp adlandırılmadığını kontrol edin. Boş çıktı görmelisiniz.
find . -name 'oldName*'
  • Tüm dosyalarda dizenin tüm tekrarlamalarını değiştirin.
ack --literal --files-with-matches 'oldName' --print0 | xargs -0 sed -i '' 's/oldName/NewProject/g'
  • Tüm dosyalarda dizenin tüm tekrarlamalarının değiştirilip değiştirilmediğini kontrol edin. Boş çıktı görmelisiniz.
ack --literal 'oldName'
  • Çalıştırmak pod install
  • NewProjectFolderDeponuza ekleyin .
  • Bitirdiniz!

3
Bunun için teşekkürler yararlı buldum. Bu tür komutları kopyalarken ve yapıştırırken, çalışmanın en aza indirgenebilmesi için tercih edersiniz, böylece "YourNewAmazingProjectName" örnek adı aşırıdır, silme anahtarımın ömrünü uzattığı için yalnızca "example" kullanın.
LpLrich

1
@LpLrich öneriniz için teşekkür ederim, cevabımı yeni güncelledim.
Pietro Basso

Ana klasör yeniden adlandırıldı, ancak başka bir dizin veya yeniden adlandırılmış dosya görmüyorum, herhangi bir öneri?
Ethan Parker

2
@EthanParker find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'ExampleName'iki kez çalıştırmanız gerekiyor , ana klasörlerdeki dosyalar ve dizinler ikinci yinelemede yeniden adlandırılacak.
Pietro Basso

1
Projemde coreData kullandım ve bu komutu iki kez değil üç kez çalıştırmak zorunda kaldım.
ShadeToD

21

Şu adla bir GitHub projesi var Xcode Project Renamer:

Xcode proje dizininin kökünden yürütülmeli ve iki dize parametresiyle çağrılmalıdır: $ OLD_PROJECT_NAME & $ NEW_PROJECT_NAME

Komut dosyası, Xcode projesi veya çalışma alanı dosyası da dahil olmak üzere tüm dosya ve dizinleri yinelemeli olarak geçer ve $ OLD_PROJECT_NAME dizesinin tüm örneklerini $ NEW_PROJECT_NAME dizesiyle (her dosyanın adı ve içeriğinde) değiştirir.

PROJENİZİ YEDEKLEMEYİ UNUTMAYIN!

Xcode Proje Yeniden Adlandırma


Bu yeni başlayanlar için yararlı değil tüm yaptığı benim ana proje dosyası bozuk da zaman i boşa biter aşağıdaki komutları kullanarak komut dosyası kaldırmak değil. $ rm rename.swift
Peter Walter

Lütfen kısayollardan sonra gitmeyin.
Peter Walter

6
@ peter-walter bu tür işlemlerden önce her zaman verilerinizi yedeklemelisiniz.
Olcay Ertaş

Bu bir cazibe gibi çalıştı. Eksik olan tek şey pod installbetiği çalıştırdıktan sonra çalıştırmanız gerektiğidir.
romin21

13

XCode 11.0+.

Şimdi gerçekten çok basit. Sadece Project NavigatorXCode penceresinin sol paneline gidin . Klasör adını değiştirdiğiniz gibi yeniden adlandırmak üzere etkinleştirmek için
basın Enter.
resim açıklamasını buraya girin

Yeni adı burada değiştirdiğinizde XCode sizden diğer parçaları yeniden adlandırmanızı isteyecektir.

resim açıklamasını buraya girin.

RenameBuraya dokunun ve işiniz bitti.
Kök klasör adınızın neden değiştirilmediği konusunda kafanız karıştıysa, bu sadece bir klasördür. sadece yeni bir adla yeniden adlandırdı.
resim açıklamasını buraya girin


7

Proje adını değiştirmek için;

  1. Proje gezgininde projenizi seçin.

2. Dosya denetçisinin Kimlik ve Tür bölümünde Ad alanına yeni bir ad girin.

3. Return tuşuna basın.

Projenizde yeniden adlandırılabilecek öğeleri listeleyen bir iletişim kutusu görüntülenir. İletişim kutusu, değişiklikten sonra öğelerin nasıl görüneceğine dair bir önizleme içerir.

  1. Öğeleri seçerek yeniden adlandırmak için, yeniden adlandırmak istemediğiniz öğelerin onay kutularını devre dışı bırakın. Yalnızca uygulamanızı yeniden adlandırmak için uygulamayı seçili bırakın ve diğer tüm öğelerin seçimini kaldırın.

  2. "Yeniden Adlandır" a basın


5

@ Luke-West'in + @ Vaiden çözümlerini uygularken ek talimatlar:

  • Durdurma düğmesinin yanındaki sol üstteki şemanız değişmediyse (hala mac'umu gösteriyorsa):

    1. YENİ oluşturulan Proje adı (durdur düğmesinin yanında)> Düzenleri Düzenle> Oluştur (sol taraf)> Eski hedefi kaldır (eksik olduğunu söyler) seçeneğini tıklayın ve YENİ olarak adlandırılmış proje logosu altındaki YENİ olarak adlandırılmış projeyle değiştirin

Ayrıca, @ Vaiden'ın çözümünün 3. adımını kullanmak zorunda kalmadım. Sadece rm -rf Pods/terminalde çalışan tüm eski pod dosyalarından kurtuldu

Ayrıca @ Vaiden'ın çözümünde 9. adımı kullanmak zorunda kalmadım, bunun yerine Link Binary Libraries (Çerçeve İkili Kütüphaneleri) altında framework adlı OLD projesini kaldırdım (YENİ olarak adlandırılmış çerçeve zaten vardı)

Böylece güncellenen adımlar aşağıdaki gibi olacaktır:

Adım 1 - Projeyi yeniden adlandırın

  1. Projenizde cocoapods kullanıyorsanız, çalışma alanını kapatın ve bu adımlar için XCode projesini açın.
  2. Xcode görünümünün solundaki "Proje gezgini" nde yeniden adlandırmak istediğiniz projeyi tıklayın.
  3. Sağda "Dosya denetçisi" ni seçin ve projenizin adı "Kimlik ve Tür" altında bulunmalı, yeni adla değiştirilmelidir.
  4. Açılır menüden "Yeniden Adlandır" ı tıklayın

Adım 2 - Şemayı Yeniden Adlandırma

  1. Üst çubukta ("Durdur" düğmesinin yanında), OLD ürününüz için bir şema var, tıklayın ve ardından "Şemaları yönet" e gidin
  2. Şemadaki ESKİ adına tıklayın ve düzenlenebilir hale gelecektir, adı değiştirin
  3. XCode'dan çıkın.
  4. Ana klasörde OLD.xcworkspace öğesini NEW.xcworkspace olarak yeniden adlandırın.

3. Adım - Klasörü varlıklarınızla yeniden adlandırın

  1. Xcode'tan çık
  2. Doğru adlandırılmış ana klasörde, yanlış adlandırılmış OLD klasörüne sahip yeni adlandırılmış bir xcodeproj dosyası vardır. OLD klasörünü yeni adınızla yeniden adlandırın
  3. Projeyi yeniden açın, bir uyarı göreceksiniz: "OLD klasörü yok", uyarıyı kapatın
  4. Soldaki "Proje gezgini" nde, üst düzey OLD klasör adını tıklayın
  5. "Kimlik ve tür" altındaki Yardımcı Programlar bölmesinde "Ad" girişini görürsünüz, bunu ESK'den yeni ada değiştirirsiniz.
  6. Hemen altında bir "Konum" girişi var. ESKİ adına sahip bir klasörü tıklayın ve yeni yeniden adlandırılan klasörü seçin

Adım 4 - Build plist verilerini yeniden adlandırın

  1. Soldaki "Proje gezgini" nde projeyi tıklayın, ana panelde "Yapı Ayarları" nı seçin
  2. Bu bölümde "plist" araması Ambalajın altında Info.plist ve Ürün paketi tanımlayıcısını göreceksiniz
  3. Info.plist'deki üst girişi yeniden adlandırın
  4. Ürün Tanımlayıcı için de aynısını yapın

Adım 5 Pod Dosyasını Kullanma

  1. XCode'da: proje gezgininden Podfile'ı seçin ve düzenleyin. OLD adında bir hedef yan tümcesi görmelisiniz. YENİ olarak değiştirin.
  2. XCode'dan çıkın.
  3. Terminalde, proje dizinine cd, sonra: rm -rf Pods/
  4. Pod kurulumunu çalıştırın.
  5. XCode'u açın.
  6. Proje gezgininde proje adınızı tıklayın.
  7. Ana bölmede, Aşamaları Oluştur sekmesine geçin. İkili Kitaplıklarıyla Bağla altında, OLD çerçevesini arayın ve kaldırın (eksik olduğunu belirtmelidir) YENİ olarak adlandırılan çerçeve, eklemek için pencerenin altındaki "+" düğmesini kullanmıyorsa zaten orada olmalıdır.
  8. Bir objektif-c Köprüleme başlığınız varsa, Yapı ayarları'na gidin ve başlığın konumunu OLD / OLD-Bridging-Header.h yerine NEW / NEW-Bridging-Header.h olarak değiştirin.
  9. Temizleyin ve çalıştırın.

Tüm adımları başarıyla uyguladıktan sonra hatasız bir şekilde derleme yapabilmelisiniz


2
Adım 5.3 rm-rf Pods/için daha temiz bir yol yerine, pod deintegrateXcode projenizden tüm CocoaPod'ların izlerini kaldıran, ancak Podfile'ınızı olduğu gibi bırakan çalıştırmaktır.
jklapwyk

Bu kurallar. İyonik bir uygulamayı mevcut bir iOS uygulamasıyla birleştirmem için temel oluşturdu.
t4l

2

Luke ve Vaiden'ın önerdiği tüm adımların yanı sıra, Storyboard'umdaki tüm customModule özelliklerini yeni adla eşleşecek şekilde yeniden adlandırmak zorunda kaldım ve bu büyük / küçük harfe duyarlı olmalıdır.


1
bundan bahseden tek kişi!
Fattie

1
NOT bunu sadece bir çeşit "tekrar tıklayarak" INTERFACE BUILDER'da yapabilirsiniz. Daha sonra yeni proje adınıza doğru "varsayılan" olarak yeniden ayarlanır.
Fattie
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.