it-swarm.com.de

Xcode 6 - Auswahl des Signaturzertifikats / Bereitstellungsprofils für die Ad-Hoc-Verteilung

Um die App an unsere Tester zu verteilen, verwenden wir Xcode. Dabei gehen wir wie folgt vor:

  • Anwendung archivieren
  • Verteilen für Ad-hoc
  • Wählen Sie das Bereitstellungsprofil
  • Speichern Sie die .ipa in einem Ordner

Aber mit Xcode 6 wurde dieser Workflow ein wenig geändert. Ich kann weiterhin die Option für die Ad-hoc-Verteilung auswählen, aber ich kann das gewünschte Bereitstellungsprofil nicht auswählen. Dies gibt uns keine Kontrolle darüber, welches Signaturzertifikat verwendet wird und welches Bereitstellungsprofil konfiguriert wird (wir verwenden Push-Benachrichtigungen).

Standardmäßig iPhone distribution Signatur Identität wird verwendet und irgendeine Art von XC Ad Hoc Bereitstellungsprofil wird generiert, das auf dem folgenden Bild zu sehen ist:Exporting IPA Wenn Sie auf den Pfeil neben dem Bereitstellungsprofil klicken, wird der Ordner mit den Bereitstellungsprofilen geöffnet.

Meine Frage lautet also:

Gibt es in Xcode 6 eine Möglichkeit, das Bereitstellungsprofil für die Ad-hoc-Verteilung auszuwählen?

Vielen Dank!

143
Legoless

Ich hatte das gleiche Problem, das mithilfe des Befehlszeilenskripts "xcodebuild" behoben wurde, das mit XCode6 vorinstalliert ist (XCode5 musste nicht erneut installiert werden).

http://www.thecave.com/2014/09/16/using-xcodebuild-to-export-a-ipa-from-an-archive/

Skript im Terminal:

xcodebuild -exportArchive -archivePath $projectname.xcarchive -exportPath $projectname -exportFormat ipa -exportProvisioningProfile 'Provisioning Profile Name'
52
Aqib Mumtaz

Ich hatte ein ähnliches Problem beim Senden an den App Store. Ich habe ein Archiv erstellt, dann auf "Senden" geklickt und Xcode wollte automatisch mit dem Standard-Wildcard-Bereitstellungsprofil "XC com. *" Anstelle des bereits vorhandenen expliziten Profils signieren.

Um dies zu beheben, habe ich das Profil im Apple Developer Portal neu generiert:

1) Gehen Sie zu developer.Apple.com und suchen Sie das gewünschte Verteilungsbereitstellungsprofil.
2) Wählen Sie es aus, klicken Sie auf "Bearbeiten", benennen Sie das Profil um und klicken Sie auf "Generieren".
3) Laden Sie das Bereitstellungsprofil auf den Desktop herunter und ziehen Sie es auf das Xcode 6-Symbol.
4) Starten Sie Xcode 6 neu.
5) Öffnen Sie das Organizer-Fenster und klicken Sie in dem von Ihnen erstellten Archiv auf "Senden". Xcode wählt automatisch Ihr explizites Profil anstelle des generischen Profils aus.

31
GingerBreadMane

Sobald Sie im Organizer sind

  • Wählen Sie den Ad-hoc-Build aus und klicken Sie auf "Exportieren ...".
  • Wählen Sie "Für Ad-hoc-Bereitstellung speichern" -> "Weiter"
  • Anstatt eine Organisation aus der Dropdown-Liste auszuwählen, wählen Sie "Lokales Signatur-Asset verwenden" -> "Auswählen"
  • Exportieren und speichern Sie .ipa wie zuvor.

Natürlich müssen Sie das Ad-hoc-Bereitstellungsprofil erstellt, heruntergeladen und installiert haben.

27
MrPatol

Es scheint, dass das zuletzt generierte Bereitstellungsprofil gerade gewinnt. Sie können das gewünschte Profil also einfach neu generieren und herunterladen. Xcode verwendet es dann.

