Sowohl aus Spaß als auch aus Budgetgründen würde ich gerne ein Paket nehmen, das normalerweise ein Entwicklerkonto erfordern würde, 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 jailbreakt wurde und auf dem iOS 6.1 ausgeführt wird.
Ich verwende Xcode 4.6 mit OS X (10.8.2) Lion.
Die folgenden Anleitungen zu diesem Zweck stammen aus: http://iphonedevwiki.net/index.php/Xcode
Meine Erkenntnisse und Maßnahmen werden unter jedem Schritt bereitgestellt.
1. Erstellen Sie mithilfe der Schlüsselbundverwaltung ein selbstsigniertes Code-Signatur-Zertifikat mit dem Namen „iPhone-Entwickler“ auf dem Schlüsselbund „Login“ (Standard).
2. Öffnen /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 Root-Rechte.
.plist
Datei geöffnet.3. Ersetzen Sie alle Vorkommen von XCiPhoneOSCodeSignContext
durch XCCodeSignContext
. Es gibt drei davon (XCode Version 3.2.4+).
4. Speichern Sie die Datei und starten Sie Xcode neu.
5. Stellen Sie sicher, dass Sie ldid auf Ihrem Mac haben. Legen Sie eine Kopie irgendwo ab, zB in /usr/local/bin
.
/usr/local/bin
.6. Erstellen Sie das Python-Skript ldid3.py direkt neben dem ldid-Programm. Machen Sie 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])
ldid3.py
gespeichert und im /usr/local/bin
Verzeichnis abgelegt.chmod 777 /usr/local/bin/ldid3.py
.7. Öffnen Sie iPhoneCodeSign.xcspec
. Diese Datei finden Sie unter [For 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 codesign
auf 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>
durch <key>CommandLine</key><string>/usr/local/bin/ldid3.py</string>
.9. Speichern Sie die Datei und starten Sie Xcode neu.
10. Erstellen Sie eine Datei /var/mobile/tdmtanf
auf dem Gerät, um Apples „TDMTANF-Umgehung“ in installd zu aktivieren (Warnung: Dadurch gelangen Sie auch in ein Sandbox-GameCenter).
tdmtanf
, schicke sie per SSH in meinen iPod, lade sie auf hoch und starte /var/mobile/
meinen iPod neu.Ich öffne mein vorhandenes Xcode-Projekt und drücke auf Ausführen. Im iOS Simulator funktioniert es ohne Probleme.
Ich stelle sicher, dass Code Signing so eingestellt ist, dass es das in Schritt 1 eingerichtete Zertifikat verwendet.
Ich erstelle die App (Projekt > Erstellen). Es folgt eine Erfolgsmeldung.
Ich nehme meinen App-Ordner TicTacToe.app
und /Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/
übertrage ihn auf meinen Windows-Rechner, um ihn auf meinem iPod zu installieren.
Beim Versuch, die App auf meinem iPod zu installieren, ziehe ich sie TicTacToe.app
in den Anwendungsbereich des iPhone-Konfigurationsdienstprogramms, erhalte jedoch diese Fehlermeldung, die besagt, 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.
Als interessanter Punkt, denn als ich herumgegoogelt habe, habe ich bemerkt, dass viele Leute die Wichtigkeit erwähnen: Ich habe AppSync installiert. (Entschuldigung für den riesigen Screenshot. Wenn ich ihn entfernen sollte, lass es mich bitte wissen!)
Obwohl ich die Anweisungen mehrmals genau befolgt habe, wird meine App vom iPhone Configuration Utility 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?
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, dann müssen Sie es nicht ausführen, sondern nur erstellen und archivieren. Danach verteilen... wählen Sie Save for Enterprise or Ad-Hoc Deployment. Sie erhalten Ihre .ipa-Datei. Hoffe es kann dir helfen..
Fortsetzung der Antwort von @joncom.. Sie können die .app-Dateien mit nur wenigen zusätzlichen Schritten direkt zu Ihrem iPhone hinzufügen.
.app
Datei auf Ihren Desktop und zippen Sie sie dann[yourappname].zip
in[yourappname].ipa
HINWEIS:
Sie können dies auch direkt tun, ohne die gesamte von @joncom erwähnte Python-Code-Änderung durchlaufen zu müssen. Lesen Sie hier mehr
Thecafremo
Robert
rraallvv
Benutzer46393