2009-04-08 8 views
9

आईकोड एप्लिकेशन के लिए प्रतीकों को पट्टी करने के लिए एक्सकोड में सेटिंग्स क्या हैं?आईफोन एप्लिकेशन के लिए स्ट्रिप प्रतीकों

मैं इन सेटिंग्स का उपयोग एक्सकोड में करता हूं लेकिन फिर भी में क्लासनाम और उनके तरीकों को एक बाइनरी फ़ाइल संपादक का उपयोग करके निष्पादन योग्य दिखाई देता है।

परिनियोजन:

1) तैनाती पोस्ट प्रोसेसिंग (जाँच)

2) पट्टी डीबग कॉपी के दौरान चिह्न (जाँच)

3) पट्टी लिंक्ड उत्पाद (जाँच)

4) अलग स्ट्रिप का उपयोग करें (चेक)

लिंकिंग:

5) मृत कोड स्ट्रिपिंग (चयनित)

जीसीसी 4.0 - कोड जनरेशन

6) डीबग चिह्न (नहीं की जाँच)

उत्तर

6

ऑब्जेक्टिव-सी वर्ग और विधि की जानकारी छीन नहीं किया जा सकता उत्पन्न - यह है निष्पादन के लिए आवश्यक है। यदि आप चाहें तो सबसे अच्छा आप कुछ प्रकार के obfuscation के साथ आ सकते हैं।

3

मैंने ऐसा किया।

मैंने केवल निम्नलिखित तीन सेटिंग्स की जांच की, अन्य सेटिंग अप्रासंगिक है।

1) तैनाती पोस्टप्रोसेसिंग (जाँच)

3) पट्टी लिंक्ड उत्पाद (जाँच)

4) का प्रयोग अलग पट्टी (चेक)

enter image description here

बेशक

, आपको चाहिए की जरूरत है स्कीमा संपादक में "वितरण" संस्करण की जांच करें। enter image description here

फिर साफ करें !!! और निर्माण।

I'v भी पुष्टि की कि "पट्टी" कमांड Xcode द्वारा कहा जाता है:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip /Users/xxx/Library/Developer/Xcode/DerivedData/aaaaa-dytaamkvztdwfreoqteyeijwqdcu/Build/Products/Distribution-iphoneos/aaaaa.app/aaaaa 

enter image description here

: लॉग दिखाएं नाविक, चयन बिल्ड .... रिहाई, तल पर, मैं प्रगति विवरण पाया

अंत में, I'v अंतिम उत्पाद फाइल करने के लिए द्वारा "एनएम" कमांड परिणाम की जाँच की,

nm -a /Users/xxx/Library/Developer/Xcode/DerivedData/aaaaa-dytaamkvztdwfreoqteyeijwqdcu/Build/Products/Distribution-iphoneos/aaaaa.app/aaaaa

वर्तमान ऐप का सभी फ़ंक्शन नाम वास्तव में छीन लिया गया है।

000b0a00 टी _pj_ioqueue_create

00092ae4 टी ___destroy_helper_block_200

00092af8 टी ___ 68- [MyClass MyMethod: param2] _block_invoke_21782

नोट इस तरह के निम्नलिखित समारोह नाम के रूप में : उद्देश्य-सी विधि और संपत्ति नाम स्ट्रिंग ar ई अभी भी ऐप फ़ाइल में उत्पादित है, लेकिन यह ओएस लोडर के लिए प्रतीक नाम नहीं है, वे केवल उद्देश्य-सी वर्ग के मेटा डेटा हैं।

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