Die Bereitstellung von Unternehmensanwendungen funktioniert unter iOS 7.1 nicht

317

Wir verteilen Apps über ein Enterprise-Konto unter Verwendung einer itms-services://URL. Dies hat immer gut funktioniert, aber nach der Installation der iOS 7.1 Beta auf unserem iPad wird die Installation abgelehnt. Stattdessen erhalten wir nur die allgemeine Cannot connect to example.comMeldung, dass iOS nicht hilfreich angezeigt wird, wenn beim Herunterladen der App Probleme auftreten.

Ich konnte hier auf SO, bei Google oder in den Versionshinweisen zu 7.1 nichts finden, was darauf hindeutet, was das Problem verursachen könnte.

Mark Parnell
quelle
1
Umfasst dies auch den Build-Server, der Teil von Mavericks Server ist?
Dan
Dies war auch auf unserem OS X Server für uns defekt.
Toofah
Vielleicht hilft dies teratotech.com/blog/…
HelmiB

Antworten:

330

Ich habe das Problem festgestellt, indem ich das iPad an den Computer angeschlossen und die Konsole über den XCode Organizer angezeigt habe, während ich versucht habe, die App zu installieren. Der Fehler stellt sich heraus als:

Nicht-https-Manifest-URL konnte nicht geladen werden: http://example.com/manifest.plist

Es stellt sich heraus, dass in iOS 7.1 die URL für die manifest.plistDatei HTTPS sein muss, wo wir HTTP verwendet haben. Durch Ändern der URL in HTTPS wurde das Problem behoben.

Dh

itms-services://?action=download-manifest&url=http://example.com/manifest.plist

wird

itms-services://?action=download-manifest&url=https://example.com/manifest.plist

Ich würde davon ausgehen, dass Sie ein gültiges SSL-Zertifikat für die betreffende Domain benötigen. Wir haben es bereits getan, aber ich würde mir vorstellen, dass Sie Probleme ohne es haben werden.

Mark Parnell
quelle
5
Sie können ein selbstsigniertes SSL-Zertifikat für Ihre Website erstellen. Vergessen Sie nicht, mit dem iPhone-Konfigurationsdienstprogramm ein Profil zu erstellen, damit das Zertifikat auf Ihrem Gerät als vertrauenswürdig eingestuft wird.
Niralp
1
@ SantaClaus Haben Sie überprüft, ob der Link mit "itms-services: //" https: // und nicht http: // enthält? Überprüfen Sie außerdem, ob Ihre Liste auch IPA-URL mit HTTPS enthält.
Niralp
3
Ich habe die gleichen Probleme wie @Niralp. Ich habe unseren Apache-Server mit einem selbstsignierten SSL-Zertifikat eingerichtet. Der Server scheint einwandfrei mit SSL zu funktionieren, aber die OTA-Links funktionieren immer noch nicht und geben den oben angegebenen Fehler aus. Ich habe das Zertifikat auf dem iOS-Gerät installiert, aber das hat auch keinen Unterschied gemacht. Irgendwelche Gedanken?
Toofah
5
Ich habe meine eigene Zertifizierungsstelle erstellt und damit das SSL-Zertifikat des Webservers signiert. Über Apple Configurator können Sie ein Profil erstellen, das diese Zertifizierungsstelle als vertrauenswürdig kennzeichnet. Danach funktioniert die Installation wie erwartet.
Monobono
1
Es ist erwähnenswert, dass die in der manifest.plist enthaltenen URLs NICHT HTTPS sein müssen. Nur die ITMS-URL muss HTTPS sein
Brody Robertson
233

