Bagaimana cara saya sepenuhnya mengubah nama proyek Xcode (termasuk folder)?

470

Saya punya proyek bernama XXX. Saya ingin mengubah nama proyek ini menjadi YYY.

Perhatikan bahwa XXXini adalah istilah yang sangat umum (misalnya "data", atau sekadar "proyek"), dan dengan demikian pencarian dan penggantian RegEx yang sederhana tidak dimungkinkan, karena risiko merusak file konfigurasi proyek.

Direktori proyek saya saat ini berisi item-item berikut:

  • XXX
  • XXXTests
  • XXX.xcodeproj

dan saya ingin mengubah nama mereka menjadi:

  • YYY
  • YYYTests
  • YYY.xcodeproj

... masing-masing, dengan perubahan yang diperlukan tercermin dalam file proyek saya.

Bagaimana saya bisa menyelesaikan ini tanpa harus secara manual membuat dan mengisi proyek baru?


Sunting: Sangat konyol bahwa ini telah menjadi pertanyaan saya yang paling banyak dipilih.

Vatsal Manot
sumber
Kemungkinan duplikat proyek Ubah nama xcode
Ron Myschuk
1
Juga ditanyakan dan dijawab di sini stackoverflow.com/questions/17744319/… dengan 200 suara di jawabannya
Ron Myschuk
1
juga bertanya dan menjawab di sini stackoverflow.com/questions/8262613/… dengan 189 suara kedua posting masih relevan di Xcode 7
Ron Myschuk
Jika Anda hanya ingin mengganti nama nama ikon aplikasi, periksa jawaban ini stackoverflow.com/questions/238980/…
LYu

Jawaban:

1020

Langkah 1 - Ganti nama proyek

  1. Klik pada proyek yang ingin Anda ganti namanya di "Project navigator" di panel kiri jendela Xcode.
  2. Di panel kanan, pilih "File inspector", dan nama proyek Anda harus ditemukan di bawah "Identity and Type". Ubah ke nama baru Anda.
  3. Ketika dialog bertanya apakah akan mengganti nama atau tidak mengubah nama item konten proyek, klik "Ganti nama".

Langkah 2 - Ganti nama skema

  1. Di bagian atas jendela, di sebelah tombol "Stop", ada skema untuk produk Anda dengan nama lamanya; klik di atasnya, lalu pilih "Kelola Skema ...".
  2. Klik pada nama lama dalam skema dan itu akan dapat diedit; ganti nama dan klik "Tutup".

Langkah 3 - Ganti nama folder dengan aset Anda

  1. Keluar dari Xcode.
  2. Di folder master yang diberi nama dengan benar, ada file .xcodeproj yang baru bernama dengan folder OLD yang salah nama. Ganti nama folder LAMA menjadi nama baru Anda (jika Anda menggunakan Git, Anda bisa menjalankannya git mv oldname newnamesehingga Git mengenali ini adalah langkah, daripada menghapus / menambahkan file baru).
  3. Buka kembali proyek dalam Xcode dan Anda akan melihat peringatan "Folder OLD tidak ada"; abaikan peringatan itu.
  4. Di "Project navigator" di panel sebelah kiri, klik pada folder OLD tingkat atas.
  5. Di panel sebelah kanan, di bawah "Identity and Type", ubah bidang "Name" dari nama OLD ke nama baru.
  6. Tepat di bawah bidang itu ada menu "Lokasi". Klik pada ikon folder terdekat dan pilih folder yang diubah namanya.

Langkah 4 - Ganti nama data daftar Build

  1. Klik pada proyek di "Project navigator" di sebelah kiri, dan di panel utama pilih "Build Settings".
  2. Cari "plist" di pengaturan.
  3. Di bagian Pengemasan, Anda akan melihat Info.plistdan Product Bundle Identifier.
  4. Jika ada nama yang dimasukkan Info.plist, perbarui.
  5. Lakukan hal yang sama untuk Product Bundle Identifier.
  6. Jika Anda menggunakan SwiftUI, cari "Aset Pengembangan" dan perbarui lintasan.

Langkah 5 - Ulangi langkah 3 untuk pengujian (jika Anda memilikinya)

Langkah 6 - Ulangi langkah 3 untuk data inti jika namanya cocok dengan nama proyek (jika Anda memilikinya)

Langkah 7 - Bangun kembali proyek Anda

  1. Command+ Shift+ Kuntuk membersihkan
  2. Command+ Buntuk membangun
