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.
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
.plist
Datei geöffnet .
3. Ersetzen Sie alle Vorkommen von XCiPhoneOSCodeSignContext
by XCCodeSignContext
. Es gibt drei davon (XCode Version 3.2.4+).
- Ich habe drei Änderungen vorgenommen, wie die Screenshots zeigen.
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.py
gespeichert und im /usr/local/bin
Verzeichnis 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 codesign
zu 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/tdmtanf
auf 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,
tdmtanf
benenne 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.
Ich stelle sicher, dass die Codesignatur so eingestellt ist, dass das in Schritt 1 eingerichtete Zertifikat verwendet wird.
Ich baue die App (Projekt> Erstellen). Eine Erfolgsmeldung folgt.
Ich packe meine App - Ordner TicTacToe.app
aus /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.app
in 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.
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!)
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?
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 ..
quelle
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 komprimieren Sie sie anschließend[yourappname].zip
in um[yourappname].ipa
HINWEIS:
Sie können dies auch direkt tun, ohne die gesamte von @joncom erwähnte Änderung des Python-Codes durchzugehen. Lesen Sie hier mehr
quelle