ingconti ist richtig.

  1. Laden Sie Ihre app.plist in die Dropbox hoch.
  2. Erhalten Sie einen gemeinsamen Link von app.plist, z. B. https://www.dropbox.com/s/qgknrfngaxazm38/app.plist
  3. ersetzen www.dropbox.commit dl.dropboxusercontent.comin der Verbindung, wie https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist
  4. Entfernen Sie alle Parameter auf dem gemeinsam nutzbaren Dropbox-Link, z. B. "? Dl = 0t" (laut Carlos Aguirre Tradeco bei der Bereitstellung der Enterprise-App funktioniert dies nicht unter iOS 7.1 und meiner eigenen Erfahrung nach).
  5. Erstellen Sie eine download.htmlDatei mit einem Link, der als formatiert ist<a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist">INSTALL!!</a>
  6. Laden Sie Ihre download.htmlDropbox hoch
  7. Holen Sie sich erneut einen gemeinsamen Link zu download.html, z. B. https://www.dropbox.com/s/gnoctp7n9g0l3hx/download.html , und entfernen Sie alle Parameter.
  8. Ersetzen www.dropbox.commit dl.dropboxusercontent.comin der zweiten Verbindung als auch, wie https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html

Besuchen https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.htmlSie jetzt in Ihrem Gerät, können Sie die App wie zuvor installieren.

WAS FÜR EINE WUNDERVOLLE WELT!

alter Mann
quelle
4
Das hat meinen Speck gerettet! Danke danke danke!
Bentford
13
danke ... bin ein großer Fan von Apple, aber ich fange an, es heutzutage zu hassen ... wegen dieser dummen Dinge, die meine Zeit ruinieren ...
Karthik
1
Ich habe alle oben genannten Schritte ausgeführt. Ich stehe vor dem gleichen Problem wie DanM. Der Download startet, aber nach einigen Sekunden wird die Warnung "... konnte zu diesem Zeitpunkt nicht heruntergeladen werden" angezeigt.
Alper_k
1
Ich erhalte die folgende Fehlermeldung: "Es kann keine Verbindung zu dl.dropboxusercontent.com hergestellt werden", wenn versucht wird, <a href = "itms-services: //? Action = download-manifest & amp; url = dl.dropboxusercontent.com/s/56ny312cwdacho7 zu installieren /xxxxx.plist > mit https
nano
1
Ich habe es bekommen. Früher habe ich Dateien in meinem privaten Ordner gespeichert, wieder habe ich diese in öffentlichen Ordner geändert. Vergessen Sie nicht, Dateien in öffentlichen Ordner zu legen. Cheers Oldman
Hariprasad.J
72

Neben der Antwort von Mark Parnell besteht eine schnelle und schmutzige Möglichkeit, dies zu umgehen, darin, die Manifest-Liste in Dropbox abzulegen und dann über die Dropbox-Weboberfläche einen direkten https-Link zu ihr zu erhalten ('Link teilen' -> ' Link abrufen '->' Download ').

Die tatsächliche IPA kann dort bleiben, wo Sie sie immer serviert haben. Sie müssen die URL der Plist per URL codieren, bevor Sie sie in die Abfrage der itms-servivces-URL einfügen (obwohl das Ersetzen von & s durch% 3D möglicherweise funktioniert).

Ein Nachteil ist, dass im Installationsdialog nun "dl.dropbox.com möchte [was auch immer] installieren" angezeigt wird.

Mike
quelle
Daran habe ich nicht gedacht! Vielen Dank!
Weihnachtsmann
Es hat ziemlich viel gedauert, um eine Wert-URL (verschlüsselt) zu erhalten, aber es hat endlich angefangen zu funktionieren. Vielen Dank!
David Dunham
Clevere Lösung: D Danke!
MobileGuy
Mike vielen Dank, endlich hat es geklappt! Lebensretter!
Adamteale
Ich habe ein Tool erstellt, um dabei zu helfen: otter-ota.herokuapp.com . Es passt automatisch die URLs Ihrer Dropbox-Freigabe an, generiert eine Liste (da xcode dies nicht mehr tut?) Und erstellt den erforderlichen itms-Link und HTML. Es kann auch eine Zielseite hosten, wenn Sie möchten.
Suppe
36

Es ist wahr, dass Sie in Zukunft voraussichtlich alle OTA-Bereitstellungen über https in Zukunft mit iOS7.1 durchführen werden. Schade, dass Apple dies nicht dokumentiert hat.

Für diejenigen unter Ihnen, die nach einer besseren internen Lösung suchen, als sich auf Dropbox zu verlassen oder Bargeld für ein Zertifikat ausgeben zu müssen, können Sie eine Lösung finden, wenn Sie die in Tipp 5 beschriebenen Schritte hier befolgen: http: // blog. httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/