Luke West
sumber
5
Anda dapat mengubah nama proyek tetapi nama folder masih sama. Apakah Anda tahu cara mengubahnya
Coder221
5
Terima kasih! untuk Xcode 8, file hak harus diubah namanya secara manual.
Jiulong Zhao
54
Ketika melakukan langkah 3 bagian 2 (mengganti nama folder), jika Anda menggunakan git, saya sarankan git mv oldname newname, dengan cara itu git akan mengenali bahwa itu adalah langkah, tidak menghapus dan menambahkan semua file Anda.
Aaron Ash
14
perfect, berfungsi dengan sempurna di Xcode 8.2, hanya satu hal untuk ditunjukkan di sini saat mengedit skema jika mengklik pada nama skema dulu tidak membuatnya dapat diedit kemudian pilih skema dan tekan tombol kembali ini akan membuat nama skema dapat diedit.
Khurram Shehzad
5
Jangan lupa untuk menemukan & mengganti contoh lain dari nama proyek lama Anda.
Derek Soike
194

Untuk menambahkan jawaban sempurna @ luke-west:

Saat menggunakan CocoaPods

Setelah langkah 2:

  1. Keluar dari XCode.
  2. Di folder master, ganti nama OLD.xcworkspacemenjadi NEW.xcworkspace.

Setelah langkah 4:

  1. Dalam XCode: pilih dan edit Podfiledari navigator proyek. Anda harus melihat targetklausa dengan nama LAMA. Ubah ke BARU.
  2. Keluar dari XCode.
  3. Di folder proyek, hapus OLD.podspecfile.
  4. rm -rf Pods/
  5. Lari pod install .
  6. Buka XCode.
  7. Klik nama proyek Anda di navigator proyek.
  8. Di panel utama, beralih ke menu Build Phases tab.
  9. Di bawah Link Binary With Libraries, carilibPods-OLD.a dan hapus.
  10. Jika Anda memiliki header Bridging yang objektif-c, buka Pengaturan build dan ubah lokasi header dari OLD / OLD-Bridging-Header.h ke NEW / NEW-Bridging-Header.h
  11. Bersihkan dan jalankan.
Vaiden
sumber
7
Menggunakan Xcode 8.3.2 Saya harus menggunakan cocoapods-deintegrate dan instal ulang semua pod untuk menjalankan proyek dengan nama baru.
SteffenK
2
@ SteffenK apakah ada perbedaan antara metode itu dan rm -rf Pods / Mempertimbangkan bahwa Anda telah melakukan semua langkah lainnya?
Vaiden
1
Maukah Anda menjelaskan lebih lanjut? Jejak apa?
Vaiden
2
@Vaiden terima kasih banyak atas kejelasan ekstra saat bekerja dengan CocoaPods! Prosesnya memang membuat referensi kedua, yang aneh, tetapi setelah menghapus semuanya bekerja dengan sempurna! Terima kasih lagi! :)
Matt Swift
4
Bisakah seseorang memberi tahu saya di mana saya dapat menemukan file OLD.podspec yang disebutkan dalam jawaban ini? Dalam proyek saya, saya mendapat beberapa file seperti 'Podfile' / 'Podfile.lock' / 'Pods.xcodeproj' dan saya mendapatkan folder kosong bernama 'Local Podspecs', tetapi saya tidak dapat menemukan file
.podspec
51

Solusi yang lebih cepat menggunakan perintah shell (bekerja dengan CocoaPods juga):

SILAHKAN cd TO REPOSITORY NON-GIT SEBELUM MEMPROSES ⚠️

Langkah 1 - Prasyarat

  1. Salin folder proyek asli Anda untuk sementara /NewProjectFolder DI LUAR repositori git Anda. ⚠️ perubahan ke .git dapat merusak indeks git Anda 💥 ☠

Langkah 2 - Buka Terminal

Sekarang kita akan mengubah nama proyek dari oldNamemenjadi NewProject.

  • Tutup XCode.
  • Pergi ke milikmu /NewProjectFolder.
cd /Path/to/your/NewProjectFolder
  • Instal alat tambahan yang dibutuhkan.
brew install rename ack
  • Ganti nama file dan direktori yang berisi string sumber. Anda harus MENJALANKAN DUA PERINTAH INI , karena direktori akan diubah namanya terlebih dahulu, kemudian file dan direktori di dalamnya akan diganti namanya pada iterasi berikutnya.
find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'NewProject'
  • Periksa apakah semua file yang berisi string sumber diganti namanya. Anda akan melihat output kosong.
find . -name 'oldName*'
  • Ganti semua kemunculan string di semua file.
ack --literal --files-with-matches 'oldName' --print0 | xargs -0 sed -i '' 's/oldName/NewProject/g'
  • Periksa apakah semua kemunculan string di semua file diganti. Anda akan melihat output kosong.
