इस उद्देश्य को पूरा करने के लिए निम्नलिखित निर्देशात्मक कदम उठाए गए हैं:
http://iphonedevwiki.net/index.php/Xcode
मेरे निष्कर्ष और कार्य प्रत्येक चरण के तहत प्रदान किए जाते हैं।
1. कीचेन एक्सेस का उपयोग करके "लॉगिन" (डिफ़ॉल्ट) किचेन पर "iPhone डेवलपर" नाम के साथ एक स्व-हस्ताक्षरित कोड-हस्ताक्षर प्रमाण पत्र बनाएं।
- मैंने उपरोक्त निर्देश का पालन करते हुए स्क्रीनशॉट लिया।
- मैंने अधिकांश फ़ील्ड रिक्त या उनके डिफ़ॉल्ट मान पर छोड़ दिए।
2. ओपन /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist
(4.2 या नीचे:) /Developer/Platforms/iPhoneOS.platform/Info.plist
। आपको रूट अनुमति की आवश्यकता हो सकती है।
- मैं Xcode 4.6 का उपयोग कर रहा हूं, इसलिए मैंने पूर्व
.plist
फ़ाइल खोली ।
3. की सभी घटनाओं की जगह XCiPhoneOSCodeSignContext
से XCCodeSignContext
। उनमें से तीन हैं (XCode संस्करण 3.2.4+)।
- स्क्रीनशॉट के संकेत के रूप में मैंने तीन संशोधन किए।
4. फ़ाइल सहेजें और Xcode को पुनरारंभ करें।
5. सुनिश्चित करें कि आप अपने मैक पर ldid है। जैसे कहीं में एक प्रति रखें /usr/local/bin
।
6. ldid प्रोग्राम के ठीक बगल में Python script ldid3.py बनाएं। इसे अमल में लाएं। इसे भरें:
#!/usr/bin/env python
from sys import argv
from subprocess import check_call
from os.path import basename, dirname, splitext, join
from tempfile import NamedTemporaryFile
app = argv[-1]
ldid_path = join(dirname(__file__), 'ldid')
obj_path = join(app, splitext(basename(app))[0])
if '-gta' not in argv:
check_call([ldid_path, '-S', obj_path])
else:
with NamedTemporaryFile('w+b', 0) as f:
f.write("""
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>get-task-allow</key>
<true/>
</dict>
</plist>
""")
check_call([ldid_path, '-S' + f.name, obj_path])
- मैंने एक नया सादा पाठ फ़ाइल बनाया और उसमें उपरोक्त कोड को कॉपी-पेस्ट किया।
- मैंने इस फ़ाइल को सहेज लिया
ldid3.py
और इसे /usr/local/bin
निर्देशिका में संग्रहीत किया ।
- टर्मिनल में, भाग गया
chmod 777 /usr/local/bin/ldid3.py
।
7. खोलो iPhoneCodeSign.xcspec
। इस फ़ाइल को [Xcode 4.6 के लिए: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
] में पाया जा सकता है :
8. कॉल codesign
करने से फ़ाइल में प्रविष्टि बदलें ldid3.py
।
- निर्देश आधिकारिक निर्देश के अनुसार, सांकेतिक फाइल को कंसोल में टाइप करके सादे पाठ में परिवर्तित करें:
sudo plutil -convert xml1 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
- मैंने टेक्स्टएडिट के साथ फाइल को खोला।
- के
<key>CommandLine</key><string>/usr/bin/codesign</string>
साथ बदला गया <key>CommandLine</key><string>/usr/local/bin/ldid3.py</string>
।
9. फ़ाइल को सहेजें और Xcode को पुनरारंभ करें।
- मैंने फ़ाइल को सहेजा और TextEdit को छोड़ दिया।
10. /var/mobile/tdmtanf
इंस्टाल्ड में Apple के "TDMTANF बाईपास" को सक्षम करने के लिए डिवाइस पर एक फ़ाइल बनाएं (चेतावनी: ऐसा करने से आपको सैंडबॉक्स वाले गेमकेंटर में भी रखा जाएगा)।
- मैं विंडोज में एक खाली पाठ फ़ाइल
tdmtanf
बनाता हूं, इसे नाम दिया है , SSH'd in my iPod, इसे अपलोड किया /var/mobile/
और मेरे iPod को रिबूट किया।
अब यह सब खत्म हो चुका है ...
मैंने अपना मौजूदा Xcode प्रोजेक्ट खोला और Run को हिट किया। यह बिना किसी समस्या के iOS सिम्युलेटर में काम करता है।
मैं यह सुनिश्चित करता हूं कि चरण 1 में स्थापित प्रमाणपत्र का उपयोग करने के लिए कोड साइनिंग सेट है।
मैं एप्लिकेशन (प्रोजेक्ट> बिल्ड) का निर्माण करता हूं। एक सफलता संदेश इस प्रकार है।
मैं अपने ऐप फ़ोल्डर हड़पने TicTacToe.app
से /Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/
और मेरे आइपॉड पर स्थापित करने के लिए अपने Windows मशीन में स्थानांतरित।
ऐप को मेरे आईपॉड में इंस्टॉल करने के प्रयास में, मैं TicTacToe.app
iPhone कॉन्फ़िगरेशन सुविधा के एप्लिकेशन अनुभाग पर खींचता हूं , लेकिन मुझे यह त्रुटि संदेश मिला है कि मेरा ऐप "एक वैध मोबाइल एप्लिकेशन नहीं है।"
मैंने iFunbox और Cydia में पाए गए AppCake ऐप का उपयोग करके मैन्युअल रूप से ऐप इंस्टॉल करने की कोशिश की है । दोनों फेल हैं।
रुचि के बिंदु के रूप में, क्योंकि मैंने चारों ओर गुगेल किया है, मैंने देखा है कि बहुत से लोग इस के महत्व का उल्लेख करते हैं: मेरे पास AppSync स्थापित है। (विशाल स्क्रीनशॉट के लिए क्षमा करें। अगर मुझे इसे नीचे ले जाना चाहिए, तो कृपया मुझे बताएं!)
निष्कर्ष
इसलिए निर्देशों का बारीकी से पालन करने के बावजूद, कई बार, मेरे ऐप को मान्य एप्लिकेशन के रूप में iPhone कॉन्फ़िगरेशन उपयोगिता द्वारा मान्यता प्राप्त नहीं है। मैं iFunbox, या AppCake जैसे Cydia ऐप जैसे कार्यक्रमों का उपयोग करके मैन्युअल रूप से ऐप इंस्टॉल नहीं कर सकता।
मुझे संदेह है कि ऐप वास्तव में अमान्य है, लेकिन निर्देशों का सावधानीपूर्वक पालन करते हुए, मुझे यकीन नहीं है कि क्यों।
क्या कोई मुझे बता सकता है कि मेरा ऐप वैध क्यों नहीं है, और मैं इसे ठीक करने के लिए क्या कर सकता हूं, इसके अलावा पैसा भी खर्च करना है?