Das Wesentliche dabei ist:

  • Erstellen Sie Ihr eigenes CA Authority-Zertifikat, das Sie auf dem vollständig vertrauenswürdigen Gerät installieren können (ich habe es installiert, indem ich es einfach per E-Mail verschickt habe).
  • Erstellen Sie das Schlüssel / Cer-Paar für das Stammzertifikat und installieren Sie es auf Ihrem Server
  • Stellen Sie sicher, dass Ihr Webserver das Schlüssel / Cer-Paar verwendet, das dem CA Authority-Stammzertifikat entspricht
  • Zu diesem Zeitpunkt sollten Sie in der Lage sein, Ihre Apps wie gewohnt über https zu installieren
  • All dies kann unter OSX mit openssl erreicht werden, das bereits standardmäßig installiert ist

Dies ist nicht dasselbe wie nur ein selbstsigniertes Zertifikat. In dieser Lösung fungieren Sie auch als Ihre eigene private Zertifizierungsstelle. Wenn Ihr auf Ihrem Apple-Gerät installiertes Stammzertifikat nicht als vertrauenswürdig (grün) markiert ist, stimmt etwas nicht. Mach es nochmal.

Das funktioniert absolut.

Update: 13.03.2014 - Ich habe ein kleines Befehlszeilenprogramm bereitgestellt, das diesen gesamten Prozess vereinfacht. Sie erhalten es unter: https://github.com/deckarep/EasyCert/releases

Ralph Caraveo
quelle
1
Sehr schön. Vielen Dank für die Zusammenfassung und das CL-Tool.
Alex Zavatone
Ich habe gerade eine Stunde damit verbracht, dieses bisschen herauszufinden. Die Verwendung eines 8192-Bit-Schlüssels für Ihr CA-Zertifikat schlägt fehl. iOS importiert Ihr Zertifikat, vertraut ihm jedoch aus irgendeinem Grund nicht. Ein 4096-Bit-CA-Schlüssel funktioniert.
EmeraldD.
1
@EmeraldD. Der Code enthält keine Stelle: github.com/deckarep/EasyCert/blob/master/EasyCert.go , die einen 8192-Bit-Schlüssel verwendet. Tatsächlich verwendet das Tool Schlüssel mit 2048, wie im Artikel gezeigt. Tut mir leid, dass du Zeit verloren hast.
Ralph Caraveo
@ ZhaoXiang Ich kann mir ansehen, wie ich das hinzufüge. Würde es Ihnen etwas ausmachen, hier ein Problem einzureichen : github.com/deckarep/easycert/issues und wenn möglich alle Befehle zu veröffentlichen, mit denen Sie alle Dateien nach Bedarf konvertiert haben.
Ralph Caraveo
1
Dies ist die eigentliche Antwort Jungs, +1 :))
Tech_Intelliswift
33

Ich hatte das gleiche Problem und obwohl ich bereits einen SSL-Server verwendete, funktionierte das einfache Ändern der Links zu https nicht, da ein Problem zugrunde lag.

Geben Sie hier die Bildbeschreibung ein Klicken Sie hier für das Bild

Der markierte Bit sagte mir , dass ich sollte die Möglichkeit gegeben werden , um das Zertifikat zu vertrauen, aber da dies das App - Store, durch Safari arbeiten , dass die Erholung Vorschlag ist einfach nicht vorgestellt.


Ich war mit den vorhandenen Lösungen nicht zufrieden, weil:

  • Einige Optionen erfordern die Abhängigkeit von einem Dritten (Dropbox).
  • Wir waren nicht bereit, für ein SSL-Zertifikat zu bezahlen
    • Kostenlose SSL-Zertifikate sind nur eine vorübergehende Lösung.

Ich habe endlich eine Lösung gefunden, indem ich eine selbstsignierte Stammzertifizierungsstelle erstellt und damit das SSL-Zertifikat unseres Servers generiert habe.

Ich habe Keychain Access und OSX Server verwendet, aber für jeden Schritt gibt es andere gültige Lösungen


