2009-04-27 12 views
15

मैं एक छोटे से उलझन में यह कैसे काम करता हूँ यह मेरी समझ है:आईफोन/एक्सकोड: विभिन्न परियोजना लक्ष्यों के अलग-अलग बंडल पहचानकर्ता हो सकते हैं? -

  • एक लक्ष्य के प्रावधान प्रोफ़ाइल किसी विशिष्ट एप्लिकेशन आईडी
  • लक्ष्य के लिए बंडल पहचानकर्ता लक्ष्य की जानकारी अंतर्गत पाया जाता है से जुड़ा हुआ है \ प्रस्ताव \ पहचानकर्ता

लेकिन ... बंडल आईडी Info.plist में भी स्थित है। ऐसा लगता है कि यदि आप में बंडल आईडी बदलते हैं Info.plist, एक्सकोड लक्ष्य जानकारी \ गुण \ पहचानकर्ता में इसके विपरीत स्वचालित रूप से बदलता है, और इसके विपरीत।

तो यह प्राथमिकता कौन सा है? लक्ष्य जानकारी \ गुण \ पहचानकर्ता बंडल आईडी या Info.plist बंडल आईडी?

कारण मैं पूछता हूं क्योंकि मैं अपने ऐप के लिए दो संस्करण रखना चाहता हूं - एक मुफ्त विज्ञापन समर्थित संस्करण और एक भुगतान संस्करण, और मैं इसे दो अलग-अलग लक्ष्यों के साथ पूरा करना चाहता हूं। चूंकि वे ऐप स्टोर में दो अलग-अलग ऐप्स होंगे, मेरी समझ है कि उन्हें दो अलग-अलग ऐप आईडी की आवश्यकता है (और मैं ऐप आईडी के साथ * रूट नहीं जाना चाहता हूं, यह बताता है कि ऐप स्टोर पर यह कैसे काम करता है मस्तिष्क चोट)।

यदि मैंने ऐसा किया है, तो क्या मुझे प्रत्येक लक्ष्य के लिए दो अलग-अलग Info.plists की आवश्यकता होगी, या क्या मैं एक ही Info.plist का उपयोग कर सकता हूं, और क्या अलग-अलग लक्ष्य एक अलग विकास/वितरण प्रावधान प्रोफ़ाइल का उपयोग करते हैं?

उत्तर

25

कोई प्राथमिकता नहीं है, गुण संवाद सिर्फ आपके Info.plist को देखने के लिए एक और तरीका है।

लक्ष्य के बीच प्लिस्ट साझा करने के लिए अलग-अलग पहचानकर्ता हैं, सुनिश्चित करें कि "Info.plist फ़ाइल में बिल्ड सेटिंग्स का विस्तार करें" विकल्प दोनों लक्ष्यों के लिए सक्षम है। फिर, प्रत्येक लक्ष्य के लिए, अपनी बंडल आईडी (उदा।, APPLICATION_BUNDLE_IDENTIFIER) के लिए लक्षित सेटिंग्स में एक नया उपयोगकर्ता द्वारा निर्मित चर बनाएं, यहां देखें: https://stackoverflow.com/a/18472235/308315) और इसे उस लक्ष्य के लिए सही मान पर सेट करें। अपने plist में, डाल बंडल आईडी के लिए निम्नलिखित:

<key>CFBundleIdentifier</key> 
<string>$(APPLICATION_BUNDLE_IDENTIFIER)</string> 

चर प्रत्येक लक्ष्य के लिए निर्माण समय में मूल्यांकन किया जाएगा, इसलिए प्रत्येक सही बंडल आईडी मिल जाएगा।

+0

शायद यह '$ (PRODUCT_BUNDLE_IDENTIFIER)' '' (APPLICATION_BUNDLE_IDENTIFIER) '' है। – Jano

संबंधित मुद्दे