2015-06-12 5 views
17

हैलो मैं गिटहब में एक आईओएस (स्विफ्ट) व्यक्तिगत परियोजना प्रकाशित करने की कोशिश कर रहा हूं लेकिन मुझे अपनी निजी एपीआई कुंजी और रहस्यों को सभी के साथ साझा करने से डर है।आईओएस (स्विफ्ट) परियोजनाओं के लिए गिटहब में एपीआई कुंजी कैसे छिपाना है?

मैं पार्स उपयोग कर रहा हूँ तो मैं इस तरह मेरे AppDelegate कुछ में है:

let applicationId = "mySecretApplicationId" 
let clientKey = "mySecretClientKey" 
Parse.setApplicationId(applicationId!, clientKey: clientKey!) 

मैं "mySecretApplicationId" और "mySecretClientKey" को छिपाने के लिए चाहते हैं, वहाँ निजी जगह या अपने प्रोजेक्ट में निर्देशिका है जहाँ मैं इस चर डाल सकते हैं?

धन्यवाद!

उत्तर

23

आप .plist फ़ाइल का उपयोग कर सकते हैं जहां आप अपनी सभी महत्वपूर्ण कुंजी स्टोर करते हैं। इस फ़ाइल को अपनी .gitignore फ़ाइल में रखना बहुत महत्वपूर्ण है। इस प्रकार enter image description here

और अपने AppDelegate अंदर इसका इस्तेमाल:

var keys: NSDictionary? 

    if let path = NSBundle.mainBundle().pathForResource("Keys", ofType: "plist") { 
     keys = NSDictionary(contentsOfFile: path) 
    } 
    if let dict = keys { 
     let applicationId = dict["parseApplicationId"] as? String 
     let clientKey = dict["parseClientKey"] as? String 

     // Initialize Parse. 
     Parse.setApplicationId(applicationId!, clientKey: clientKey!) 
    } 

स्विफ्ट 3 अद्यतन:

if let path = Bundle.main.path(forResource: "Keys", ofType: "plist") { 
     keys = NSDictionary(contentsOfFile: path) 
    } 
+1

आपके मामले में, आप इस तरह अपने keys.plist फ़ाइल निर्धारित करने की आवश्यकता यह भी ध्यान दिया जाना चाहिए कि एक बार ऐसा करने के बाद भी, ये चाबियाँ अभी भी आपके गिट इतिहास में होंगी। इसके आस-पास पहुंचने के लिए, बस नई एपीआई कुंजी उत्पन्न करें जो पहले स्थान पर कभी भी भंडार में नहीं थीं। – rpowell

+1

आप उन्हें "बंडल संसाधनों की प्रतिलिपि बनाएँ" में शामिल होने से कैसे रोकते हैं? क्या अंतिम उपयोगकर्ता अभी भी पैकेज सामग्री दिखाने में सक्षम नहीं होगा और संसाधन फ़ोल्डर के अंदर key.plist फ़ाइल को देख पाएगा? –

1

उन्हें एक कॉन्फ़िगरेशन फ़ाइल में रखें जिसे आप .gitignore फ़ाइल में जोड़ते हैं। नमूना कॉन्फ़िगरेशन फ़ाइल में जांचें कि प्रत्येक डेवलपर अपनी स्वयं की कॉन्फ़िगरेशन बनाने के लिए उपयोग कर सकता है।

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