Mengganti nama proyek xcode 4 dan folder sebenarnya

119

Saya tahu cara mengganti nama proyek di Xcode 4, tetapi bagaimana Anda mengganti nama folder sumber? Masalahnya adalah mengganti nama proyek di Xcode, hanya mengganti nama dalam Xcode (Meskipun ini kemajuan dibandingkan sebelumnya) - tetapi mengapa Xcode tidak mengganti nama folder di sistem file, saya tidak tahu.

Chris G.
sumber
Sudahkah Anda mencoba mengganti nama folder?
David Brown
2
Saya punya teman, dan semua file dalam file proyek hilang - semuanya ditandai dengan baca, karena tidak memiliki referensi apa pun. Tapi saya menemukan soultion - lihat jawaban saya. Terima kasih telah membalas
Chris G.

Jawaban:

259

Anda dapat melakukan ini dari dalam Xcode tanpa harus mengedit file pbxproj secara manual di editor teks!

Begini caranya:

  1. Ubah nama folder sumber Anda di Finder. Ini akan merusak proyek pada awalnya karena Xcode tidak secara otomatis mendeteksi ketika folder nyata yang ditunjuk oleh folder proyek virtual (kuning) diubah, jadi semua file di dalam folder itu akan berubah menjadi merah di Xcode. Jangan khawatir tentang itu, kami akan memperbaikinya di langkah 3.

  2. Di Xcode, klik pada folder virtual (sekarang rusak) di bilah sisi kiri dan ganti namanya agar sesuai dengan nama di Finder (Anda sebenarnya dapat menyebutnya apa pun yang Anda inginkan, atau tidak mengganti namanya sama sekali, tapi itu akan gila ). Itu tidak akan memperbaiki file merah di dalam folder, tapi tidak apa-apa.

  3. Di sidebar kanan di Xcode, klik ikon yang ditunjukkan pada gambar di bawah ini untuk membuka dialog file. Pilih folder yang sebelumnya Anda ganti namanya. Ini akan menghubungkan kembali folder virtual dengan folder asli pada disk, dan secara otomatis akan memperbaiki tautan ke semua file di dalamnya.

  4. Di pengaturan build Anda, cari nama folder lama dan ganti nama secara manual setiap kejadian yang Anda temukan. Biasanya akan ada dua di antaranya, oldfolder / prefix.pch dan oldfolder / info.plist, tetapi mungkin ada yang lain.

Semua selesai!

masukkan deskripsi gambar di sini

EDIT: opsi ini masih ada di Xcode 5, tetapi secara default tersembunyi secara membantu. Untuk menunjukkannya, klik header tipis "Identity and Type" di inspektur di atas panel "Pengaturan Teks" untuk meluaskannya.