Erstellen einer Zertifizierungsstelle

Soweit ich weiß, werden Zertifizierungsstellen verwendet, um die Echtheit der Zertifikate zu überprüfen. Da wir gerade eines selbst erstellen, ist es nicht gerade sicher , aber es bedeutet, dass Sie allen Zertifikaten einer bestimmten Behörde vertrauen können. Eine Liste dieser Berechtigungen ist normalerweise standardmäßig in Ihren Browsern enthalten, da diese tatsächlich vertrauenswürdig sind. (GeoTrust Global CA, Verisign usw.)

  • Öffnen Sie den Schlüsselbund und erstellen Sie mit dem Zertifikatassistenten eine Berechtigung

Geben Sie hier die Bildbeschreibung ein

  • Geben Sie Ihre Zertifizierungsstelleninformationen ein

Geben Sie hier die Bildbeschreibung ein

  • Ich weiß nicht, ob es notwendig ist, aber ich habe der Behörde vertraut.

Geben Sie hier die Bildbeschreibung ein


Generieren einer Zertifikatsignierungsanforderung

In unserem Fall werden Zertifikatsignierungsanforderungen vom Serveradministrator generiert. Es handelt sich lediglich um eine Datei mit der Frage "Kann ich bitte ein Zertifikat mit diesen Informationen für meine Website haben?".

  • Als Nächstes müssen Sie Ihre Zertifikatsignierungsanforderung erstellen (für dieses Bit habe ich den Zertifikatsmanager von OSX Server verwendet

Geben Sie hier die Bildbeschreibung ein

  • Geben Sie Ihre Zertifikatinformationen ein (darf nur ASCII-Zeichen enthalten!, Danke @Jasper Blues)

Geben Sie hier die Bildbeschreibung ein

  • Speichern Sie die generierte CSR irgendwo

Geben Sie hier die Bildbeschreibung ein


Zertifikat erstellen

Wenn Sie wieder als Zertifizierungsstelle fungieren, liegt es an Ihnen, zu entscheiden, ob die Person, die Ihnen die CSR gesendet hat, echt ist und nicht vorgibt, jemand anderes zu sein. Echte Behörden haben ihre eigenen Methoden, aber da Sie hoffentlich ziemlich sicher sind, dass Sie Sie sind, sollte Ihre Überprüfung ziemlich sicher sein :)

  • Gehen Sie zurück zum Schlüsselbundzugriff und öffnen Sie die Option "Zertifikat erstellen .." wie gezeigt

Geben Sie hier die Bildbeschreibung ein

  • Ziehen Sie Ihre gespeicherte CSR in das angegebene Feld

Geben Sie hier die Bildbeschreibung ein

  • Klicken Sie auf die Schaltfläche "Standardeinstellungen für diese Anforderung überschreiben lassen".

Geben Sie hier die Bildbeschreibung ein

  • Ich möchte die Gültigkeitsdauer verlängern.

Geben Sie hier die Bildbeschreibung ein

  • Aus irgendeinem Grund müssen wir einige Informationen erneut eingeben

Geben Sie hier die Bildbeschreibung ein

  • Klicken Sie in diesem Bildschirm auf Weiter

Geben Sie hier die Bildbeschreibung ein

  • Stellen Sie sicher , dass Sie auf die SSL-Serverauthentifizierung klicken . Diese verursachte mir einige Kopfschmerzen.

Geben Sie hier die Bildbeschreibung ein

  • Sie können durch die restlichen Optionen auf Weiter klicken.

  • Die Mail-App wird geöffnet und bietet Ihnen die Möglichkeit, das Zertifikat zu senden. Anstatt eine E-Mail zu senden, klicken Sie mit der rechten Maustaste darauf und speichern Sie sie.

Geben Sie hier die Bildbeschreibung ein


Zertifikat installieren

Wir müssen jetzt den Server so einrichten, dass er das Zertifikat verwendet, das wir gerade für den SSL-Verkehr erstellt haben.

  • Wenn das Gerät auf Ihre Arbeit ist der Server, finden Sie vielleicht das Zertifikat bereits installiert ist .