Ein etwas besserer Ansatz: Stellen Sie das gewünschte prov-Profil in Ihrem Ziel ein und verwenden Sie die Befehlszeile, um Ihr ipa zu erstellen, das funktioniert auch.

Hier ist das Skript, das ich verwende:

#!/bin/sh

# Current as working as of 2014/09/22
# Xcode 6

OUTPUTDIR="$HOME/build"
APPNAME="your-app"
SCHEME="your-app"
APP_WORKSPACE="$HOME/Path/To/your-app.xcworkspace"

rm "$OUTPUTDIR/$APPNAME.ipa" #deletes previous ipa
xcodebuild -workspace "$APP_WORKSPACE" -scheme "$SCHEME" archive -archivePath "$OUTPUTDIR/$APPNAME.xcarchive"
xcodebuild -exportArchive -exportFormat ipa -archivePath "$OUTPUTDIR/$APPNAME.xcarchive" -exportPath "$OUTPUTDIR/$APPNAME.ipa" 

und meine Einstellungen:

Xcode settings

17
Thorsten

Wenn Sie in Xcode 6 (mindestens 6.1, das ich jetzt verwende) den Export für Ad-hoc-Anwendungen ausführen, überprüft Xcode 6 automatisch, ob ein Bereitstellungsprofil vorhanden ist, das alle im Entwicklerkonto registrierten Geräte enthält und gleichzeitig mit der Bundle-ID übereinstimmt . Wenn nein, wird das XC-Bereitstellungsprofil verwendet. Wenn Sie also beispielsweise Ihr eigenes Profil für die Push-Benachrichtigung verwenden möchten, müssen Sie alle Geräte in Ihrem Profil im Apple Entwicklerportal) auswählen. Ich denke, das ist der Grund warum manche Leute das Profil neu erstellen würden und andere nicht.

übrigens kann ein Skript exportiert und zu Testflight hochgeladen werden, aber das Gerät kann es einfach nicht herunterladen. wahrscheinlich irgendwo habe ich mich geirrt. Wenn jemand weiß, warum es ist, lass es mich wissen. tks

8
AlexHsieh

Ich konnte das auch nicht herausfinden - habe mich beim Senden an den AppStore daran gewöhnt, wo standardmäßig ein Platzhalterprofil verwendet wurde.

Am Ende baute ich Xcode 6 ein und kehrte dann zum Fenster "Organizer" von Xcode 5 zurück, um ihn einzureichen. Auf diese Weise werden Sie aufgefordert, ein Profil auszuwählen, mit dem Sie sich anmelden möchten.

Das hat bei mir funktioniert:

  1. klicken Sie im Dialogfeld ".. ein Entwicklungsteam auswählen .." auf "Konten anzeigen ..".
  2. klicken Sie auf "Details anzeigen" und suchen Sie das XC Ad-Hoc-Bereitstellungsprofil.
  3. klicken Sie mit der rechten Maustaste auf dieses Profil und wählen Sie "Im Finder anzeigen".
  4. löschen Sie das ausgewählte Profil.
  5. kehren Sie zum Dialogfeld in Schritt 1 zurück.
  6. klicken Sie auf "Auswählen".
  7. klicken Sie auf den Pfeil neben dem Bereitstellungsprofil, um das Verzeichnis mit den Bereitstellungsprofilen zu öffnen.
  8. löschen Sie das generische Profil erneut wie in Schritt 4.
  9. klicken Sie im Dialogfeld "[Anwendungsname] an Apple senden:" auf die Schaltfläche "Zurück".
  10. wählen Sie erneut "Für Ad-hoc-Bereitstellung speichern".
  11. klicken Sie erneut auf die Schaltfläche "Auswählen".

Jetzt sollte der Name des richtigen Bereitstellungsprofils angezeigt werden.

7
user3382891

Ich habe eine Problemumgehung dafür, die für mich funktioniert.