Nick Lockwood
sumber
Luar biasa Saya hanya menambahkan bahwa jika mengganti nama adalah bagian dari mengganti nama keseluruhan proyek, maka ada langkah lain: Ubah "Nama Proyek" di sebelah kanan, area atas dan biarkan Xcode mengubah nama semuanya secara internal agar sesuai.
RedYeti
1
Semuanya bekerja dengan baik, dan proyek tersebut diganti namanya, tetapi pesan pembangunan di bagian atas dan nama oleh simulator masih mempertahankan nama lama, untuk mengubahnya: Buka menu produk, kelola skema, dan ganti nama skema
BlackTigerX
Benar. Anda juga dapat menghapus skema dan menekan tombol buat skema otomatis.
Nick Lockwood
Ada yang tahu bagaimana melakukan ini di xCode 5? Saya tidak melihat tombol ajaib itu lagi. :(
Jason
Itu masih ada, hanya tersembunyi. Anda harus memperluas baris yang disebut "Identity and type" di inspektur dengan mengkliknya. Butuh waktu sekitar 20 menit untuk mengetahuinya!
Nick Lockwood
112

Saya telah melakukannya puluhan kali:

  • Ubah nama Proyek dengan mengklik kemudian mengedit Judul di Xcode Project Navigator Anda.
  • Tutup Xcode.
  • Ubah nama folder sumber.
  • Dari Finder, buka .pbxprojfile di dalam bundel proyek (menu konteks "Tampilkan Isi Paket") dengan editor teks apa pun.
  • Cari dan ganti kemunculan nama folder asli dengan nama folder baru.
  • Simpan file.
  • Buka proyek Xcode.
djromero.dll
sumber
3
Ingatlah untuk melakukan ini setelah Anda mengganti nama proyek
Aram Kocharyan
Saya mengikuti instruksi Anda dan gagal. Saya pikir masalahnya ada di "Cari dan ganti setiap kejadian dari nama folder asli dengan nama folder baru." Bisakah Anda memberikan petunjuk yang lebih detail tentang langkah ini? Terima kasih
Philip007
Cara melakukan pencarian dan penggantian tergantung pada editor teks atau alat yang dipilih. Dalam kasus saya, dengan vim: <ESC>:% s / old / new / g <ENTER> Ini bisa gagal jika ada hal lain di file proyek dengan nama yang bertentangan.
djromero
Terima kasih @madmw, saya menemukan jawabannya. Saya menggunakan TextEdit. Menurut saya triknya adalah mengganti atribut "Berisi" menjadi "Kata Lengkap" saat melakukan pencarian dan penggantian. Dan saya memposting instruksi rinci di bawah ini.
Philip007
Bekerja dengan baik! Saat mengganti nama folder target, misalnya pustaka statis, saya juga harus mengacaukan skema saya dan juga mengganti nama file prefiks header dan info plist.
Tim Potter
12

Tugas: Ubah nama "Play" menjadi "Play2" di Xcode dan Finder

Ubah ini:

masukkan deskripsi gambar di sini

Untuk ini:

masukkan deskripsi gambar di sini

LANGKAH:

// Sebelumnya, buat cadangan proyek di Finder!

  • Ubah nama proyek di Xcode Project navigator // Klik nama proyek lalu tekan enter
  • Ubah nama grup di Xcode Project navigator // tidak memengaruhi nama folder di Finder
  • Tutup Xcode
  • Ubah nama folder luar (kolom kiri pada gambar) di Finder

// Semua langkah di atas lurus ke depan dan tanpa efek samping // // Sekarang sampai pada bagian yang sulit: ganti nama folder dalam (kolom tengah pada gambar) di Finder (yang sejajar dengan .xcodeproj)

  • Ubah nama folder dalam di Finder sambil tetap menutup Xcode
  • Klik kanan .xcodeproj, pilih "Show Package Contents"
  • Buka file .pbxproj dengan Mac TextEdit
  • Cari dan ganti semua "Play" dengan "Play2". Untuk menjamin semuanya berjalan dengan benar, klik tanda panah di ujung kiri bilah pencarian dan ubah atribut pencarian. Ubah "Berisi" menjadi "Kata lengkap", dan hapus centang "Abaikan huruf besar-kecil"
  • Simpan file .pbxproj
  • Buka proyek Xcode dan Jalankan
Philip007
sumber
4

Berikut adalah cara mengganti nama proyek secara efektif di XCode4 (TERMASUK FOLDER FILE):

  1. Tutup semua proyek terbuka sepenuhnya di XCode untuk mencegah masalah apa pun
  2. Salin Proyek yang dipermasalahkan ke Map baru (PENTING: SIMPAN CADANGAN PROYEK LAMA ANDA)
  3. Buka Proyek
  4. Ubah nama Proyek itu sendiri di XCode4 (klik dua kali pada nama proyek), ubah nama dan ikuti langkah-langkahnya (ya untuk semuanya)
  5. Pergi ke produk, kelola skema dan ganti nama skema (klik dua kali pada nama skema)
  6. Tutup proyek Anda (pastikan benar-benar ditutup jika tidak langkah selanjutnya tidak akan berfungsi)
  7. Di Finder, buka folder Project dan klik kanan pada file .xcodeproj, lalu pilih opsi "Show Package Contents"
  8. Kemudian klik kanan pada file .pbxproj dan buka dengan TextEdit
  9. Ganti semua kemunculan Nama Folder tempat proyek dulu tinggal (Nama proyek lama untuk nama proyek baru)
  10. Simpan file
  11. Buka Proyek lagi dan Bangun!
Mav55
sumber
Bisakah Anda memberikan instruksi lebih detail pada langkah 9?
Philip007
2

Pertama - jangan mengganti nama proyek Xcode !!!

Jika Anda harus, di bawahnya bisa jadi - saya tidak pernah membuatnya berfungsi, akhirnya membuat proyek baru dan mulai menyalin semua di file yang ada. Xcode begitu ahh .... Ada banyak hal yang tidak produktif, seperti mencoba mengganti nama file dari "Name" menjadi "name". Selamat bersenang-senang.

Saya menemukan jawabannya atau bagaimana menyiasatinya: Buka file pbxproj dengan mengklik kanan "Show Package Content" dan di sana Anda mengedit file project.pbxproj - Anda harus mengganti nama referensi yang disebut path dan beberapa hal lainnya - cari saja nama folder ditambahkan "/".

Hanya itu saja. Semoga membantu seseorang.

Chris G.
sumber
2
Saya mengganti nama proyek kemarin dan itu bekerja dengan baik. Saya setuju bahwa Xcode adalah "ahh": D
manmal
Ada cara yang sangat aman dan didukung untuk melakukan ini - lihat jawaban saya.
Nick Lockwood
2

Berikut adalah masalah lain yang harus Anda waspadai saat mengganti nilai di file * .pbxproj Anda. Jika nama folder lama Anda adalah FooBar, Anda akan memiliki entri di file * .pbxproj yang terlihat seperti ini:

jalur = FooBar

Misalkan nama folder baru Anda adalah Foo Bar. Artinya, Anda memperkenalkan spasi. Kemudian, baris ini harus menjadi

path = "Foo Bar"

Jika Anda hanya melakukan pencarian dan penggantian sederhana, hasilnya adalah file * .pbxproj yang tidak dapat diurai oleh Xcode. Jika nama folder baru Anda memiliki spasi dan nama lama tidak memiliki spasi, pastikan untuk menyertakan tanda kutip ganda.

Zampano
sumber
2

Saya menyimpulkan sendiri, setelah memeriksa berbagai jawaban di atas dan mencoba sendiri. Mari kita asumsikan nama proyek saat ini adalah ProjAbc dan Anda ingin mengganti namanya menjadi ProjDef:

  1. Keluar dari Xcode proyek itu.

  2. Di Finder, Gandakan folder DI ATAS ProjAbc.xcodeproj untuk cadangan.

  3. Di Finder, Ubah nama folder dengan bebas DI ATAS ProjAbc.xcodeproj jika Anda merasa membutuhkannya untuk menyesuaikan dengan nama proyek baru.

  4. Di Finder, Ubah nama folder file sumber sejajar dengan ProjAbc.xcodeproj dari ProjAbc ke ProjDef

  5. Buka Xcode untuk ProjAbc.xcodeproj (di Project Navigator, semua file di folder sumber virtual ProjAbc akan berwarna Merah).

  6. Di Xcode, klik folder virtual (sekarang rusak) di Project Navigator di bilah sisi kiri dan ganti namanya agar sesuai dengan nama di Finder - ProjDef. Itu belum memperbaiki file merah di dalam folder, tapi tidak apa-apa.

  7. Di Xcode, (masih memilih folder virtual di bilah sisi kiri) di bilah sisi kanan, di inspektur File, klik ikon yang ditunjukkan pada gambar di bawah untuk membuka dialog file. Dalam dialog file, pilih folder yang sebelumnya Anda ganti namanya (ProjDef). Ini akan menghubungkan kembali folder virtual dengan folder asli pada disk, dan secara otomatis akan memperbaiki tautan ke semua file di dalamnya. Gambar menunjukkan tempat untuk mengklik ikon Folder di File inspector

  8. Di Xcode, di Project Navigator, klik nama proyek ProjAbc, dan ubah namanya menjadi ProjDef.

    • Anda akan diminta: "Ubah nama item konten proyek?". Klik tombol "Ubah nama".
    • Anda akan ditanya: "Apakah Anda ingin Xcode mengambil snapshot otomatis sebelum Project Rename dan operasi serupa?". Klik "Nonaktifkan" atau "Aktifkan". Tidak masalah.
  9. Di Xcode, sekarang buka "Build Settings" di dalam target ProjDef (di dalam proyek ProjDef di Project Navigator). Ubah nama lipat dan nama file dari file * -Info.plist dan * -Prefix.pch agar berisi ProjDef, bukan ProjAbc.

  10. Di Xcode, di Project Navigator, di folder sumber virtual ProjDef, di "Mendukung File", juga ganti nama lagi file * -Info.plist dan * -Prefix.pch agar berisi ProjDef dan bukan ProjAbc

  11. Di Menu Xcode, tekan Produk / Skema / Kelola Skema ... (atau klik "ProjAbc"> Nama Skema di Bilah Skema di kiri atas Xcode, dan tekan "Kelola Skema ...") dan di kotak dialog ganti nama Skema dari ProjAbc ke ProjDef, lalu tekan tombol "OK". Jika nama proyek terdiri dari satu kata, Anda dapat menjalankannya sekarang!

  12. Di Xcode, edit baris komentar teratas di Supporting Files / * - Prefix.pch file, dan ganti ProjAbc dengan ProjDef (2 kali). Tentu saja mengoreksi komentar ini bersifat opsional.

  13. Keluar dari Xcode.

  14. Di Finder, arahkan ke ProjDef.xcodeproj dan buka di editor teks. (Buka di TextWrangler.app, atau, klik kanan mouse dan di menu pop-up tekan "Show Package Contents" lalu edit file project.pbxproj di TextEdit.app)

  15. Di Editor Teks, cari "ProjAbc" (Seluruh Kata, Cocokkan Kapitalisasi) yang akan muncul sekali (dalam paragraf: / * Mulai bagian PBXNativeTarget * / di baris: productName = ProjAbc;) dan ganti dengan "ProjDef". Memang project bisa jalan kok !, jadi langkah ini opsional.

  16. jika nama proyek terdiri dari 2 atau lebih kata terpisah, seperti "ProjDef Geh", maka Anda HARUS melakukan langkah-langkah selanjutnya: Cari referensi ke folder Finder dari folder file sumber virtual -

    • Cari baris: path = ProjDef Geh;
    • Ini akan muncul sekali, dalam paragraf / * ProjDef Geh * /
    • Gantikan dengan baris: path = "ProjDef Geh";
  17. Simpan dari editor teks, dan keluar dari Editor Teks.

  18. Itu dia. Seperti yang tertulis di atas, jika nama proyek terdiri dari satu kata, Anda dapat menjalankannya tepat di akhir langkah 11.

mlev
sumber
Anda telah membuat ini lebih rumit dari yang seharusnya. Jika Anda melakukan langkah 8 (mengganti nama proyek) terlebih dahulu, sebelum langkah 4 (mengganti nama folder sumber), itu akan mengganti nama file Info.plist dan Prefix.pch Anda secara otomatis, sehingga Anda dapat melewati langkah 9 dan 10.
Nick Lockwood
0

Saya menemukan jawaban di atas sangat berguna, terutama jawaban Nick Lockwood.

Saya baru saja mengganti nama beberapa folder di Xcode 8 dan mengalami dua masalah lagi: A) "hilang dari kesalahan copy pekerjaan" B) Data Inti crash .