Geben Sie hier die Bildbeschreibung ein

  • Wenn nicht, doppelklicken Sie auf das ausstehende Zertifikat und ziehen Sie die PEM-Datei, die wir gerade aus der E-Mail gespeichert haben, in das angegebene Feld. (Alternativ können Sie Ihre PEM aus dem Schlüsselbund exportieren, wenn Sie sie nicht gespeichert haben.)

Geben Sie hier die Bildbeschreibung ein

  • Aktualisieren Sie Ihren Server, um dieses neue Zertifikat zu verwenden. Wenn Sie feststellen, dass das neue Zertifikat nicht "haftet" und immer wieder zurückgesetzt wird, kehren Sie zu dem Bit in BOLD ITALIC CAPS zurück

Geben Sie hier die Bildbeschreibung ein


Geräte einrichten

Jedes Gerät, auf dem Sie Apps installieren müssen, muss über eine Kopie dieser Zertifizierungsstelle verfügen, damit sie wissen, dass sie SSL-Zertifikaten dieser Berechtigung vertrauen können

  • Kehren Sie zu Keychain Access zurück und exportieren Sie Ihre Zertifizierungsstelle als .cer

Geben Sie hier die Bildbeschreibung ein

  • Ich habe diese Datei dann mit meinen OTA-Apps auf meinem Server abgelegt. Benutzer können auf diesen Link klicken und das Berechtigungszertifikat herunterladen. Das direkte Versenden des Zertifikats an Benutzer ist ebenfalls eine gültige Option.

Geben Sie hier die Bildbeschreibung ein

  • Installieren Sie das Zertifikat auf Ihrem Gerät.

Geben Sie hier die Bildbeschreibung ein


Prüfung

  • Stellen Sie sicher, dass Ihre Plist-Links https sind

    • Versuchen Sie und installieren Sie eine App! Es sollte jetzt funktionieren. Die Zertifizierungsstelle ist vertrauenswürdig und das SSL-Zertifikat stammt von dieser Berechtigung.
James Webster
quelle
Ich habe den letzten Teil Ihrer Antwort nicht ganz verstanden. Bedeutet dies, dass ich die CER-Datei auf meinem Server ablegen muss. Der Benutzer sollte die CER-Datei über HTTP herunterladen, bevor er die IPA über HTTPS installieren kann. Ist mein Verständnis korrekt? ?
Zhao Xiang
Beachten Sie, dass der .cer nicht über HTTP sein muss, da Safari die vom App Store vernachlässigte Schnittstelle "Möchten Sie diesem Zertifikat vertrauen" anzeigt.
James Webster
1
Ich habe diesen Prozess mit einem benutzerfreundlichen Befehlszeilentool, das nur zwei Parameter benötigt, vollständig automatisiert. Siehe meine Antwort bezüglich: github.com/deckarep/EasyCert/releases
Ralph Caraveo
Ich verwende IIS unter Windows Server. Ich habe eine CER-Datei generiert und auf meinem iPhone abgelegt, aber es funktioniert immer noch nicht. Ich wusste nicht warum. Ich denke, ich würde jetzt lieber etwas Geld für die Zertifizierung ausgeben.
Zhao Xiang
1
Beachten Sie auch, dass das Zertifikat, das auf dem Gerät installiert werden muss, das Zertifikat Certificate Authorityund nicht das selbstsignierte SSL-Zertifikat ist, wie ich es ursprünglich fälschlicherweise installiert habe
NSTJ
6

Ich kann bestätigen, dass es funktioniert, aber Sie müssen HTML AND Plist auf Dropbox setzen. Es funktioniert auch für OTA außerhalb des Unternehmens, dh Sie möchten die App mit Ihrem Entwickler teilen. Mannschaft.

Ich tat:

a) Auf meiner Website habe ich eine Seite mit diesem Link erstellt:

.. href = "https://dl.dropboxusercontent.com/u//(Ihre DB-ID) /ipa.html"> MyApp

b) Auf DropBox habe ich eine weitere HTML-Seite geschrieben:

.. https://dl.dropboxusercontent.com/u/(Ihre DB-ID) /MyApp.plist "> Tippen Sie hier, um MyApp zu installieren

