iPhone App Minus App Store?

199

Wenn ich eine Anwendung auf meinem Mac erstelle, kann ich sie dann auf einem iPhone ausführen, ohne den App Store zu durchlaufen?

Es spielt keine Rolle, ob das iPhone einen Jailbreak haben muss, solange ich noch eine Anwendung ausführen kann, die mit dem offiziellen SDK erstellt wurde. Aus Gründen, auf die ich nicht eingehen werde, kann ich dieses Programm nicht über den App Store laufen lassen.

Dan Walker
quelle
1
Ab Xcode 7 ist es jetzt möglich, eine App auf einem verbundenen Gerät auszuführen, ohne sich für ein Entwicklerkonto anzumelden oder das Gerät zu jailbreaken. Weitere Informationen finden Sie in dieser Anleitung .
Suragch
Sie können AppBox verwenden , eine Mac-Anwendung, die Ihr Dropbox-Konto verwendet, um Ihre Ad-hoc- und Unternehmensanwendungen zu verteilen. Probieren Sie es hier aus github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/…
Vineet Choudhary

Antworten:

187

Offizielles Entwicklerprogramm

Für ein Standard-iPhone müssen Sie 99 US-Dollar pro Jahr bezahlen, um Mitglied des Entwicklerprogramms zu werden. Sie können dann das Ad-hoc-System verwenden, um Ihre Anwendung auf bis zu 100 Geräten zu installieren. Das Entwicklerprogramm enthält die Details, umfasst jedoch das Hinzufügen von UUIDs für jedes der Geräte zu Ihrem Anwendungspaket. UUIDs können am einfachsten mit dem im App Store erhältlichen Ad-hoc-Helfer abgerufen werden . Weitere Informationen zu dieser Methode finden Sie im Artikel Beta-Tests von Craig Hockenberry auf dem iPhone 2.0

IPhone mit Jailbreak

Für iPhones mit Jailbreak können Sie die folgende Methode verwenden, die ich persönlich mit der AccelerometerGraph- Beispiel-App unter iPhone OS 3.0 getestet habe .

Erstellen Sie ein selbstsigniertes Zertifikat

Zuerst müssen Sie ein selbstsigniertes Zertifikat erstellen und Ihr iPhone SDK patchen, um die Verwendung dieses Zertifikats zu ermöglichen:

  1. 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.

    Name: iPhone Developer
    Zertifikatstyp: Codesignatur
    Lassen Sie mich die Standardeinstellungen überschreiben: Ja

  2. Klicken Sie auf Weiter

    Gültigkeit: 3650 Tage

  3. Klicken Sie auf Weiter

  4. Löschen Sie das Feld E-Mail-Adresse.

  5. Klicken Sie auf Weiter, bis der Vorgang abgeschlossen ist.

    Sie sollten "Dieses Stammzertifikat ist nicht vertrauenswürdig" sehen. Dies wird erwartet.

  6. Stellen Sie das iPhone SDK so ein, dass das selbstsignierte Zertifikat verwendet werden kann:

    sudo / usr / bin / sed -i .baks / XCiPhoneOSCodeSignContext / XCCodeSignContext / '/Developer/Platforms/iPhoneOS.platform/Info.plist

    Wenn Sie Xcode geöffnet haben, starten Sie es neu, damit diese Änderung wirksam wird.

Manuelle Bereitstellung über WLAN

Die folgenden Schritte erfordern opensshund uikittoolsmüssen zuerst installiert werden. Ersetzen Sie jasoniphone.localdurch den Hostnamen des Zielgeräts. Achten Sie darauf , Ihr eigenes Passwort sowohl auf die einzustellen mobileund rootBenutzer nach SSH installieren.

So kompilieren und installieren Sie Ihre Anwendung manuell als System-App auf dem Telefon (unter Umgehung des Apple-Installationssystems):

  1. Projekt, Active SDK festlegen, Gerät und Active Build-Konfiguration festlegen, Release.

  2. Kompilieren Sie Ihr Projekt normal (mit Build, nicht mit Build & Go).

  3. Im build/Release-iphoneosVerzeichnis befindet sich ein App-Bundle. Verwenden Sie Ihre bevorzugte Methode, um dies auf / Applications auf dem Gerät zu übertragen.

    scp -r AccelerometerGraph.app root@jasoniphone:/Applications/

  4. Teilen Sie SpringBoard mit, dass die neue Anwendung installiert wurde:

    ssh [email protected] uicache

    Dies muss nur erfolgen, wenn Sie Anwendungen hinzufügen oder entfernen. Aktualisierte Anwendungen müssen nur neu gestartet werden.