Ich habe sowohl Xcode 6 als auch Xcode 5.1.1 installiert, Xcode 6 befindet sich in Applications und Xcode 5.1.1 befindet sich in einem anderen Verzeichnis. Wenn ich ein Build erstellen möchte, benutze ich Xcode 6, um das Archiv zu erstellen. Sie können das erstellte Archiv jedoch auch in Xcode 5.1.1 anzeigen, sodass ich Xcode 5.1.1 verwende, um die Ad-hoc-IPA-Datei mit dem gewünschten Bereitstellungsprofil zu verteilen. Also mit Xcode 6 bauen, aber mit Xcode 5.1.1 verbreiten.

6
Adam Freeman

Die Verwendung lokaler Signatur-Assets beim Export löste das Problem für mich: enter image description here

4

Die Antwort von @MrPatol hat bei mir nicht funktioniert. Mein Arbeitsszenario für Xcode 6.3.2

Im Mitgliedercenter -> iOS-Bereitstellungsprofile

  • Löschen Sie das Bereitstellungsprofil, das standardmäßig festgelegt wurde, als Sie versuchten, die App zu erstellen (z. B. "XC ..."). Erstellen Sie ein Ad-hoc-Bereitstellungsprofil (nicht Produktion) mit einem Kurznamen.

Im iPhone-Konfigurationsdienstprogramm -> Bereitstellungsprofile

  • Löschen Sie dasselbe Bereitstellungsprofil (z. B. "XC ...").

In Xcode -> Organizer

  • Wählen Sie den Ad-hoc-Build aus und klicken Sie auf "Exportieren ...". Wählen Sie "Für Ad-hoc-Bereitstellung speichern" -> "Weiter"
  • Wählen Sie eine Organisation aus der Dropdown-Liste aus
  • Stellen Sie sicher, dass Ihr neues Ad-hoc-Bereitstellungsprofil automatisch ausgewählt wird
  • Exportieren und speichern Sie .ipa wie zuvor.
3
Serge Seletskyy

Hier sind die beiden wichtigsten Punkte, die das Problem für mich gelöst haben.

  • Wenn Sie das Bereitstellungsprofil generieren, muss es mit einer Explicit App ID verknüpft sein, die dieselbe Paket-ID wie Ihre App verwendet. Eine Platzhalter-App-ID funktioniert nicht.
  • Wenn Sie die App für die Ad-hoc-Bereitstellung exportieren, wählen Sie Lokales Signatur-Asset verwenden in der Dropdown-Liste aus und klicken Sie auf Auswählen.

Xcode findet dann das richtige Bereitstellungsprofil, indem die App-ID mit der Bundle-ID der App abgeglichen wird.

2
Sarah Elan

Tatsächlich müssen Sie ein neues Verteilungsprofil speziell für die Ad-hoc-Bereitstellung erstellen. Dies ist im klassischen Mitgliedercenter zu finden, es handelt sich jedoch um eine neue Art von Zertifikat.

Sie können dann auswählen, auf welchen Geräten die App wie mit einem Entwicklerprofil getestet werden kann.

Das neu erstellte Zertifikat ist verfügbar, wenn Sie Ihr Paket auf die übliche Weise aus dem Organizer exportieren.

Alternativ können Sie die TestFlight-Lösung von Apple mit iOS 8) verwenden, um Ihrem Benutzer den Zugriff auf die Vorabversion zu ermöglichen.

enter image description here

1
cdescours

Ich hatte das gleiche Problem, schließlich löste ich es, indem ich das Profil, das ich in Xcode 6 verwenden wollte, einschließlich aller Geräte, die ich auf meinem iOS-Dev-Konto registriert habe, neu erstellte. Auf diese Weise wird beim Auswählen von Exportieren das richtige Profil und ich angezeigt kann den Ad-hoc-Export mit Xcode 6 ohne Verwendung eines Skripts ausführen. Ich hoffe es hilft.

1
diegomen
  1. Ich denke, es ist eine richtige Möglichkeit, eine -exportOptionsPlist-Option nach Xcode 7 anzugeben. Dabei werden die richtigen Bereitstellungsdateien wie beim GUI-Export ausgewählt, unabhängig davon, was Sie in den Projekteinstellungen angegeben haben.

xcodebuild -exportArchive -archivePath $ Archive_Path -exportPath $ LOCAL_PACKAGE_DIR -exportOptionsPlist $ Export_Plist_Path