c) Plist auf DropBox verschoben, aber POINT auf meinem alten Server belassen (kein https)

ingconti
quelle
7
Ich musste das HTML nicht einfügen und es scheint gut zu funktionieren. Nur die Liste war genug.
Ben G
Welche Plist ist das übrigens? Ist es die app.plist oder die, die beim Erstellen von IPA-Dateien generiert wurde?
user1872384
3

Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus: curl -i https: // (.ipa-Dateipfad nicht plist)

Hier erfahren Sie, ob das Installationsprogramm die IPA-Datei sehen kann. Wenn Sie den Befehl curl mit dem '-i' ausführen, wird die vollständige Antwort angezeigt, und es handelt sich wahrscheinlich nicht um die IPA-Datei. Dies ist die Antwort, die das Installationsprogramm sieht. Wenn also kein HTTP 200 und kein IPA zurückgegeben werden, müssen Sie es am Ende zurückgeben.

Das ITMS-Installationsprogramm speichert keinen Kontext aus Safari. Wenn Sie sich in Safari bei einem sicheren Portal authentifiziert haben, werden die Authentifizierungscookies nicht an das Installationsprogramm weitergegeben. Das Installationsprogramm muss in der Lage sein, die App ohne Authentifizierung anzuzeigen. Dies kann der Grund dafür sein, dass die Meldung "Keine Verbindung zum Server möglich" angezeigt wird.

Gagan_iOS
quelle
Das war sehr hilfreich für mich. Vielen Dank!
Stanislav Pankevich
Sie möchten den Befehl über die Terminalanwendung auf dem iPhone oder im MACBook ausführen? Es scheint, dass ich auch vor dem gleichen Problem stehe.
user867662
2

Ich hatte die gleichen Probleme und tat wie oben erwähnt.

  • Legen Sie die Liste in die Dropbox.
  • Wählen Sie über die Schaltfläche "Datei herunterladen" unter einem Bild des Dokuments mit der rechten Maustaste die Aktion "Link kopieren" aus. Dieser Link ist bereits so etwas wie https://dl.dropboxusercontent.com/s/xyz123/app.plist?stuff=stuff mit vielen Parametern.
  • Entfernen Sie die Parameter (nur Adresse zwischen https und .plist beibehalten)
  • Suchen Sie online nach URL-Codierung, wählen Sie einen dieser Links aus, kopieren Sie ihn, fügen Sie ihn ein, führen Sie ihn aus, und kopieren Sie den resultierenden Text und fügen Sie ihn in den HTML-Code ein, in dem sich der Link itms-services befindet. Übrigens habe ich dieses HTML an zwei verschiedenen Orten, einer davon ist der Ort, an dem sich die IPA befindet.
  • Stellen Sie sicher, dass die Liste absolute Verweise auf die IPA-Datei enthält.

Beide Seiten funktionierten erfolgreich für die Installation der App in iPhones mit iOS 7.1

Aber jetzt können iPhones mit iOS 7.0x die App nicht installieren.

Ich habe eine neue Frage erstellt: Die aktualisierte Bereitstellung der Ad-hoc-App funktioniert auf iOS vor 7.1 nicht

Beide Themen sind eng miteinander verbunden und auch durch das Fehlen offizieller Referenzen verbunden.

Carlos Aguirre Tradeco
quelle
2

Ein netter Kerl hat das Problem mithilfe des StartSSL-Zertifikats der Klasse 1 und der gemeinsam genutzten Apache-Konfiguration behoben, die Zertifikatsunterstützung (funktioniert mit jedem Zertifikat) und Code zum automatischen Ändern von Links in vorhandenen * .plist-Dateien hinzufügt. Das Kopieren ist zu lang, daher hier der Link: http://cases.azoft.com/how-to-fix-certificate-is-not-valid-error-on-ios-7/

Eiswürfel
quelle
2

Wenn Sie zufällig AWS S3 haben, funktioniert das auch wie ein Zauber. Gut. Relativ gesehen :-)

