इसलिए मैंने एक ही सवाल किया है और पहले के पोस्ट से कुछ विचारों का उपयोग कर रहा हूं, जिनमें से कुछ एप्लिकेशन में GoogleServices-Info.plistसभी वातावरणों के लिए एप्लिकेशन प्रकाशित करते हैं और यह थोड़ा चिंता का विषय है।
मैं एक एक्स्टेंसिबल समाधान के साथ आया हूं जो GoogleSerives-Info.plistबिल्ड समय पर फ़ाइल की प्रतिलिपि बनाता है । आगे यह दृष्टिकोण कई वातावरणों का समर्थन कर सकता है जैसा कि आप अनुकूलित करने की क्षमता के साथ पसंद करते हैं और एक साधारण सम्मेलन का अनुसरण करते हैं, जिससे इसे प्रबंधित करना आसान हो जाता है।
सबसे पहले और सबसे पहले मेरे पास तीन वातावरण हैं, debug(सिम्युलेटर और डिवाइस व्हिस्ट डिबगिंग में सक्रिय रूप से और कोड काटने के लिए), staging(परीक्षण उड़ान के लिए तैनाती के लिए) और releaseउत्पादन के लिए।
अपना कॉन्फ़िगरेशन बनाने के लिए चरण एक है:

"उत्पाद" -> "योजना" -> "योजना संपादित करें" का चयन करें और आवश्यकतानुसार नया / डुप्लिकेट बनाएं। प्रत्येक योजना के माध्यम से जाओ और "संबंधित कॉन्फ़िगरेशन बनाएँ" से संबंधित कॉन्फ़िगरेशन को प्रत्येक श्रेणी में छोड़ दें:

मैं उन योजनाओं के लिए एक कदम आगे और अनचेक करता हूं, जिन्हें स्कीम के लिए "रन" वितरित करना पड़ता है, अर्थात डिबग के लिए रिलीज और स्टैजिंग और "संग्रह" को अनचेक करना। आपको वही करना चाहिए जो आपके लिए मायने रखता है।

बिल्ड चरणों के तहत निम्नलिखित रन लाभांश जोड़ें ( CONFIGURATIONS_FOLDERचर को वांछित के रूप में अनुकूलित किया जा सकता है - बस अगले चरण में समान फ़ोल्डर नाम का उपयोग करना सुनिश्चित करें):
# Get a reference to the folder which contains the configuration subfolders.
CONFIGURATIONS_FOLDER=Firebase
# Get a refernce to the filename of a 'GoogleService-Info.plist' file.
GOOGLESERVICE_INFO_PLIST=GoogleService-Info.plist
# Get a reference to the 'GoogleService-Info.plist' for the current configuration.
GOOGLESERVICE_INFO_PLIST_LOCATION=${PROJECT_DIR}/${TARGET_NAME}/${CONFIGURATIONS_FOLDER}/${CONFIGURATION}/${GOOGLESERVICE_INFO_PLIST}
# Check if 'GoogleService-Info.plist' file for current configuration exist.
if [ ! -f $GOOGLESERVICE_INFO_PLIST_LOCATION ]
then
echo "No '${GOOGLESERVICE_INFO_PLIST}' file found for the configuration '${CONFIGURATION}' in the configuration directory '${PROJECT_DIR}/${TARGET_NAME}/${CONFIGURATIONS_FOLDER}/${CONFIGURATION}'."
exit 1
fi
# Get a reference to the destination location for the GoogleService-Info.plist.
GOOGLESERVICE_INFO_PLIST_DESTINATION=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app
# Copy 'GoogleService-Info.plist' for current configution to destination.
cp "${GOOGLESERVICE_INFO_PLIST_LOCATION}" "${GOOGLESERVICE_INFO_PLIST_DESTINATION}"
echo "Successfully coppied the '${GOOGLESERVICE_INFO_PLIST}' file for the '${CONFIGURATION}' configuration from '${GOOGLESERVICE_INFO_PLIST_LOCATION}' to '${GOOGLESERVICE_INFO_PLIST_DESTINATION}'."

आपके चुने हुए कॉन्फ़िगरेशन फ़ोल्डर (उपरोक्त उदाहरण में "फायरबेस") में प्रत्येक कॉन्फ़िगरेशन के लिए नेस्ट फ़ोल्डर हैं, जिसका नाम इसके संबंधित कॉन्फ़िगरेशन (केस संवेदी) के समान है, जिसके अंदर संबंधित GoogleServices-Info.plistफाइल जैसे हैं:

अंतिम लेकिन कम से कम, मैं यह भी सुनिश्चित करना पसंद करता हूं कि GoogleServices-Info.plistपरियोजना में एक जड़ स्तर को दुर्घटना से नहीं जोड़ा जाए इसलिए मैं निम्नलिखित को अपने .Itoreore में जोड़ता हूं।
# Ignore project level GoogleService-Info.plist
/[Project Name]/GoogleService-Info.plist