Um sich das Leben während der Entwicklung zu erleichtern, können Sie die SSH-Schlüsselauthentifizierung einrichten und diese zusätzlichen Schritte als benutzerdefinierten Erstellungsschritt in Ihr Projekt einfügen.

Wenn Sie die Anwendung später entfernen möchten, können Sie dies nicht über die Standard-SpringBoard-Oberfläche tun. Sie müssen SSH verwenden und das SpringBoard aktualisieren:

ssh root@jasoniphone.local rm -r /Applications/AccelerometerGraph.app &&
ssh mobile@jasoniphone.local uicache
Jason verwittert
quelle
2
Meins wird nicht erstellt - Xcode gibt sofort einen Code-Signaturfehler aus, sobald ich versuche zu erstellen ...
Devoted
1
@ Rev316 uicachesollte da sein, wenn Sie das uikittoolsPaket installiert haben.
Jason Weathered
Ich folge dir, habe aber diesen Fehler festgestellt
hungbm06
Außerdem möchten Sie ein privates / öffentliches Schlüsselpaar über ssh einrichten, um die Dinge passwortlos zu machen
conradev
2
Was ist mit dem Bereitstellungsprofil? Gibt es eine Möglichkeit, eine zu erhalten, ohne das Entwicklerprogramm zu abonnieren?
Teodor Kostov
18

Ja, sobald Sie dem iPhone Developer Program beigetreten sind und Apple 99 US-Dollar bezahlt haben, können Sie Ihre Anwendungen auf bis zu 100 iOS-Geräten bereitstellen.

Robert Höglund
quelle
2
Warum gibt es ein Installationslimit von 100?
Marcus Leon
25
Daher können Benutzer den App Store nicht vollständig umgehen.
Willc2
2
Das Limit von 100 wird als die Anzahl der Geräte gezählt, die Sie in diesem Jahr im iOS Provisioning Portal registriert haben, nicht als die aktuelle Anzahl, die Sie haben. Wenn Sie also 5 Geräte hinzufügen und dann alle 5 löschen, können Sie 95 (nicht 100) weitere Geräte hinzufügen.
Scott C Wilson
1
Die Anzahl der verwendeten Geräte wird jedoch zurückgesetzt, sobald Sie Ihr Entwicklerprogramm erneuern.
Dgund
1
Und die Ad-hoc-Bereitstellungsprofile laufen in 3 Monaten ab, sodass Sie Apps nicht dauerhaft an die begrenzte Anzahl von (100) registrierten Geräten verteilen können.
Bogatyr
14
  • Erstellen Sie Ihre App
  • Auf eine Crack-Site hochladen
  • (Wenn deine App gut genug ist) wird die Crack-Version Minuten später veröffentlicht und kann von allen heruntergeladen werden ;-)
Oh ho
quelle
8

Mit Hilfe dieses Beitrags habe ich ein Skript erstellt, das über die App Installous für eine schnelle Bereitstellung installiert wird:

# compress application.
/bin/mkdir -p $CONFIGURATION_BUILD_DIR/Payload
/bin/cp -R $CONFIGURATION_BUILD_DIR/MyApp.app $CONFIGURATION_BUILD_DIR/Payload
/bin/cp iTunesCrap/logo_itunes.png $CONFIGURATION_BUILD_DIR/iTunesArtwork
/bin/cp iTunesCrap/iTunesMetadata.plist $CONFIGURATION_BUILD_DIR/iTunesMetadata.plist

cd $CONFIGURATION_BUILD_DIR

# zip up the HelloWorld directory

/usr/bin/zip -r MyApp.ipa Payload iTunesArtwork iTunesMetadata.plist