ack --literal 'oldName'
  • Lari pod install
  • Tambahkan NewProjectFolderke repositori Anda.
  • Kamu selesai!
Pietro Basso
sumber
3
Terima kasih untuk ini, saya merasa berguna. Ketika menyalin dan menempelkan perintah seperti ini, saya lebih suka jika pekerjaan itu dapat diminimalkan sehingga nama contoh "YourNewAmazingProjectName" terlalu banyak, cukup gunakan "contoh" karena memperpanjang umur tombol hapus saya.
LpLrich
1
@LpLrich terima kasih atas saran Anda, saya baru saja memperbarui jawaban saya.
Pietro Basso
Folder utama diganti namanya tetapi saya tidak melihat direktori atau file lain diganti namanya, ada saran?
Ethan Parker
2
@EthanParker Anda perlu menjalankan find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'ExampleName'dua kali, file dan direktori di dalam folder utama akan diubah namanya pada iterasi kedua.
Pietro Basso
1
Saya menggunakan coreData dalam proyek saya dan saya harus menjalankan perintah ini tidak dua kali tetapi tiga kali.
ShadeToD
21

Ada proyek GitHub bernama Xcode Project Renamer:

Itu harus dijalankan dari dalam root direktori proyek Xcode dan dipanggil dengan dua parameter string: $ OLD_PROJECT_NAME & $ NEW_PROJECT_NAME

Script memeriksa semua file dan direktori secara berulang, termasuk proyek Xcode atau file ruang kerja dan mengganti semua kemunculan string $ OLD_PROJECT_NAME dengan string $ NEW_PROJECT_NAME (keduanya di setiap nama file dan konten).

JANGAN LUPA MEMBATALKAN PROYEK ANDA!

Pengembang Proyek Xcode

Olcay Ertaş
sumber
Ini tidak berguna untuk pemula semua yang dilakukannya adalah merusak file proyek utama saya juga tidak menghapus skrip menggunakan perintah di bawah ini dan diakhiri dengan buang waktu. $ rm rename.swift
Peter Walter
Tolong jangan pergi setelah jalan pintas.
Peter Walter
6
@ peter-walter Anda harus selalu membuat cadangan data Anda sebelum operasi tersebut.
Olcay Ertaş
Ini bekerja seperti pesona. Satu-satunya hal yang hilang adalah Anda harus menjalankan pod installsetelah menjalankan skrip.
romin21
11

XCode 11.0+.

Ini sangat sederhana sekarang. Cukup pergi ke Project Navigatorpanel kiri jendela XCode.
Tekan Enteruntuk membuatnya aktif untuk mengganti nama, sama seperti Anda mengubah nama folder.
masukkan deskripsi gambar di sini

Cukup ganti nama baru di sini, dan XCode akan meminta Anda untuk mengganti nama barang lain.

masukkan deskripsi gambar di sini.

Ketuk di Renamesini dan Anda selesai.
Jika Anda bingung tentang nama folder root Anda mengapa itu tidak berubah, baik itu hanya folder. baru saja ganti namanya dengan nama baru.
masukkan deskripsi gambar di sini

Kiran Jasvanee
sumber
7

Untuk mengubah nama proyek;

  1. Pilih proyek Anda di navigator Proyek.

2. Di bagian Identitas dan Jenis inspektur File, masukkan nama baru ke dalam bidang Nama.

3.Tekan Kembali.

Dialog ditampilkan, daftar item dalam proyek Anda yang dapat diubah namanya. Dialog mencakup pratinjau bagaimana item akan muncul setelah perubahan.

  1. Untuk mengganti nama item secara selektif, nonaktifkan kotak centang untuk item apa pun yang tidak ingin Anda ganti namanya. Untuk hanya mengganti nama aplikasi Anda, biarkan aplikasi tersebut dipilih dan batalkan pilihan semua item lainnya.

  2. Tekan "Ganti nama"

Paal Aune
sumber
5

Petunjuk tambahan ketika mengikuti solusi @ Luke-West's + @ Vaiden:

  • Jika skema Anda belum berubah (masih menampilkan mac saya) di kiri atas di sebelah tombol stop:

    1. Klik nama Proyek yang baru diciptakan (di sebelah tombol stop)> Klik Edit Skema> Bangun (sisi kiri)> Hapus target lama (akan mengatakan itu tidak ada) dan ganti dengan proyek yang baru bernama di bawah logo proyek yang baru bernama

Juga, saya tidak perlu menggunakan langkah 3 dari solusi @ Vaiden. Hanya berlarirm -rf Pods/ di terminal menyingkirkan semua file pod lama