Erstellen Sie einen Bucket für Ihre Ad-hocs in AWS, fügen Sie eine Indexdatei hinzu (es kann sich nur um eine leere index.html-Datei handeln) und verwenden Sie dann einen Client, der eine Verbindung zu S3 wie CyberDuck oder Coda herstellen kann (ich habe Coda verwendet - wo Sie Hinzufügen auswählen würden Site, um ein Verbindungsfenster zu erhalten) und stellen Sie dann die Verbindungen wie folgt ein:

Erstellen Sie dann Ihr Unternehmen ad hoc in XCode und stellen Sie sicher, dass Sie https://s3.amazonaws.com/your-bucket-name/your-ad-hoc-folder/your-app.ipa als Anwendungs-URL verwenden, und laden Sie es hoch in Ihr neues S3-Bucket-Verzeichnis.

Ihr itms-Link sollte übereinstimmen, dh itms-services: //? Action = download-manifest & url = https://s3.amazonaws.com/your-bucket-name/your-ad-hoc-folder/your-app.plist

Und voilá.

Dies gilt nur für generische AWS-URLs. Ich habe es nicht mit benutzerdefinierten URLs in AWS versucht, daher müssen Sie möglicherweise einige Dinge anders ausführen.

Ich war entschlossen zu versuchen, James Websters Lösung über die Arbeit zu bringen, aber ich konnte sie nicht dazu bringen, mit Plesk zu funktionieren.

Catherine
quelle
1

Alternativ zur Verwendung von Dropbox für die Unternehmensverteilung können Sie TestFlight für die Verteilung von von Unternehmen signierten Apps verwenden.

https://www.testflightapp.com/

Dies ist ein fantastischer Service für das Hosting und die Verteilung von Ad-hoc-Entwicklungs-Builds UND Enterprise-Builds.

Brody Robertson
quelle
1
Ironischerweise wurde Testflight anscheinend von Apple techcrunch.com/2014/02/21/…
Thunder Rabbit
1
Nachdem Testflight von Apple übernommen wurde, wird die Unterstützung für Android eingestellt.
Brody Robertson
1

Nach den vorherigen Antworten zu Dropbox habe ich den folgenden Dateibaum implementiert, sodass nur die PLIST-Datei in Dropbox hochgeladen werden muss:

  1. Laden Sie die IPA-Datei auf Ihren Server in http hoch (keine Änderung hier)
  2. Laden Sie die Bereitstellungsdatei (.mobileprovision) auf Ihren Server unter http hoch (hier keine Änderung).
  3. Laden Sie die Plist-Datei in Ihre Dropbox hoch (keine Änderung in der Plist-Datei, da die URLs absolut sind).
  4. Verwenden Sie die Option "Link mit Dropbox teilen", mit der der Link in Ihre Zwischenablage kopiert wird. Dieser Link muss in Ihre HTML-Datei in die Abfrage der itms-servivces-URL kopiert werden, nachdem das Teil www.dropbox.comum geändert wurde dl.dropboxusercontent.com. Hinweis: Ich habe den Link per URL codiert, wie von @Mike vorgeschlagen, aber ich teste nicht, ohne dies zu tun. Jetzt sollte die Abfrage der itms-services-URL folgendermaßen aussehen:itms-services://?action=download-manifest&url=https%3A%2F%2Fdl.dropboxusercontent.com%2Fs%2FYourShortDropboxLink.plist

  5. Laden Sie die HTML-Datei unter http auf Ihren Server hoch. Beachten Sie, dass die HTML-Datei sowohl Links zu IPA- als auch Bereitstellungsdateien enthält.

  6. Zugriff auf Ihre HTML-Datei von Ihrem Gerät und jetzt kann die IPA von OTA wie gewohnt installiert werden.

Ab sofort muss nur noch die ipa-Datei geändert werden, um Ihren Betatestern die nächsten App-Versionen von OTA bereitzustellen. Bis Apple die Sicherheitsregeln noch ändert.

Ich trete hier nach der sehr einfachen HTML-Datei bei, die ich verwende:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>iPhone app for test</title>
</head>
<body>
<h1>iPhone app for test</h1>
<br/>
<ul>
    <li><a href="http://www.yourdomain.com/with/directories/provision/v.last/yourprovision_adhoc.mobileprovision">
            Install Provisioning File</a></li>
    <li><a href="itms-services://?action=download-manifest&url=https%3A%2F%2Fdl.dropboxusercontent.com%2Fs%2FYourShortDropboxLink.plist">
            Install Application</a></li>