Was in dem oben genannten Beitrag fehlt, sind die iTunesMetadata. Ohne dies installiert Installous Apps nicht korrekt. Hier ist ein Beispiel für iTunesMetadata:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>appleId</key>
    <string></string>
    <key>artistId</key>
    <integer>0</integer>
    <key>artistName</key>
    <string>MYCOMPANY</string>
    <key>buy-only</key>
    <true/>
    <key>buyParams</key>
    <string></string>
    <key>copyright</key>
    <string></string>
    <key>drmVersionNumber</key>
    <integer>0</integer>
    <key>fileExtension</key>
    <string>.app</string>
    <key>genre</key>
    <string></string>
    <key>genreId</key>
    <integer>0</integer>
    <key>itemId</key>
    <integer>0</integer>
    <key>itemName</key>
    <string>MYAPP</string>
    <key>kind</key>
    <string>software</string>
    <key>playlistArtistName</key>
    <string>MYCOMPANY</string>
    <key>playlistName</key>
    <string>MYAPP</string>
    <key>price</key>
    <integer>0</integer>
    <key>priceDisplay</key>
    <string>nil</string>
    <key>rating</key>
    <dict>
        <key>content</key>
        <string></string>
        <key>label</key>
        <string>4+</string>
        <key>rank</key>
        <integer>100</integer>
        <key>system</key>
        <string>itunes-games</string>
    </dict>
    <key>releaseDate</key>
    <string>Sunday, December 12, 2010</string>
    <key>s</key>
    <integer>143441</integer>
    <key>softwareIcon57x57URL</key>
    <string></string>
    <key>softwareIconNeedsShine</key>
    <false/>
    <key>softwareSupportedDeviceIds</key>
    <array>
        <integer>1</integer>
    </array>
    <key>softwareVersionBundleId</key>
    <string>com.mycompany.myapp</string>
    <key>softwareVersionExternalIdentifier</key>
    <integer>0</integer>
    <key>softwareVersionExternalIdentifiers</key>
    <array>
        <integer>1466803</integer>
        <integer>1529132</integer>
        <integer>1602608</integer>
        <integer>1651681</integer>
        <integer>1750461</integer>
        <integer>1930253</integer>
        <integer>1961532</integer>
        <integer>1973932</integer>
        <integer>2026202</integer>
        <integer>2526384</integer>
        <integer>2641622</integer>
        <integer>2703653</integer>
    </array>
    <key>vendorId</key>
    <integer>0</integer>
    <key>versionRestrictions</key>
    <integer>0</integer>
</dict>
</plist>

Ersetzen Sie natürlich alle Instanzen von MyApp durch den Namen Ihrer App und MyCompany durch den Namen Ihres Unternehmens.

Grundsätzlich wird dies auf jedem Gerät mit Jailbreak installiert, auf dem Installous installiert ist. Nach der Einrichtung führt dies zu einer sehr schnellen Bereitstellung, da es von überall installiert werden kann. Laden Sie es einfach auf die Website Ihres Unternehmens hoch, laden Sie die Datei direkt auf das Gerät herunter und kopieren / verschieben Sie sie auf ~/Documents/Installous/Downloads.

Richard J. Ross III
quelle
@ToolmakerSteve Ich bezweifle es, aber da Sie jetzt iOS-Apps mit jeder Apple-ID kostenlos von der Seite laden können, sehe ich keine Notwendigkeit dafür.
Richard J. Ross III
7

Mit dem kommenden Xcode 7 ist es jetzt möglich, Apps ohne Apple-Entwicklerlizenz auf Ihren Geräten zu installieren. Jetzt können Sie den App Store überspringen und müssen Ihr Gerät nicht jailbreaken.

Jetzt kann jeder seine App auf seinem Apple-Gerät herunterladen.

Mit Xcode 7 und Swift können jetzt alle Apps einfacher erstellen und direkt auf ihren Apple-Geräten ausführen. Melden Sie sich einfach mit Ihrer Apple ID an und verwandeln Sie Ihre Idee in eine App, die Sie auf Ihrem iPad, iPhone oder Apple Watch berühren können. Laden Sie Xcode 7 Beta herunter und probieren Sie es noch heute aus. Eine Programmmitgliedschaft ist nicht erforderlich.

Zitiert von: https://developer.apple.com/xcode/

Aktualisieren:

XCode 7 ist jetzt veröffentlicht:

Kostenlose Entwicklung auf dem Gerät Jetzt kann jeder seine eigene App kostenlos auf einem Gerät ausführen und testen. Sie können Ihre eigenen Kreationen auf einem Mac, iPhone, iPad, iPod touch oder Apple Watch ausführen und debuggen, ohne Gebühren und ohne Programme, an denen Sie teilnehmen können. Sie müssen lediglich Ihre kostenlose Apple ID in Xcode eingeben. Sie können sogar dieselbe Apple ID verwenden, die Sie bereits für den App Store oder iTunes verwendet haben. Sobald Sie Ihre App perfektioniert haben, können Sie sie mit dem Apple Developer Program im App Store herunterladen.

