मेरे एक्सकोड प्रोजेक्ट में, मेरे पास 4 अलग-अलग योजनाएं हैं (प्रोड, देव, स्टेजिंग, स्टेजिंग 2) जो फोन पर इंस्टॉल होने वाले ऐप के बंडल पहचानकर्ता को बदलती हैं। इस तरह से मैं सभी 4 संस्करणों को तरफ से स्थापित कर सकता हूं, this technique के समान।एक अलग लक्ष्य से बंडल आईडी प्राप्त करें
अब मैं आईओएस 8 के लिए आज का विस्तार कर रहा हूं। यह एक नया लक्ष्य है जो अपने स्वयं के बंडल पहचानकर्ता की आवश्यकता है।
एक्सटेंशन के बंडल पहचानकर्ता जनक एप्लिकेशन की बंडल पहचानकर्ता के साथ उपसर्ग होना चाहिए, या एक चेतावनी फेंक दिया जाता है:
error: Embedded binary's bundle identifier is not prefixed with the parent app's bundle identifier.
Embedded Binary Bundle Identifier: com.company.app.TodayExtension
Parent App Bundle Identifier: com.company.app.staging
इस मामले में, एंबेडेड बाइनरी बंडल पहचानकर्ता com.company.app.staging.TodayExtension
होना चाहिए।
क्या कोई तरीका है कि मैं अपने आज के विस्तार लक्ष्य को कॉन्फ़िगर कर सकता हूं ताकि पहले बंटल पहचानकर्ता को पैरेंट लक्ष्य के बंडल पहचानकर्ता को देख सकें? शायद एक कस्टम रन स्क्रिप्ट बिल्ड चरण के माध्यम से?
क्या आप इस समस्या को हल करने के बारे में अधिक विस्तार से समझा सकते हैं? नीचे जाफर के जवाब में, क्या आप किसी भी तरह से योजनाओं को स्विच करके PARENT_APP_BUNDLE_IDENTIFIER सेट करने में सक्षम थे, और यदि ऐसा है तो कैसे? या अन्यथा आपने प्रत्येक लक्ष्य (एक्सटेंशन लक्ष्य सहित) में बंडल आईडी और PARENT_APP_BUNDLE_IDENTIFIER के लिए क्या निर्दिष्ट किया था? धन्यवाद! परियोजना सेटिंग्स में – qix
| सेटिंग्स बनाएँ | उपयोगकर्ता परिभाषित, PARENT_APP_BUNDLE_ID नामक एक नई प्रविष्टि बनाएं। मेरे पास 4 कॉन्फ़िगरेशन हैं, मैं प्रत्येक के लिए एक मान जोड़ता हूं (com.company.app.staging, com.company.app.development, आदि)। आप में मुख्य ऐप लक्ष्य की Info.plist, $ (PARENT_APP_BUNDLE_ID) पर बंडल पहचानकर्ता सेट करें। अपने एक्सटेंशन लक्ष्य की Info.plist में, इसे बंडल आइडेंटिफ़ायर $ (PARENT_APP_BUNDLE_ID) पर सेट करें .ameOfYourExtension। – djibouti33
आह, इस तथ्य को पूरी तरह से याद किया कि आप इसे अतिरिक्त कस्टम बिल्ड कॉन्फ़िगरेशन (प्रोजेक्ट | इन्फो | कॉन्फ़िगरेशन) के माध्यम से कर रहे थे और परियोजना स्तर पर प्रत्येक कॉन्फ़िगरेशन के लिए PARENT_APP_BUNDLE_ID का एक अलग मान सेट कर रहे थे, इसके बजाय आपको व्यक्तिगत लक्ष्य सेटिंग्स को ओवरराइड करके किसी भी तरह से यह सोचने के बजाय । तो आप अभी भी डब्ल्यू/अलग बंडल आईडी बनाने के लिए योजनाएं स्विच करने में सक्षम हैं, क्योंकि प्रत्येक योजना बिल्ड कॉन्फ़िगरेशन के एक अलग सेट का उपयोग करती है। कूल, मेरे लिए काम करता है, और मुझे डुप्लिकेट लक्ष्य और प्लेस्ट फाइलों को साफ करने में मदद करता है! – qix