Ist es möglich, ein Xcode-Projekt auf einem Gerät mit Jailbreak ohne ein kostenpflichtiges Entwicklerzertifikat zu kompilieren und auszuführen?

9

Sowohl aus Kick- als auch aus Budgetgründen möchte ich ein Paket nehmen, für das normalerweise ein Entwicklerkonto erforderlich ist, und eine App erstellen, die auf einem iOS-Gerät mit Jailbreak ausgeführt werden kann.

Ich habe einen iPod Touch der 5. Generation, der mit evasi0n einen Jailbreak aufweist und iOS 6.1 ausführt.

Ich verwende Xcode 4.6 mit OS X (10.8.2) Lion.

Joncom
quelle

Antworten:

6

Die folgenden Schritte zur Erreichung dieses Zwecks stammen von: http://iphonedevwiki.net/index.php/Xcode

Meine Ergebnisse und Maßnahmen werden in jedem Schritt bereitgestellt.

1. Erstellen Sie mit dem Schlüsselbundzugriff ein selbstsigniertes Codesignaturzertifikat mit dem Namen "iPhone Developer" im Schlüsselbund "Login" (Standard).

  • Ich habe Screenshots gemacht, als ich den obigen Anweisungen gefolgt bin.
  • Ich habe die meisten Felder leer gelassen oder auf ihrem Standardwert.

Geben Sie hier die Bildbeschreibung ein

2. Öffnen Sie /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist(4.2 oder niedriger :) /Developer/Platforms/iPhoneOS.platform/Info.plist. Möglicherweise benötigen Sie eine Root-Berechtigung.

  • Ich verwende Xcode 4.6, also habe ich die vorherige .plistDatei geöffnet .

3. Ersetzen Sie alle Vorkommen von XCiPhoneOSCodeSignContextby XCCodeSignContext. Es gibt drei davon (XCode Version 3.2.4+).

  • Ich habe drei Änderungen vorgenommen, wie die Screenshots zeigen.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

4. Speichern Sie die Datei und starten Sie Xcode neu.

  • Die Datei wurde gespeichert.

5. Stellen Sie sicher, dass Sie ldid auf Ihrem Mac installiert haben. Legen Sie eine Kopie irgendwo ab, z /usr/local/bin.

6. Erstellen Sie das Python-Skript ldid3.py direkt neben dem Programm ldid. Mach es ausführbar. Füllen Sie es mit:

#!/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])
  • Ich habe eine neue Nur-Text-Datei erstellt und den obigen Code kopiert.
  • Ich habe diese Datei als ldid3.pygespeichert und im /usr/local/binVerzeichnis gespeichert .
  • Im Terminal lief chmod 777 /usr/local/bin/ldid3.py.

7. Öffnen iPhoneCodeSign.xcspec. Diese Datei finden Sie in [Für Xcode 4.6: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec]:

8. Ändern Sie den Eintrag in der Datei von Aufruf codesignzu ldid3.py.

  • Konvertieren Sie die Spezifikationsdatei gemäß der offiziellen Anweisung in einfachen Text, indem Sie die Konsole eingeben: sudo plutil -convert xml1 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
  • Ich habe die Datei mit TextEdit geöffnet.
  • Ersetzt <key>CommandLine</key><string>/usr/bin/codesign</string>durch <key>CommandLine</key><string>/usr/local/bin/ldid3.py</string>.

9. Speichern Sie die Datei und starten Sie Xcode neu.

  • Ich habe die Datei gespeichert und TextEdit beendet.

10. Erstellen Sie eine Datei /var/mobile/tdmtanfauf dem Gerät, um Apples "TDMTANF-Bypass" in installd zu aktivieren (Warnung: Wenn Sie dies tun, werden Sie auch in ein GameCenter mit Sandbox versetzt).

  • Ich erstelle eine leere Textdatei in Windows, tdmtanfbenenne sie mit SSH auf meinem iPod, lade sie hoch und starte /var/mobile/meinen iPod neu.