</ul>
</body>
</html>
Lisarien
quelle
1
Zu Ihrer
Information
0

Unser Team verwendet Dropbox für die Ad-hoc-Verteilung, die https verwendet, aber unsere App konnte nicht installiert werden. Nach vieler Fehlersuche erkennen wir , dass das Titelfeld auch erforderlich ist. Wann immer wir einen Link ohne dieses Feld verschickten, ignorierte Safari den Link und forderte den Benutzer nicht zur Installation auf. Manchmal haben wir für schnelle Entwicklungstests den Titelknoten in der XML übersprungen und ihn nicht ausgefüllt. Falls dies für Personen mit diesem Problem hilfreich ist, stellen Sie sicher, dass Ihre .plist die folgenden Knoten enthält:

      ....
     <string>software</string>
    <key>title</key>
     <string>Your App Name</string>
      ...
user2325031
quelle
0

Nachdem ich diesen Beitrag gelesen hatte, hatte ich immer noch ein Problem beim Herunterladen meiner App. Das Problem lag am selbstsignierten SSL-Zertifikat.

Ich habe eine Lösung für dieses Problem gefunden. Sie müssen Ihre Zertifikatdatei mit der Erweiterung '.crt' im Web hochladen und die Adresse in Ihre mobile Safari eingeben. Das System fragt Sie, ob Sie Ihr Zertifikat zur Liste der vertrauenswürdigen Zertifikate hinzufügen möchten. Nach diesem Vorgang können Sie Ihre Ad-hoc-App installieren.

ArturOlszak
quelle
0

Die universelle Lösung besteht darin, Ihr Gerät an einen Mac anzuschließen und zu beobachten, was während der Installation vor sich geht. Ich habe eine Fehlermeldung erhalten:

Download-Manifest mit zugrunde liegendem Fehler konnte nicht geladen werden: Fehler Domain = NSURLErrorDomain Code = -1202 "Verbindung zum Store kann nicht hergestellt werden" UserInfo = 0x146635d0 {NSLocalizedDescription = Verbindung zum Store kann nicht hergestellt werden, NSLocalizedRecoverySuggestion = Möchten Sie trotzdem eine Verbindung zum Server herstellen?, NSLocalizedFailureReason = Eine sichere Verbindung konnte nicht hergestellt werden. Bitte überprüfen Sie Ihre Datums- und Uhrzeiteinstellungen. , NSErrorFailingURLStringKey = https://myserver.com/app/manifest.plist , NSUnderlyingError = 0x14678880 "Das Zertifikat für diesen Server ist ungültig. Möglicherweise stellen Sie eine Verbindung zu einem Server her, der vorgibt," myserver.com "zu sein gefährdete vertrauliche Informationen. ", NSURLErrorFailingURLPeerTrustErrorKey =, NSErrorFailingURLKey =https://myserver.com/app/manifest.plist }

In diesem Fehler war sogar der Vorschlag enthalten, die Datumseinstellungen zu überprüfen. Aus irgendeinem Grund war das Datum der 1. Januar 1970. Das Einstellen des richtigen Datums löste das Problem.

Beryllium
quelle
-1

Apter versucht , ändern itms-services://?action=download-manifest&url=http://....zu itms-services://?action=download-manifest&url=https://..... Es kann auch nicht funktionieren. Die Warnung ist cannot connect to my domain. Ich finde heraus, dass auch die Webseite aktualisiert werden muss.

Das Problem ist nicht, dass die Haupt-URL HTTPS ist, sondern ein Teil des HTML-Codes in einem Link innerhalb der Seite. Sie benötigen Ihre Entwickler, um die Webseite zu aktualisieren. Ich habe auch festgestellt, dass in Ihrer Staging-Domäne kein gültiges SSL-Zertifikat vorhanden ist. Daher müssen Sie eines installieren oder Dropbox verwenden. Hier ist der Link, der möglicherweise für Sie hilfreich ist

Lee
quelle