Cara mengatasi dua masalah ini:

A) " hilang dari kesalahan copy pekerjaan "

Saya menemukan jawaban di bawah ini sangat berguna: Peningkatan Swift 3 / Xcode 8 - 100-an file DerivedData hilang karena kesalahan copy pekerjaan

Pada dasarnya Xcode 8 memiliki kontrol sumber yang ketat, yang dapat menyebabkan kesalahan di atas. Kamu harus:

  1. Bersihkan data turunan Xcode.
  2. Buka Kontrol Sumber dan klik Segarkan Status.
  3. Pergi ke Source Control dan klik Commit; pilih semua file di sidebar kiri menu komit saat melakukan (klik kanan -> Pilih Semua).
  4. Anda mungkin akan mendapatkan kesalahan.
  5. Tutup menu Komit.
  6. Segarkan Status.
  7. Tutup proyek Anda dengan keluar dari Xcode.
  8. Buka kembali proyek Anda, segarkan status, lakukan lagi.
  9. Kali ini komit harus bekerja.
  10. Klik Proyek -> Bersihkan.

Saya berasumsi bahwa Anda telah mengaktifkan Kontrol Sumber. Jika belum, atau jika Anda terjebak mengikuti instruksi saya, cukup ikuti instruksi yang lebih rinci di tautan yang disediakan.

