2016-10-01 17 views
6

पर सबमिट करने से पहले स्विफ्ट कोड Obfuscating मुझे इस पर कोई जानकारी खोजने में मुश्किल हो रही है। एंड्रॉइड स्वयं अपने स्टोर में जमा करने से पहले कुछ करने के लिए कोड obfuscation का उल्लेख करते हैं। लेकिन मुझे ऐप्पल से या किसी भी "थर्ड पार्टी" से पहले जमा करने वाली चेकलिस्ट से कुछ भी नहीं दिखाई देता है। एकमात्र ऐसा प्रश्न जो मैं पा सकता हूं वह 5 साल पहले उद्देश्य-सी के बारे में था, और मुझे केवल आईओएस obfuscation के बारे में 1 github पुस्तकालय मिल सकता है। ऐप्पल ऐप स्टोर में सबमिट करते समय स्विफ्ट कोड को खराब करने के लिए यह एक आम प्रथा है? विशेष रूप से किसी भी निजी एपीआई यूआरएल या एपीआई कुंजी छिपाने के लिए? क्या ऐप्पल के लिए प्रो-गार्ड समतुल्य है?ऐप्पल ऐप स्टोर

+1

क्या परेशान करना है? आपका स्विफ्ट कोड बिल्ट ऐप में कहीं भी दिखाई नहीं दे रहा है। – matt

उत्तर

7

जावा बाइटकोड में परिवर्तित हो जाता है, जिसे डिकंपिल्ड किया जा सकता है।

स्विफ्ट एक संकलित भाषा है, और क्लैंग कंपाइलर अत्यधिक अनुकूलित है। रिहाई मोड में यह प्रतीकों को स्ट्रिप्स करता है और बहुत सारे अनुकूलन करता है जो स्वयं ही obfuscation का एक बड़ा सौदा करता है। संकलित भाषाओं के लिए decompilers हैं, लेकिन परिणाम वास्तव में भयानक और पढ़ने के लिए मुश्किल हैं।

+1

दरअसल, एक्सकोड स्विफ्ट कोड को एक प्रकार के इंटरमीडिएट प्रस्तुति बाइटकोड में परिवर्तित करता है, जिसे ऐप्पल द्वारा बिटकोड कहा जाता है। लेकिन, आईआईआरसी, ग्राहकों को ऐप भेजने से पहले ऐप्पल द्वारा बिटकोड को हटा दिया जाता है, और ऐप का संकलित कोड ऐप्पल द्वारा भी एन्क्रिप्ट किया जाता है। रिलीज बिल्ड (स्विफ्ट कंपाइलर सहित) पर स्विफ्ट कंपाइलर द्वारा निष्पादित अनुकूलन कुछ मात्रा में obfuscation प्रदर्शन करता है। – hotpaw2

+0

@ हॉटपा 2, मुझे नहीं लगता कि यह सच है कि ऐप का संकलित कोड एन्क्रिप्ट किया गया है। यह कोड-हस्ताक्षरित है, और लक्ष्य डिवाइस का ओएस ऐप लॉन्च करने से इंकार कर देता है जब तक कि हस्ताक्षर (जिसमें उपयोगकर्ता का ऐप्पल आईडी शामिल है) चेक आउट हो जाता है। –

+0

आईओएस ऐप स्टोर से ऐप डाउनलोड करें और देखें कि क्या आप ज़िप फ़ाइल में कोई भी एआरएम मशीन कोड देख सकते हैं। – hotpaw2

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