2012-05-31 16 views
5

Çalışan iOS 5.1.1 ile iPhone 4S'de bir jailbroken var. Xcode 4.3.2'ye sahibim ve uygulamalarımı iPhone'uma aktarabilirim, ancak garip bir şekilde. Xcode'daki hata ayıklama düğmesine tıklarsam, jailbroken iPhone'umda uygulamayı açmaya çalışır, ancak hızlı bir şekilde açılıp kapatıldığı için başarısız olur. Bu olsa bile, uygulamayı manuel olarak açarsam, ana ekrana tıklarsanız, iyi çalışır. Bu oldukça sinir bozucu. En can sıkıcı olan şey, Xcode'un çalışmakta olduğunu görmediğinden, hata ayıklamaya artık izin vermemesidir.Jailbroken ile Geliştirme iPhone (Xcode)

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 

elbette her zaman değişen işlem kimliği ile:

Bu

ürettiği çıkıştır. Herhangi bir yardım için http://iphonedevwiki.net/index.php/Xcode#Developing_without_Provisioning_Profile

Teşekkür:

Bu benim jailbreak iDevice geliştirmek için kullanılan öğretici olduğunu.

+0

Gerçek geliştirici profili edinin, sadece 100 $/yıl. Eğer ciddi bir gelişme yapıyorsanız, o zaman sadece yatırım yapmalısınız. Şimdi çok geç daha iyi! –

+2

Yürütücünün "get-task-allow" yetkisi ile düzgün şekilde imzalanıp imzalanmadığını kontrol edin. ldid -e haklarını listeleyebilir – YllierDev

cevap

8

Kurulum sırasında doğru bir şekilde çalıştığınızdan emin olmak için bu eğiticiye yeniden adım atmayı denerdim. Sorunları olmadan uygulamaları yükleyebileceğiniz gibi görünüyor, ancak hata ayıklayıcı yüklemeden sonra uygulamaya eklenemiyor. Hata ayıklayıcısına gerçekten ihtiyacınız varsa, uygulamayı yüklemeden sonra cihazınızda açmayı deneyebilir ve sonra da (ve cihazınız Mac'inizin Xcode'u çalıştıran birime takılı) çalışırken, Xcode'u açın ve Product -> Attach to Process'a gidin ve uygulamanızı seçin. listeden (eğer yoksa, bu başka bir sorun).

Ayrıca, YllierDev'in uygulamanızın Yetkilendirme dosyasında get-task-allow etkinleştirme önerisini deneyin (eğer yoksa, Xcode'ta projenizin Bilgi sayfasından kolayca bir tane oluşturabilirsiniz). Eğiticiyi doğru bir şekilde incelediğinizi varsayarsak, bu yardımcı olacaktır.

-

etkinleştirmek için 'get-görev-izin' do, Xcode 4.3 dosyasını uygulamanızın Görevlendirmeler aşağıdaki:

  1. proje gezgin altında projenizi tıklatın ve seçin Projenizin 'Hedefler' sütununun adı.
  2. Ardından, özet sekmesine gidin ve 'Yetkiler' altında 'Yetkileri Etkinleştir'i işaretleyin.
  3. Sonraki, sağ tıklama/komut proje naviagtor altındaki 'YOURAPP.entitlements' dosyasını tıklayın ve 'Finder in Shower' seçeneğini seçin.
  4. TextEdit in açın ve ekleyin:

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

    sağ </dict> önce.

  5. Şimdi hata ayıklayıp düzgün çalışmalı!
+0

Neden bu sürecin ayrıntılarını öğretici hiçbiri bu bahsetmiyoruz! –

+0

Tüm bu jailbreak-dev ipuçları almak ve tek bir cevapta onları sağlamalıdır! – duci9y

+0

harika teşekkürler! – Edoz

0

iPhone ve Mac'i yeniden başlatmayı deneyin. Belki bir süreç arka planda ve hala çalışıyor. yardımcı değilse

ardından

iPhone'dan bir uygulamayı kaldırma ve yeniden Tam Temiz ( how do a Full delete) bir proje temizleyin ve yapılacak. Uygulamanız kendi kitaplıklarını kullanıyorsa, onu da yeniden oluşturun.

+0

Zaten denedi, değişiklik yok. :( – hetelek

+0

text güncellendi – CReaTuS

1

Basit bir yanıt var. IPhoneDevWiki'deki talimatlar neredeyse doğru. Geçici dosyaya write()'dan sonra, temizlemeniz gerekir, aksi halde temp dosyası boştur. Sizin ldid3.py bu gibi görünmelidir:

#!/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]) 

Ben ayıklama Xcode 4.3.3 ve iOS 5.1.1 ile bu çalışmaya başladıktan. Bu, sizin tasarladığınız şekilde çalışır ve yeni projeler için haklarınızla uğraşmak zorunda kalmazsınız.

+0

Bu yöntem hala iOS 7 ile çalışır ve Xcode 5. Teşekkürler! – 0xcaff