मैं अपने प्रोजेक्ट में निर्माण चरण के रूप में इस का उपयोग कर रहा:निर्माण पर डीएसवाईएम में CFBundleShortVersionString अद्यतन करें?
export PLISTBUDDY="/usr/libexec/PlistBuddy"
export INFO="${CODESIGNING_FOLDER_PATH}/Info.plist"
export RXREVISION=`git describe --tags | perl -pi -E "s/[^-]+\-([^-]+).*/\1/"`
export RXVERSION=`git describe --tags | perl -pi -E "s/([^-]+)\-[^-]+.*/\1/"`
$PLISTBUDDY $INFO -c "add CFBundleVersion string $RXREVISION"
$PLISTBUDDY $INFO -c "set :CFBundleVersion $RXREVISION"
$PLISTBUDDY $INFO -c "add CFBundleShortVersionString string $RXVERSION"
$PLISTBUDDY $INFO -c "set :CFBundleShortVersionString $RXVERSION"
यह बनाया आवेदन के Info.plist में निर्माण संशोधन अद्यतन करने के लिए पूरी तरह से काम करता है, और यह मेरी स्रोत पेड़ उत्परिवर्तित नहीं है।
मैंने अंत में और लिंक चरण से पहले भी अपनी अद्यतन संस्करण स्क्रिप्ट डालने का प्रयास किया है। किसी भी तरह से, यह निर्मित अनुप्रयोग में परिवर्तन को प्रभावित करने में सक्षम है, लेकिन डीएसवाईएम मूल स्रोत पेड़ से बनाया गया है।
बिल्ट ऐप और निर्मित डीएसवाईएम के बीच संस्करण संख्याओं का यह मिलान एक समस्या है। (हॉकी ऐप यहां एक त्रुटि फेंकता है।)
अगर मैं अपने स्रोत पेड़ में Info.plist को अपडेट करता हूं, तो मुझे इसे बदलने से निपटने की ज़रूरत है। जो मुझे दो विकल्प छोड़ देता है जो मैं देख सकता हूं:
- स्रोत नियंत्रण के तहत Info.plist रखें, और स्क्रिप्ट को इसे सीधे संपादित करें। लेकिन इसका मतलब है कि मुझे प्रत्येक निर्माण के बाद परिवर्तनों की जांच करनी होगी।
- Info.plist को अनदेखा करें, और स्क्रिप्ट को इसे सीधे संपादित करें। लेकिन Info.plist में कई अन्य चीजें हैं जो मैं स्रोत नियंत्रण के तहत चाहता हूं।
मैं अपने स्रोत पेड़ में Info.plist से निपटने के बिना स्वचालित रूप से अद्यतन करने के बिना डीएसवाईएम में संस्करण कैसे प्राप्त कर सकता हूं?
इसके अलावा, स्पर्शकीय रूप से: मैं डीएसवाईएम में संस्करण कैसे देखूं?
मैं शायद कुछ लेकिन तुच्छ समाधान के बारे में मैं dSYM निर्देशिका हटा रहा है वहाँ अगर कुछ इसके साथ गलत सोच रहा हूँ याद आ रही है। यदि आप डिबगिंग प्रतीकों के साथ निर्माण कर रहे हैं, तो इसे फिर भी बनाया जाएगा। –
जब तक मैं बिल्ड को स्रोत पेड़ को म्यूटेट नहीं करता, डीएसवाईएम को हटाने और पुनर्निर्माण करने के लिए केवल गलत सीएफबींडलशॉर्टवर्सनस्ट्रिंग के साथ डीएसवाईएम का पुनर्निर्माण किया जाएगा। मैं चाहता हूं कि निर्माण किसी भी स्रोत को गठबंधन न करें। (जाहिर है, मैं जो भी उत्परिवर्तन करता हूं * मुझे * यह करने की ज़रूरत है और यह काम करने के लिए इसे जांचें, सिर्फ प्रति निर्माण नहीं।) –
आपके निर्माण चरणों का निष्पादन आदेश क्या है? कस्टम चरण कब निष्पादित करता है? – Felix