2012-05-31 14 views
5

के साथ विकास करना मेरे पास आईओएस 5.1.1 चलने वाला आईफोन 4 एस है। मेरे पास एक्सकोड 4.3.2 है, और मैं अपने ऐप को अपने आईफोन पर चलाने में सक्षम हूं, लेकिन एक अजीब तरीके से। यदि मैं एक्सकोड पर डीबग बटन पर क्लिक करता हूं, तो यह ऐप को मेरे जेलब्रोकन आईफोन पर खोलने का प्रयास करता है, लेकिन विफल रहता है क्योंकि यह जल्दी से खुलता है और फिर बंद हो जाता है। हालांकि ऐसा होता है, अगर मैं मैन्युअल रूप से ऐप खोलता हूं, तो होमस्क्रीन पर क्लिक करके, यह ठीक चलता है। यह बहुत परेशान है। सबसे कष्टप्रद बात यह है कि इससे अब डिबगिंग की अनुमति नहीं मिलती है, क्योंकि एक्सकोड यह नहीं देखता कि यह चल रहा है।जेलब्रोकन आईफोन (एक्सकोड)

error: failed to launch '/Users/hetelek/Library/Developer/Xcode/DerivedData/spyapp-flynnmpiqhjoilezvqsbaqdnkesn/Build/Products/Debug-iphoneos/spyapp.app/spyapp' -- failed to get the task for process 3741 

प्रक्रिया आईडी निश्चित रूप से हर बार बदल रहा है:

यह आउटपुट है कि यह उत्पादन होता है। http://iphonedevwiki.net/index.php/Xcode#Developing_without_Provisioning_Profile

किसी भी मदद के लिए धन्यवाद:

इस ट्यूटोरियल मैं अपने जेलब्रेक iDevice पर विकसित करने के लिए इस्तेमाल किया है।

+0

एक वास्तविक डेवलपर प्रोफ़ाइल प्राप्त करें, यह केवल $ 100/वर्ष है। यदि आप कोई गंभीर विकास कर रहे हैं, तो आपको सिर्फ निवेश करना चाहिए। बहुत देर से बेहतर अब! –

+2

जांचें कि निष्पादन योग्य "get-task-allow" एंटाइटेलमेंट के साथ सही तरीके से हस्ताक्षरित किया गया है या नहीं। ldid -e एंटाइटेलमेंट्स – YllierDev

उत्तर

8

मैं यह सुनिश्चित करने के लिए कि आप सही ढंग से सेटअप के माध्यम से भाग गए हैं, मैं फिर से उस ट्यूटोरियल के माध्यम से कदम उठाने का प्रयास करूंगा। ऐसा लगता है कि आप बिना किसी समस्या के ऐप्स इंस्टॉल कर सकते हैं, लेकिन डीबगर बस इंस्टॉलेशन के बाद ऐप से अटैच नहीं कर सकता है। यदि आपको वास्तव में डीबगर की आवश्यकता है, तो आप इंस्टॉलेशन के बाद अपने डिवाइस पर ऐप खोलने की कोशिश कर सकते हैं, और उसके बाद यह चल रहा है (और आपका डिवाइस आपके मैक को एक्सकोड में प्लग कर रहा है), एक्सकोड खोलें और Product -> Attach to Process पर जाएं, और अपना ऐप चुनें सूची से (यदि यह नहीं है, तो यह एक अन्य मुद्दा है)।

इसके अलावा, अपने ऐप की एंटाइटेलमेंट फ़ाइल में get-task-allow सक्षम करने के YllierDev के सुझाव को आजमाएं (यदि इसमें कोई नहीं है, तो आप आसानी से एक्सकोड में अपने प्रोजेक्ट के जानकारी पृष्ठ से एक बना सकते हैं)। मान लें कि आप ट्यूटोरियल के माध्यम से सही तरीके से गए हैं, जो मदद करनी चाहिए।

-

सक्षम करने के लिए 'मिल-काम-अनुमति देते हैं' Xcode 4.3 के साथ फाइल को अपने ऐप्लिकेशन के पात्रता में, निम्न करें:

  1. परियोजना नाविक के तहत अपनी परियोजना पर क्लिक करें और 'लक्ष्य' कॉलम के तहत अपनी परियोजना का नाम।
  2. अगला, सारांश टैब पर जाएं, और 'एंटाइटेलमेंट्स' के अंतर्गत, 'एंटाइटेलमेंट सक्षम करें' की जांच करें।
  3. अगला, राइट क्लिक/कमांड प्रोजेक्ट नेविगेटर के तहत 'YOURAPP.entitlements' फ़ाइल पर क्लिक करें, और 'फाइंडर में दिखाएं' चुनें।
  4. TextEdit में में खोलें, और जोड़ें:

    <key>get-task-allow</key> <true/>

    सही </dict> से पहले।

  5. अब इसे डीबग और ठीक चलाना चाहिए!
+0

मुझे आश्चर्य है कि प्रक्रिया का विवरण देने वाले किसी भी ट्यूटोरियल का उल्लेख क्यों नहीं है! –

+0

हमें इन सभी जेलब्रेक-देव युक्तियों को लेना चाहिए और उन्हें एक जवाब में समेकित करना चाहिए! – duci9y

+0

कमाल धन्यवाद! – Edoz

0

आईफोन और मैक रीबूट करने का प्रयास करें। शायद कुछ प्रक्रिया पृष्ठभूमि में है और अभी भी चल रही है।

में मदद करता है नहीं है, तो एक परियोजना को साफ करते हैं और एक पूर्ण स्वच्छ (how do a Full delete)

iPhone से एक एप्लिकेशन को निकालना और पुनर्निर्माण।

यदि आपका ऐप स्वयं पुस्तकालयों का उपयोग करता है, तो उसे भी पुनर्निर्माण करें।

+0

सूचीबद्ध कर सकते हैं पहले से ही कोशिश की, कोई बदलाव नहीं। :( – hetelek

+0

टेक्स्ट अपडेट किया गया है – CReaTuS

1

एक साधारण उत्तर है। IPhoneDevWiki पर निर्देश लगभग सही हैं। Temp फ़ाइल में write() के बाद, आपको फ्लश करने की आवश्यकता है, अन्यथा tempfile खाली है। आपका ldid3.py इस तरह दिखना चाहिए:

#!/usr/bin/python 
from sys import argv 
from subprocess import call, check_call 
from os.path import basename, splitext, join 
from tempfile import NamedTemporaryFile 

app = argv[-1] 
obj_path = join(app, splitext(basename(app))[0]) 
if '-gta' not in argv: 
    check_call(['/usr/local/bin/ldid', '-S', obj_path]) 
else: 
    with NamedTemporaryFile() 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>\n""") 
     f.flush() 
     check_call(['/usr/local/bin/ldid', '-S' + f.name, obj_path]) 

मैं डिबगिंग Xcode 4.3.3 और iOS 5.1.1 के साथ इस तरह से काम कर रहा है। यह आपके इच्छित तरीके से काम करता है और आपको नई परियोजनाओं के लिए एंटाइटेलमेंट के साथ कभी गड़बड़ नहीं करना पड़ेगा।

+0

यह विधि अभी भी आईओएस 7 के साथ काम करती है और एक्सकोड 5. धन्यवाद! – 0xcaff

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