Ausführliche Informationen zum Installieren und Ausführen auf Geräten finden Sie unter Starten Ihrer App auf Geräten.

qqbenq
quelle
4

Es ist erwähnenswert, dass es möglich (wahrscheinlich?) Ist, dass ein iPhone-Betriebssystem-Update Ihre Fähigkeit zum Ausführen dieser Apps beeinträchtigt, wenn Sie den Weg des Jailbreak gehen. Ich würde den offiziellen Weg gehen und die 99 Dollar bezahlen, um autorisiert zu werden. Sie müssen sich nicht nur keine Sorgen machen, dass Ihre Apps überlastet werden, sondern haben auch die Möglichkeit (falls Sie dies wünschen), Ihre Apps im Store freizugeben.

August
quelle
2

Stellen Sie nach dem Kopieren der App auf das iPhone auf die von @Jason Weathered beschriebene Weise sicher, dass die App auf "chmod + x" gesetzt ist, da sie sonst nicht ausgeführt wird.

David Airapetyan
quelle
1

* Änderungen / Hinweise, damit dies für Xcode 3.2.1 und iPhone SDK 3.1.2 funktioniert

Manuelle Bereitstellung über WLAN

2) Starten Sie Xcode unbedingt neu, nachdem Sie die Info.plist geändert haben

3) Der Befehl "uicache" wurde nicht gefunden. Die Verwendung von killall -HUP SpringBoard hat bei mir gut funktioniert.

Abgesehen davon kann ich bestätigen, dass dies gut funktioniert.

Mac-Benutzer, die PwnageTool 3.1.4 verwenden, haben sich hervorragend für Jailbreaking (DL via Torrent) bewährt.

Rev316
quelle
Ah. Danke Jason, schätze den gut dokumentierten Beitrag! Vielleicht möchten Sie erwähnen, dass Sie das UIKit Tools-Paket von Cydia für Jailbreak-Nubs wie mich installiert haben.
Rev316
1

Wenn Sie /Developer/Platforms/iPhoneOS.platform/Info.plisteine Anwendung patchen und dann versuchen, eine auf dem Gerät ausgeführte Anwendung mit einem echten Entwicklungsprofil von Apple zu debuggen, funktioniert dies wahrscheinlich nicht. Symptome sind seltsame Fehlermeldungen von com.apple.debugserverund dass Sie eine beliebige Bundle-ID verwenden können, ohne beim Erstellen von Xcode einen Fehler zu erhalten. Die Lösung ist die Wiederherstellung Info.plist.

Mattias Wadman
quelle
0

Sie können AppBox verwenden , eine Mac-Anwendung, die Ihr Dropbox-Konto verwendet, um Ihre Ad-hoc- und Unternehmensanwendungen zu verteilen, wenn Sie sie in einem anderen Browser installieren möchten.

https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/releases


Optionen

IPA archivieren und hochladen

  • Wählen Sie einfach Projekt / Arbeitsbereich zum Archivieren -> ipa erstellen -> ipa hochladen -> E-Mail senden -> und Mac herunterfahren

Laden Sie nur IPA hoch

  • Wählen Sie einfach die IPA-Datei aus, um ipa hochzuladen -> Mail senden -> und den Mac herunterzufahren

Feature

  • Behalten Sie den gleichen Link
    • Diese Funktion behält dieselbe kurze URL für alle zukünftigen IPA bei, die mit derselben Bundle-ID hochgeladen wurden.
    • Wenn diese Option aktiviert ist, können Sie auch den vorherigen Build mit derselben URL herunterladen.
  • Link zur automatischen Verteilung von E-Mail- Apps
  • Mac nach der Verteilung automatisch herunterfahren
  • Maximale Upload-Größe => Entspricht Ihrem Dropbox-Kontospeicher
  • Uploaded App Expiration => Bis Sie aus Ihrer Dropbox löschen
  • Installationen pro App => Unbegrenzt
  • Instrumententafel*

    * Wird in einer zukünftigen Version verfügbar sein


AppBox gegen Diawi

Bildschirmfoto

Laden Sie IPA hoch

IPA archivieren und hochladen

IPA hochladen

Probieren Sie es hier aus: https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/releases

Vineet Choudhary
quelle