die optionPlist-Datei sieht folgendermaßen aus:

<dict>
  <key>teamID</key>
        <string>MYTEAMID123</string>
        <key> teamID </key>
        <string>app-store</string>
        <key>uploadSymbols</key>
        <true/>
</dict>


<plist>

app-Store, Enterprise, Ad-hoc, Entwicklung sind Alternativen

  1. Möglicherweise tritt nach oben ein weiterer Fehler auf.

Fehlerdomäne = IDEDistributionErrorDomain Code = 14 "Keine zutreffenden Geräte gefunden." UserInfo = {NSLocalizedDescription = Keine zutreffenden Geräte gefunden.}

Es ist ein Ruby Problem. Probieren Sie dieses Shell-Skript aus, xcbuild-safe.sh

xcbuild-safe.sh xxxxNormalOptionsInXcodebuild bla...
  1. Warten Sie einen Moment, ein weiterer seltsamer Fehler tritt auf.

xcbuild-safe.sh: Zeile 62: Shell_session_update: Befehl nicht gefunden

Was ist die Hölle Shell_session_update? Lassen Sie uns das umgehen. Definieren Sie einfach eine Funktion vor dem tatsächlichen xcodebuild cmd, und zwar in der Zeile 60 oder 61.

function Shell_session_update() { :; }
0
Victor Choy

Ich bin eine Weile damit festgefahren, aber mit Crashlytics habe ich es gelöst und es mit dem ausgewählten Profil in den Build-Einstellungen Ihres Xcode-Projekts verteilt.

hoffe es hilft jemandem.

0
M.Othman

Fast das gleiche Problem. Nachdem Sie ein Archiv für die Verteilung erstellt haben (Produkt> Archiv), exportieren Sie das Archiv (klicken Sie auf Exportieren ...) und wählen Sie "Für Enterprise-Bereitstellung speichern". Dann als nächstes". Anschließend wählen Sie die Standardeinstellung "Entwicklungsteam" (z. B. Organisationsname) und klicken auf "Auswählen". Abschließend wird eine Zusammenfassungsansicht angezeigt, in der auch das Bereitstellungsprofil aufgeführt ist, das Xcode automatisch für Sie gefunden hat (möglicherweise im laufenden Betrieb erstellt). Dies KANN das falsche Bereitstellungsprofil sein (in der Regel ein Platzhalter-Bereitstellungsprofil wie "XC: *"), und es kann vorkommen, dass sich bereits ein Platzhalter-Bereitstellungsprofil im Entwicklerportal befindet. Das Wildcard-Bereitstellungsprofil KANN von einem anderen älteren Projekt verwendet werden. Vielleicht ist es nicht ratsam, das Wildcard-Bereitstellungsprofil einfach aus dem Entwicklerportal zu entfernen.

Ich habe dafür ein Support-Ticket verwendet und nur diesen Link zurückbekommen https://developer.Apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html#//Apple_ref/doc/uid/TP40012582-CH32-SW1 . Keine große Hilfe.

Ich habe festgestellt, dass die Lösung von MrPatol auch für Enterprise Deployment as funktioniert gut und löst das Problem für uns. Ich habe mich zuerst beim Entwicklerportal angemeldet und manuell ein für meine App geeignetes Bereitstellungsprofil erstellt. Laden Sie dann das neue manuell erstellte Bereitstellungsprofil herunter und installieren Sie es.

0
sejersbol

In xcode 7 konnte ich keine Ad-hoc-Bereitstellung über auswählen

Organizer -> In App Store & Organizer hochladen -> Überprüfen

Aber ich könnte wählen über Organizer -> Export

Bearbeitet:

Das Hochladen der App nach dem Export für Ad-hoc in den App Store für TestFlight verursachte ein anderes Problem, das angesprochen wurde hier . Die Lösung für beide Probleme ist also eine. Erstellen Sie eine AppStore-Bereitstellung, um sie über den Organizer auswählen zu können, und verwenden Sie testFlight, indem Sie sie in den AppStore hochladen.

0
zeeawan