Jetzt, wo alles vorbei ist mit ...

Ich öffne mein bestehendes Xcode-Projekt und drücke auf Ausführen. Es funktioniert im iOS Simulator ohne Probleme.

Geben Sie hier die Bildbeschreibung ein

Ich stelle sicher, dass die Codesignatur so eingestellt ist, dass das in Schritt 1 eingerichtete Zertifikat verwendet wird.

Geben Sie hier die Bildbeschreibung ein

Ich baue die App (Projekt> Erstellen). Eine Erfolgsmeldung folgt.

Ich packe meine App - Ordner TicTacToe.appaus /Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/und überträgt es auf meinem Windows - Rechner auf meinen iPod zu installieren.

Bei dem Versuch, die App auf meinem iPod zu installieren, ziehe ich TicTacToe.appin den Anwendungsbereich des iPhone-Konfigurationsdienstprogramms, erhalte jedoch die Fehlermeldung, dass meine App "keine gültige mobile Anwendung ist".

Ich habe auch versucht, die App manuell mit iFunbox und der in Cydia gefundenen AppCake- App zu installieren . Beide scheitern.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Als ein Punkt von Interesse, weil ich beim Googeln bemerkt habe, dass viele Leute die Wichtigkeit davon erwähnen: Ich habe AppSync installiert. (Entschuldigung für den riesigen Screenshot. Wenn ich ihn entfernen sollte, lass es mich bitte wissen!)

Geben Sie hier die Bildbeschreibung ein

Fazit

Obwohl ich die Anweisungen mehrmals genau befolge, wird meine App vom iPhone-Konfigurationsdienstprogramm nicht als gültige App erkannt. Ich kann die App nicht manuell mit Programmen wie iFunbox oder Cydia-Apps wie AppCake installieren.

Ich vermute, dass die App tatsächlich ungültig ist, aber nachdem ich die Anweisungen sorgfältig befolgt habe, bin ich mir nicht sicher, warum.

Kann mir jemand sagen, warum meine App nicht gültig ist und was ich tun kann, um dies zu beheben, außer Geld zu husten?

Joncom
quelle
Es war jedoch eine interessante Lektüre.
Thecafremo
Nein - ich bin froh, es gelesen zu haben und werde wahrscheinlich in Zukunft darauf zurückkommen. Danke, dass du es geteilt hast.
Robert
Dies war sehr hilfreich für mich bei der Arbeit an Xcode 4.2 und iOS 4, ich hoffe, jemand kann die Prozedur auf Xcode 4.6
aktualisieren
Nach dem Herunterladen von ldid müssen Sie die Berechtigungen mit chmod 755 ldid auf 755 ändern. Dies verursachte einen Exit 1-Fehler.
0

Sie können Ihr Gerät verbinden und Ihr iOS-Gerät als Ausführungsziel auswählen. Wenn es ausgeführt wird, wird die Anwendung automatisch auf Ihrem Gerät installiert. Oder Sie können Ihr iOS-Gerät auswählen und müssen es nicht nur ausführen, sondern erstellen und archivieren. Danach verteilen ... wählen Sie Für Unternehmen speichern oder Ad-hoc-Bereitstellung. Sie erhalten Ihre .ipa-Datei. Hoffe es kann dir helfen ..

sl33py
quelle
0

Fortsetzung der Antwort von @joncom. Sie können die .app-Dateien mit nur wenigen zusätzlichen Schritten direkt zu Ihrem iPhone hinzufügen.

  • Kopieren Sie die .appDatei auf Ihren Desktop und komprimieren Sie sie anschließend
  • benenne das [yourappname].zipin um[yourappname].ipa
  • Laden Sie dann AppSync von cydia herunter
  • Laden Sie die IPA-Datei herunter und installieren Sie sie auf Ihrem Gerät

HINWEIS:

Sie können dies auch direkt tun, ohne die gesamte von @joncom erwähnte Änderung des Python-Codes durchzugehen. Lesen Sie hier mehr

Löwe
quelle