Wie kann ich eine iPhone-Anwendung von Xcode auf einem echten iPhone-Gerät bereitstellen, ohne über ein Apple-Zertifikat in Höhe von 99 US-Dollar zu verfügen?
Wie kann ich eine iPhone-Anwendung von Xcode auf einem echten iPhone-Gerät bereitstellen, ohne über ein Apple-Zertifikat in Höhe von 99 US-Dollar zu verfügen?
Antworten:
Es hört sich so an, als ob die Anwendung nicht signiert ist. Laden Sie ldid von Cydia herunter und verwenden Sie es dann wie folgt:ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph
Stellen Sie außerdem sicher, dass die Binärdatei als ausführbar markiert ist: chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph
Ich habe eine Mischung aus zwei Howtos verwendet: Jasons und Alex ' . Mit dem zweiten haben wir den Vorteil, debuggen zu können. Ich werde meistens nur beide unten kopieren (und Alex's vereinfachen):
Update Jan 2012: Dies funktioniert immer noch unter SDK 4.2.1 und iOS 5.0.1 - Ich habe gerade alles auf einem neuen Computer und Gerät getestet!
Patchen Sie Ihr iPhone SDK, um die Verwendung dieses Zertifikats zu ermöglichen:
Starten Sie Keychain Access.app. Wenn keine Elemente ausgewählt sind, wählen Sie im Menü Schlüsselbund die Option Zertifikatassistent und dann Zertifikat erstellen.
Klicken Sie auf Weiter
Klicken Sie auf Weiter
Löschen Sie das Feld E-Mail- Adresse.
Klicken Sie auf Weiter, bis der Vorgang abgeschlossen ist .
Sie sollten "Dieses Stammzertifikat ist nicht vertrauenswürdig" sehen . Dies wird erwartet.
Stellen Sie das iPhone SDK so ein, dass das selbstsignierte Zertifikat verwendet werden kann:
sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
Wenn Sie Xcode geöffnet haben, starten Sie es neu, damit diese Änderung wirksam wird.
Und wenn Sie auf iOS 5 sind, ist es das! Versuchen Sie es jetzt! Das Debuggen ist möglicherweise nicht möglich, aber die App wird da sein!
Das hat mich sehr überrascht, denn wie Sie wissen sollten , habe ich keine Ahnung, worum es bei all diesen Hackings geht! Alles, was ich getan habe, war ein wenig zu verbessern, was ich anderswo gefunden habe, wie ich zeigte.
Also ja, die ganze Methode funktioniert nicht mehr auf die gleiche Weise und ich konnte mir nicht die Mühe machen, eine neue zu finden ... Abgesehen davon, dass ein Tool namens Theos verwendet wird, aber ich konnte den gesamten Prozess nicht durchlaufen.
Wenn Sie es aus irgendeinem Grund deinstallieren müssen , überprüfen Sie das Ende dieses Beitrags. In meinem Fall musste ich, weil ich nicht herausfinden konnte, warum das ganze Blau dieser ganzen Methode nicht mehr funktionierte, und es war mir egal, da wir bereits die lang erwartete Lizenz haben. (Freaking DUNS Nummer dauert so lange ...)
.
.
.
.
.
Installieren Sie auf Ihrem iPhone mit Jailbreak die App AppSync, indem Sie die Quelle ** http://repo.hackyouriphone.org ** hinzufügen
Entfernen Sie die SDK-Anforderungen für Codezeichen und Berechtigungen (ich liebe sed !):
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
Achten Sie auf dasiPhoneOS5.0.sdk
Teil. Wenn Sie beispielsweise das iOS 4.2 SDK verwenden, ersetzen Sie es einfach entsprechend:
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
Schließen Sie das Entfernen der Anforderungen durch Patchen von Xcode ab. Dies bedeutet binäre Bearbeitung:
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
printf "\xc3\x26\x00\x00" >> working
/bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
/bin/mv working iPhoneOS\ Build\ System\ Support
chmod a+x iPhoneOS\ Build\ System\ Support
Wenn Sie Xcode geöffnet haben, starten Sie es neu, damit diese (und die letzte) Änderung wirksam wird.
Öffnen Sie "Projekt> Projekteinstellungen bearbeiten" (aus dem Menü). Klicken Sie auf die Registerkarte "Erstellen" . Suchen Sie "Code Signing Identity" und sein untergeordnetes "Any iPhoneOS Device" in der Liste und setzen Sie beide auf den Eintrag "Don't Code Sign" :
Danach können Sie Schritt 3 rückgängig machen. Zumindest in meinem Fall ging es gut.
Setzen Sie Xcode auf Code Sign mit unserem maßgeschneiderten selbstsignierten Zertifikat (die erste Anleitung). Dieser Schritt kann wahrscheinlich übersprungen werden, wenn Sie nicht debuggen möchten:
mkdir /Developer/iphoneentitlements401
cd /Developer/iphoneentitlements401
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txt gen_entitlements.py
chmod 777 gen_entitlements.py
Schließen Sie Ihr iPhone an und öffnen Sie Xcode. Öffnen Sie Fenster> Organizer. Wählen Sie das Gerät aus der Liste auf der linken Seite aus und klicken Sie auf "Für die Entwicklung verwenden". Sie werden aufgefordert, sich für die Bereitstellung der Website anzumelden. Klicken Sie auf Abbrechen. Es soll die legitime Bereitstellung erleichtern, erschwert jedoch nicht die illegitime Nichtbereitstellung.
Jetzt müssen Sie diesen letzten Teil für jedes neue Projekt ausführen, das Sie erstellen . Gehen Sie zum Menü Projekt> Neue Erstellungsphase> Neue Erstellungsskript-Erstellungsphase. Kopieren Sie im Fenster Folgendes:
export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
/Developer/iphoneentitlements401/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi
.
.
.
.
Für den 1. Teil:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist
Für den 2. Teil:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
sudo mv -f iPhoneOS\ Build\ System\ Support.original iPhoneOS\ Build\ System\ Support
Wenn Sie Schritt 3 statt 2 ausgeführt haben, ändern Sie ihn einfach ebenfalls entsprechend:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
Im Übrigen wird nur das, was Sie auf XCode getan haben, zurückgesetzt und gelöscht, /Developer/iphoneentitlements401/gen_entitlements.py
wenn Sie möchten:
sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py
The identity used to sign the executable is no longer valid. ... (0xE8008018)
Auch wenn ich 3650 Tage bis zum Ablauf eingestellt habe. Es scheint, als würde das Telefon selbst eine Überprüfung durchführen.
Um Ihre App auf einem realen Gerät zu testen, anstatt die Apple Developer-Gebühr (oder den Jailbreak Ihres Geräts) zu zahlen, können Sie die neue kostenlose Bereitstellung verwenden, die Xcode 7 und iOS 9 unterstützen.
Hier sind die Schritte, die mehr oder weniger aus der Dokumentation entnommen wurden (was ziemlich gut ist, lesen Sie es also durch):
1. Fügen Sie Ihre Apple ID in Xcode hinzu
Gehen Sie zu XCode> Einstellungen> Registerkarte Konten> Schaltfläche Hinzufügen (+)> Apple ID hinzufügen. Weitere Hilfe finden Sie in den Dokumenten .
2. Klicken Sie im Projektnavigator auf die Registerkarte Allgemein
3. Wählen Sie Ihre Apple ID aus dem Team-Popup-Menü.
4. Schließen Sie Ihr Gerät an und wählen Sie es im Schema-Menü.
5. Klicken Sie auf die Schaltfläche Probleme beheben
Wenn Sie eine Fehlermeldung erhalten, dass der Bundle-Name ungültig ist, ändern Sie ihn in einen eindeutigen Namen.
6. Führen Sie Ihre App aus
Klicken Sie in Xcode auf die Schaltfläche Erstellen und ausführen.
7. Vertrauen Sie dem App-Entwickler in den Geräteeinstellungen
Nach dem Ausführen Ihrer App wird ein Sicherheitsfehler angezeigt, da die App, die Sie ausführen möchten, nicht aus dem App Store stammt.
Gehen Sie auf Ihrem Gerät zu Einstellungen> Allgemein> Profil> Ihr-Apple-ID-Name > Vertrauen Sie Ihrem-Apple-ID-Namen > Vertrauen.
8. Führen Sie Ihre App erneut auf Ihrem Gerät aus.
Das ist es. Sie können jetzt Ihre eigenen (oder andere Apps, für die Sie den Quellcode haben) ausführen, ohne die 99 Dollar ausgeben zu müssen. Vielen Dank, Apple, dass Sie dies endlich zugelassen haben.
Sie müssen Ihr Gerät jailbreaken.
Es gibt eine Möglichkeit, iPhone-Apps bereitzustellen, ohne an Apple zu zahlen. Sie müssen Ihr Gerät jailbreaken und den Anweisungen unter http://www.alexwhittemore.com/?p=398 folgen
Nichts, was ich irgendwo gesehen habe, weist darauf hin, dass Sie eine Ad-hoc-Bereitstellung auf einem echten iPhone ohne (kostenpflichtiges) Zertifikat durchführen können.
Ich habe gestern Abend den Apple Developer durchgesehen und dort im Provisioning-Zertifikat so etwas wie "Signing Team Members" gefunden. Ich denke, es gibt eine Möglichkeit, Teammitglieder zum bezahlten Profil hinzuzufügen. Sie können einfach den App-ID-Eigentümer (kostenpflichtig) bitten, Sie als Teammitglied hinzuzufügen. Ich bin nicht sicher. Ich suche immer noch danach.
Nein, das ist einfach. Setzen Sie in Xcode die aktive Konfiguration auf Freigeben. Ändern Sie das Gerät von Simulator zu Gerät - unabhängig vom SDK. Wenn Sie direkt auf Ihr iPhone exportieren möchten, schließen Sie es an Ihren Computer an. Drücken Sie Build and Go. Wenn Ihr iPhone nicht mit Ihrem Computer verbunden ist, wird eine Meldung angezeigt, dass Ihr iPhone nicht verbunden ist.
Wenn dies auf Sie zutrifft: (iPhone war nicht verbunden)
Gehen Sie zu Ihrem Projektordner und dann zum darin enthaltenen Build-Ordner. Gehen Sie zum Ordner Release-iphoneos und nehmen Sie die App in sich auf. Ziehen Sie sie per Drag & Drop auf das iTunes-Symbol. Wenn Sie Ihr iTouch-Gerät synchronisieren, wird es auf Ihr Gerät kopiert. Es wird auch in iTunes als Anwendung für das iPhone angezeigt.
Hoffe das hilft!
PS: Wenn etwas über ein ungültiges Zertifikat aussagt, klicken Sie einfach auf das Projekt in Xcode, das kleine Projektsymbol im Dateistapel links, und drücken Sie Apple + I oder rufen Sie in der Menüleiste Informationen ab. Klicken Sie oben auf Erstellen. Ändern Sie unter Codesignatur die Codesignaturidentität - Jedes iPhone OS-Gerät, das nicht signiert werden soll.
Dies hängt wirklich alles davon ab, welche Version von Xcode Sie verwenden, da verschiedene Versionen unterschiedliche Methoden für die Bereitstellung auf Ihrem iPhone ohne Bereitstellungsprofil verwenden.
Xcode 3.2.1 ist eine gute Version und leicht zu sortieren, aber wir müssen wissen, welche Version Sie verwenden.
Die von Cawas veröffentlichte Lösung funktioniert auch perfekt mit XCode4. Es gibt jedoch einige Änderungen an der Benutzeroberfläche von IDE, sodass Sie einige Nachforschungen anstellen müssen, um Run Script zu finden :)
Klicken Sie in der Projektnavigatoransicht auf das Stammelement des Projekts, wählen Sie dann im mittleren Fenster Ziel aus, klicken Sie auf die Registerkarte Build-Phasen. Unten sehen Sie die Schaltfläche Build-Phase hinzufügen, klicken Sie auf Run-Skript hinzufügen und fügen Sie dann Codescode ein "Skript von Cawas gepostet.
Es gibt keine Problemumgehung. Sie können Apps nur dann ad hoc bereitstellen, wenn sie auf Ihrem Gerät registriert sind. Dies verhindert, dass Sie Ihren eigenen App Store erstellen.