dalam proyek XCode, saya sering mendapat file xcodeproject / project.pbxproj berubah, tetapi info yang tidak berguna bagi saya, itu untuk dikompilasi.
Haruskah saya mengabaikan file ini dan file xcodeproject / projectxworkspace / username.xcuserdata / UserInterfaceState.xcuserstate?
Jawaban:
Pembaruan terkait Manajer Paket Swift: Jika Anda membangun proyek sebagai paket Swift - Anda harus mengabaikan file ini karena dapat dibuat menggunakan sistem file sebagai sumber kebenaran. Anda dapat melakukannya dengan menggunakan perintah berikut:
Untuk jawaban non-SwiftPM - lihat di bawah.
File ini menyimpan daftar semua file dalam proyek, setelan target, dan file mana yang termasuk dalam target mana. Ini mungkin file paling kecil dalam bundel proyek. Anda tidak boleh mengabaikan file ini. Ada beberapa poin untuk ini:
sumber
Itu adalah satu-satunya file yang Anda inginkan di repo Anda dari bundel xcodeproj. File itu menyimpan semua info untuk file target dan pengaturan build.
sumber
Sayangnya, jika Pengaturan Build Anda menyertakan penandatanganan kode, Anda harus memasukkan kembali entitas penandatanganan kode Anda setelah setiap "git pull" jika anggota tim lain telah mengubahnya. Menurut saya info ini harus ada di pengaturan pengguna, bukan file pbxproj global.
sumber
Jika Anda mengecualikan project.pbxproj, build Jenkins akan gagal. Jadi ini penting jika Anda menggunakan Jenkins.
sumber
Saya menemukan bahwa saya juga perlu mempertahankan file xcworkspace. Jika tidak, proyek dengan subproyek rusak.
sumber
Anda dapat menggunakan Xcodegen untuk menghasilkan pbxproj dari file spesifikasi proyek YAML, lalu Anda dapat mengabaikan pbxproj di git dan membuatnya setiap kali Anda butuhkan.
Saya telah menggunakan Xcodegen pada proyek kedua yang memiliki arsitektur modular (banyak pbxprojs) dan lebih dari 8 pengembang sedang mengerjakannya.
https://github.com/yonaskolb/XcodeGen
Semoga membantu.
sumber
Ini adalah jenderal
.gitignore
saya untuk Proyek Xcode saya.sumber