क्या मुझे xcodeproject / project.pbxproj फ़ाइल को अनदेखा करना चाहिए?


101

एक XCode प्रोजेक्ट में, मुझे xcodeproject / project.pbxproj फ़ाइल बदलनी पड़ी, लेकिन मेरे लिए बेकार जानकारी, संकलन के लिए।

क्या मुझे इस फ़ाइल और xcodeproject / projectxworkspace / username.xcuserdata / UserInterfaceState.xcuserstate फ़ाइल को अनदेखा करना चाहिए?


.xcuserstate फ़ाइलों को अनदेखा किया जा सकता है, बस pbxproj फ़ाइल को नहीं।
केंडल हेल्मसटेटर गेलनर

नहीं, यहां आपका जवाब है: stackoverflow.com/questions/49478/…
jeswang

जवाबों:


128

स्विफ्ट पैकेज मैनेजर के प्रकाश में अपडेट करें: यदि आप स्विफ्ट पैकेज के रूप में किसी प्रोजेक्ट का निर्माण कर रहे हैं - तो आपको निश्चित रूप से इस फाइल को नजरअंदाज करना चाहिए क्योंकि यह फाइल सिस्टम को सच्चाई के स्रोत के रूप में उपयोग करके उत्पन्न किया जा सकता है। आप निम्न आदेश का उपयोग करके ऐसा कर सकते हैं:

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

गैर-स्विफ्टपीएम उत्तर के लिए - नीचे देखें।

यह फाइल प्रोजेक्ट की सभी फाइलों की सूची, लक्ष्यों की सेटिंग्स और कौन सी फाइलें किस लक्ष्य से संबंधित है, की सूची रखती है। यह शायद प्रोजेक्ट बंडल में सबसे मधुर फ़ाइल है। आपको इस फ़ाइल को अनदेखा नहीं करना चाहिए । इसके लिए कुछ बिंदु हैं:

  1. आप इस परियोजना पर अकेले काम करना नहीं चाहेंगे या;
  2. आप विभिन्न मशीनों से परियोजना पर काम करने की योजना बना रहे हैं;
  3. आप अपना कोड आधार दूसरों के साथ साझा करना चाहते हैं;

6

यह एकमात्र फाइल है जिसे आप अपने रिपॉजिट में xcodeproj बंडल से चाहते हैं। वह फ़ाइल लक्ष्य फ़ाइलों के लिए सभी जानकारी रखती है और सेटिंग्स का निर्माण करती है।


1
यह उत्तर एक बार सत्य हो सकता है, लेकिन वर्तमान में गलत है। यह न तो सही है कि यह "सभी जानकारी" रखता है (कई चीजें जैसे कस्टम निष्पादन योग्य एक अलग फ़ाइल में संग्रहीत की जाती हैं, उदाहरण के लिए कार्यस्थान एक अलग फ़ाइल में संग्रहीत हैं, आदि), और न ही यह सच है कि यह "केवल फ़ाइल" है कि आप स्टोर करना चाहते हैं। प्रश्न में क्या शामिल करने के बारे में cf .ignignore - stackoverflow.com/questions/49478/…
एडम

1
यह अच्छी तरह से सोचा लगता है ... भविष्य में इसका पालन करें।
ग्रैडी प्लेयर

4

दुर्भाग्य से, यदि आपकी बिल्ड सेटिंग्स में कोड साइनिंग शामिल है, तो आपको प्रत्येक "गिट पुल" के बाद अपनी कोड-साइनिंग इकाई को फिर से दर्ज करना होगा यदि टीम के किसी अन्य सदस्य ने इसे बदल दिया है। ऐसा लगता है कि यह जानकारी उपयोगकर्ता सेटिंग्स में होनी चाहिए, न कि वैश्विक pbxproj फ़ाइल।


2
आप कोड-साइनिंग को सेटअप कर सकते हैं ताकि प्रोजेक्ट पर आप में से प्रत्येक का एक अलग कोड-साइनिंग प्रोफ़ाइल हो जो प्रोजेक्ट में समान (साझा) सेटिंग से मेल खाता हो, जैसे वाइल्डकार्ड नाम का उपयोग करके और फिर आप में से प्रत्येक इसे अलग-अलग, या करके उदाहरण के लिए सभी एक ही आईट्यून्स टीम और प्रोफाइल साझा करने पर।
एडम


0

मैंने पाया कि मुझे xcworkspace फ़ाइल (रों) को संरक्षित करने की भी आवश्यकता है। यदि नहीं, तो एक उप-परियोजना के साथ परियोजना टूट गई।


0

आप एक YAML प्रोजेक्ट विनिर्देश फ़ाइल से एक pbxproj उत्पन्न करने के लिए Xcodegen का उपयोग कर सकते हैं फिर आप gb में pbxproj को अनदेखा कर सकते हैं और उन्हें हर बार आपकी ज़रूरत के अनुसार उत्पन्न कर सकते हैं।

मैंने पहले ही एक दूसरी परियोजना पर Xcodegen का उपयोग किया है जिसमें एक मॉड्यूलर वास्तुकला (कई pbxprojs) है और अधिक से अधिक 8 डेवलपर्स इस पर काम कर रहे हैं।

https://github.com/yonaskolb/XcodeGen

आशा करता हूँ की ये काम करेगा।


0

Project.pbxproj Xcode कॉन्फ़िगरेशन बंडल में एक महत्वपूर्ण फ़ाइल है। यह लिंक की गई सभी फ़ाइलों और उनके समूहों, लिंक किए गए चौखटे, और सबसे महत्वपूर्ण बात, परियोजना की निर्माण सेटिंग्स के संदर्भों को बनाए रखने के लिए जिम्मेदार है। इस वजह से, हम project.pbxproj को संस्करण नियंत्रण से बाहर नहीं कर सकते।

यहाँ .gitignoreमेरे Xcode प्रोजेक्ट के लिए मेरा जनरल है ।

# 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.