B) Data Inti rusak

Mengganti nama folder terkadang akan mengacaukan Data Inti. Ada beberapa kemungkinan alasan mengapa demikian, dan di bawah ini adalah beberapa perbaikan yang dapat saya sarankan:

  1. Nama model AppDelegate salah . Ini adalah kasus dalam situasi saya. Buka AppDelegate Anda dan temukan let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME"). Pastikan bahwa namanya benar.

    Di masa depan (beberapa tahun setelah posting ini, ketika Apple mengubah Data Inti lagi) atau jika Anda menggunakan versi Data Inti yang lebih lama, lihat AppDelegate dengan cermat. Mungkin ada sesuatu yang funky di sana yang mengacaukan Data Inti Anda.

  2. Nama model salah di xcdatamodeld . Buka Finder dan buka .xcdatamodeld Anda di editor teks.

Periksa berikut ini:

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

Lebih detail di sini: File model Data Inti tidak dimuat saat mengganti nama

  1. Jika dua hal di atas tidak berfungsi, coba 1) hapus entitas Anda lalu tambahkan entitas lain yang identik atau 2) hapus xcdatamodeld Anda lalu tambahkan model data lain yang identik (dan pastikan bahwa nama xcdatamodeld baru cocok apa yang ada di AppDelegate Anda dan kode lainnya). Jangan pernah melakukan ini dengan Aplikasi langsung - atau jika Anda melakukan ini, pastikan untuk memigrasikan Data Inti Anda dengan benar saat melakukannya.
Hadoren
sumber
0

Jika Anda memiliki referensi lama proyek sumber ke dalam proyek Anda, Ketika mempublikasikan proyek (setiap perubahan yang dilakukan mempengaruhi kedua proyek) di sini solusinya

  • Proyek Terbitkan dari proyek sumber
  • Ubah nama folder sumber proyek sumber yang memecahkan masalah referensi.
  • Dalam projek publikasi semuanya menjadi merah pilih folder proyek Anda saat ini. (tangkapan layar ditampilkan dalam jawaban centang hijau dari stackoverflow)

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

Ravi Kumar
sumber