Git xcodeproject / project.pbxproj dosyasını yoksaymalı mıyım?


101

Bir XCode projesinde, xcodeproject / project.pbxproj dosyasını değiştirdim, ancak benim için işe yaramaz bilgi, derlemek için.

Git bu dosyayı ve xcodeproject / projectxworkspace / username.xcuserdata / UserInterfaceState.xcuserstate dosyasını görmezden gelmeli miyim?


.xcuserstate dosyaları yok sayılabilir, sadece pbxproj dosyası değil.
Kendall Helmstetter Gelner

Hayır, cevabınız burada: stackoverflow.com/questions/49478/…
jeswang

Yanıtlar:


128

Swift Paket Yöneticisi ışığında güncelleme: Swift paketi olarak bir proje oluşturuyorsanız - gerçeğin kaynağı olarak dosya sistemi kullanılarak oluşturulabileceği için bu dosyayı kesinlikle göz ardı etmelisiniz. Bunu aşağıdaki komutu kullanarak yapabilirsiniz:

$ cd ~/Projects/MyProjectFolder/
$ swift package generate-xcodeproj

SwiftPM olmayan yanıt için - aşağıya bakın.

Bu dosya, projedeki tüm dosyaların listesini, hedeflerin ayarlarını ve hangi dosyaların hangi hedeflere ait olduğunu içerir. Muhtemelen proje paketindeki en etli dosya. Sen olmamalıdır bu dosyayı görmezden. Bunun için birkaç nokta var:

  1. Bu proje üzerinde tek başınıza çalışmak istemeyebilirsiniz veya;
  2. Farklı makinelerden proje üzerinde çalışmayı planlıyorsunuz;
  3. Kod tabanınızı başkalarıyla paylaşmak isteyeceksiniz;

6

Bu, xcodeproj paketinden depolarınızda olmasını istediğiniz tek dosyadır. Bu dosya, hedef dosyalar ve derleme ayarları için tüm bilgileri içerir.


1
Bu cevap bir zamanlar doğru olabilir, ancak şu anda yanlış. Ne "tüm bilgileri" tuttuğu doğru değildir (örneğin, özel çalıştırılabilir dosyalar farklı bir dosyada saklanır, örneğin çalışma alanları farklı bir dosyada saklanır, vb.), Ne de "tek dosya" olduğu doğru değildir. saklamak istiyorum. .gitignore'a nelerin dahil edileceğiyle ilgili soru - stackoverflow.com/questions/49478/…
Adam

1
iyi düşünülmüş görünüyor ... bunu gelecekte takip edin.
Grady Oyuncu

4

Maalesef, Yapı Ayarlarınız kod imzalama içeriyorsa, başka bir ekip üyesi değiştirdiyse, her "git çekmeden" sonra kod imzalama varlığınızı yeniden girmeniz gerekir. Bana öyle geliyor ki bu bilgi global pbxproj dosyasında değil, kullanıcı ayarlarında olmalı.


2
Kod imzalamayı, projedeki her birinizin projedeki aynı (paylaşılan) ayarla eşleşen farklı bir kod imzalama profiline sahip olması için, örneğin bir joker karakter adı kullanarak ve ardından her birinizin ayrı ayrı eşleştirerek ya da örneğin hepsi aynı iTunes ekibinde olmak ve paylaşım profilleri.
Adam


0

Xcworkspace dosyalarını da korumam gerektiğini buldum. Olmazsa, bir alt projeli proje bozuldu.


0

Bir YAML proje belirtim dosyasından bir pbxproj oluşturmak için Xcodegen'i kullanabilirsiniz, sonra git'te pbxproj'u yok sayabilir ve ihtiyacınız olan her zaman üretebilirsiniz.

Xcodegen'i modüler bir mimariye (birçok pbxproj) sahip ikinci bir projede kullandım ve 8'den fazla geliştirici üzerinde çalışıyor.

https://github.com/yonaskolb/XcodeGen

Umarım yardımcı olur.


0

project.pbxproj, Xcode yapılandırma paketindeki önemli bir dosyadır. Tüm bağlantılı dosyalara ve gruplarına, bağlantılı çerçevelere ve en önemlisi projenin derleme ayarlarına referansları sürdürmekten sorumludur. Bu nedenle, project.pbxproj dosyasını sürüm kontrolünün dışında bırakamayız.

İşte .gitignoreXcode Projem için generalim .

# OS X Finder
.DS_Store

# Xcode per-user config
*.mode1
*.mode1v3
*.mode2v3
*.perspective
*.perspectivev3
*.pbxuser
*.xcworkspace
xcuserdata

# Build products
build/
*.o
*.LinkFileList
*.hmap

# Automatic backup files
*~.nib/
*.swp
*~
*.dat
*.dep
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.