Saya juga tidak harus menggunakan langkah 9 dalam solusi @ Vaiden, sebagai gantinya saya baru saja menghapus kerangka kerja proyek bernama OLD di bawah Link Binary Libraries (kerangka kerja yang baru saja disebutkan sudah ada di sana)

Jadi langkah-langkah yang diperbarui adalah sebagai berikut:

Langkah 1 - Ganti nama proyek

  1. Jika Anda menggunakan cocoapod di proyek Anda, tutup ruang kerja, dan buka proyek XCode untuk langkah-langkah ini.
  2. Klik pada proyek yang ingin Anda ganti namanya di "Project navigator" di sebelah kiri tampilan Xcode.
  3. Di sebelah kanan pilih "File inspector" dan nama proyek Anda harus ada di sana di bawah "Identity and Type", ubah ke nama baru.
  4. Klik "Ganti nama" di menu dropdown

Langkah 2 - Ganti Nama Skema

  1. Di bilah atas (di dekat tombol "Stop"), ada skema untuk produk LAMA Anda, klik di atasnya, lalu pergi ke "Kelola skema"
  2. Klik pada nama LAMA dalam skema, dan itu akan menjadi dapat diedit, ubah nama
  3. Keluar dari XCode.
  4. Di folder master, ganti nama OLD.xcworkspace ke NEW.xcworkspace.

Langkah 3 - Ganti nama folder dengan aset Anda

  1. Keluar dari Xcode
  2. Dalam folder master yang bernama benar, ada file xcodeproj yang baru bernama dengan folder OLD yang salah bernama. Ganti nama folder LAMA dengan nama baru Anda
  3. Buka kembali proyek, Anda akan melihat peringatan: "Folder OLD tidak ada", singkirkan peringatan
  4. Di "Project navigator" di sebelah kiri, klik nama folder OLD tingkat atas
  5. Di panel Utilitas di bawah "Identitas dan ketik" Anda akan melihat entri "Nama", ubah ini dari TUA ke nama baru
  6. Tepat di bawah ada entri "Lokasi". Klik pada folder dengan nama LAMA dan pilih folder yang baru diganti namanya

Langkah 4 - Ganti nama data daftar Build

  1. Klik pada proyek di "Project navigator" di sebelah kiri, di panel utama pilih "Build Settings"
  2. Cari "plist" di bagian ini Dalam kemasan, Anda akan melihat Info.plist, dan pengidentifikasi bundel Produk
  3. Ganti nama entri teratas di Info.plist
  4. Lakukan hal yang sama untuk Pengidentifikasi Produk

Langkah 5 Menangani Podfile

  1. Dalam XCode: pilih dan edit Podfile dari navigator proyek. Anda harus melihat klausa target dengan nama LAMA. Ubah ke BARU.
  2. Keluar dari XCode.
  3. Di terminal, masukkan ke direktori proyek, lalu: rm -rf Pods/
  4. Jalankan instal pod.
  5. Buka XCode.
  6. Klik nama proyek Anda di navigator proyek.
  7. Di panel utama, beralih ke tab Bangun Fase. Di bawah Tautan Biner Dengan Pustaka, cari kerangka TUA dan hapus (seharusnya mengatakan tidak ada) Kerangka kerja yang baru bernama harus sudah ada di sana, jika tidak menggunakan tombol "+" di bagian bawah jendela untuk menambahkannya
  8. Jika Anda memiliki header Bridging yang objektif-c, buka Pengaturan build dan ubah lokasi header dari OLD / OLD-Bridging-Header.h ke NEW / NEW-Bridging-Header.h
  9. Bersihkan dan jalankan.

Anda harus dapat membangun tanpa kesalahan setelah Anda mengikuti semua langkah dengan sukses

itsmcgh
sumber
2
Untuk Langkah 5.3 alih-alih rm-rf Pods/cara yang lebih bersih adalah menjalankan pod deintegrateyang menghapus semua jejak CocoaPods dari proyek Xcode Anda tetapi membiarkan Podfile Anda tetap utuh.
jklapwyk
Ini aturan. Ini memberikan dasar bagi saya untuk menggabungkan aplikasi Ionic dengan aplikasi iOS yang ada.
t4l
2

Selain dari semua langkah yang direkomendasikan Luke dan Vaiden, saya juga harus mengganti nama semua properti customModule di Storyboard saya agar sesuai dengan nama baru, dan ini harus peka huruf besar-kecil.

CristianMoisei
sumber
1
satu-satunya orang yang pernah menyebutkan ini!
Fattie
1
CATATAN Anda dapat melakukan ini DI BANGUNAN ANTARMUKA, dengan hanya semacam "mengklik kembali" pada bidang. Maka akan benar "re-default" ke nama proyek baru Anda.
Fattie