XCode 6 - Come scegliere il profilo del certificato / del provisioning della firma per la distribuzione ad hoc?

StackOverflow https://stackoverflow.com//questions/25056144

  •  21-12-2019
  •  | 
  •  

Domanda

Per distribuire l'app ai nostri tester che utilizziamo XCode, che utilizziamo il seguente processo:

    .
  • APPLICAZIONE ARCHIVIO
  • Distribuisci per ad-hoc
  • Scegli il profilo di provisioning
  • Salva il .ipa in una cartella

Ma con Xcode 6 , questo flusso di lavoro è stato cambiato un po '. Posso ancora selezionare l'opzione di distribuzione ad-hoc, ma non riesco a selezionare il profilo di provisioning che voglio. Questo non ci dà alcun controllo su cui viene utilizzata il certificato di firma e la configurazione del profilo di provisioning (utilizziamo le notifiche push).

Per impostazione predefinita iPhone distribution L'identità della firma è utilizzata e viene generata una sorta di profilo di provisioning XC Ad Hoc, che può essere visto sull'immagine sottostante: Esportazione IPA Se si fa clic sulla freccia vicino al profilo di provisioning, apre la cartella con profili di provisioning.

Quindi la mia domanda è:

C'è qualche modo in Xcode 6 per selezionare il profilo di provisioning utilizzato con la distribuzione ad hoc?

Grazie!

È stato utile?

Soluzione

Mi stava affrontando lo stesso problema, risolto utilizzando lo script utensile "XCodebuild" della riga di comando, che è preinstallato con XCode 6 (non è necessario reinstallare XCode 5).

http://www.thecave.com/2014/09/16/Uding-xCodeBuild-To-Export-a-ipa-from-an-Archive/

Script nel terminale:

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

Altri suggerimenti

Ho avuto un problema simile quando si invia all'App Store.Ho creato un archivio, quindi ha fatto clic su "Invia" e Xcode voleva firmare automaticamente con il profilo di provisioning di "xc com. *" Predefinito invece del profilo esplicito che ha già avuto.

Per risolvere questo problema, ho appena nuovamente re-generato il profilo sul portale Developer Apple:

1) Vai a sviluppatore.apple.com e trova il profilo di provisioning della distribuzione che desideri utilizzare.
2) Selezionalo, fai clic su "Modifica", reinserire il profilo e fai clic su "Genera".
3) Scarica il profilo di provisioning sul desktop e trascinalo sull'icona XCode 6.
4) Re-start xcode 6.

5) Aprire la finestra Organizzatore e fare clic su "Invia" sull'archivio che hai costruito.Xcode selezionerà automaticamente il tuo profilo esplicito anziché quello generico.

Una volta che sei in Organizer

    .
  • Seleziona la build ad-hoc e fai clic su "Esporta ...."
  • Seleziona "Salva per la distribuzione ad hoc" -> Avanti
  • invece di selezionare un'organizzazione dal menu a discesa Seleziona "Usa Asset di firma locale" -> Scegli
  • Esporta e salva .ipa come prima.

certo che è necessario aver generato, scaricato e installato il profilo di provisioning ad hoc.

Sembra che l'ultima generazione del profilo di provisioning vinca adesso.Quindi puoi semplicemente re-generare il profilo che desideri e scaricandolo e Xcode lo userà.

Un approccio leggermente migliore: impostare il profilo Pro Profitto desiderato nel target e utilizzare la riga di comando per costruire il tuo IPA, anche che funziona.

Ecco lo script, sto usando:

#!/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" 
.

e le mie impostazioni:

Impostazioni Xcode

Non sono riuscito a capire neanche questo - ottenuto da esso quando si invia all'AppStore, dove è inadempiente su un profilo jolly.

Ho finito edificio in Xcode 6, quindi tornare alla finestra dell'organizzatore di Xcode 5 per la presentazione.In questo modo ti chiederà di scegliere un profilo da firmare con.

In XCode 6 (almeno 6.1 Sto usando ora) Quando si esegue l'esportazione per ad hoc, Xcode 6 si scansiona automaticamente se è presente alcun profilo di provisioning contiene tutti i dispositivi registrati nell'account sviluppatore e allo stesso tempo corrispondonol'ID del bundle.Se no, utilizzerà il profilo di fornitura XC.Pertanto, se si desidera utilizzare il proprio profilo, ad esempio, ai fini della notifica push, è necessario selezionare tutti i dispositivi nel tuo profilo su Apple Developer Portal.Immagino che sia la ragione per cui alcune persone ricreano il profilo funzionerebbero e alcuni non lo farebbero.

BTW, utilizzare lo script può esportare e caricare su TestFlight, ma il dispositivo non può semplicemente scaricarlo.Probabilmente da qualche parte ho sbagliato.Se qualcuno sa perché è, fammelo sapere.TKS

Questo ha funzionato per me:

    .
  1. Fai clic su "Visualizza account .." Entro il "..Seleziona un team di sviluppo ..." Dialog.
  2. Fare clic su "Visualizza dettagli ..." e trova il profilo di provisioning ad hoc xc.
  3. Fare clic con il tasto destro del mouse su quel profilo e scelto "Mostra in Finder".
  4. Elimina il profilo selezionato.
  5. Torna alla finestra di dialogo al punto 1.
  6. Fai clic su "Ho scelto".
  7. Fare clic sulla freccia vicino al profilo di provisioning per aprire il provisioning Directory dei profili.
  8. Elimina nuovamente il profilo generico come al punto 4.
  9. Fare clic sul pulsante "Previous" dal dialogo "Invia [nome dell'applicazione] alla finestra di dialogo Apple:".
  10. Seleziona nuovamente "Salva per la distribuzione ad hoc"
  11. Clicca di nuovo il pulsante "Scegli".
  12. Ora dovresti vedere il nome del profilo del provisioning giusto.

Ho una soluzione alternativa per questo che funziona per me.

Ho installato sia Xcode 6 e Xcode 5.1.1, Xcode 6 è in applicazioni e Xcode 5.1.1 è in un'altra directory.Quando voglio fare una build, uso xcode 6 per creare l'archivio.Ma è anche possibile visualizzare l'archivio creato in Xcode 5.1.1, quindi uso Xcode 5.1.1 per distribuire l'ad hoc .ipa usando il profilo di provisioning che voglio usare.Quindi crea utilizzando XCode 6 ma distribuisci utilizzando Xcode 5.1.1.

Utilizzo delle attività di firma locali durante l'esportazione Risolto il problema per me:  Inserire l'immagine Descrizione qui

La risposta da @mrpatol non ha funzionato per me. Il mio scenario di lavoro per Xcode 6.3.2

nel centro membri -> Profili di provisioning iOS

    .
  • Elimina il profilo di provisioning che è stato impostato per impostazione predefinita quando si stava cercando di creare l'app (ad esempio "XC ...").Creare un profilo di provisioning ad-hoc (non la produzione) con un nome breve.

in Iphone Configuration Utility -> Profili di provisioning

    .
  • Elimina lo stesso profilo di provisioning (ad esempio "XC ...")

in XCode -> Organizer

    .
  • Seleziona la build ad-hoc e fai clic su "Esporta ...." Seleziona "Salva per la distribuzione ad hoc" -> Avanti
  • Seleziona un'organizzazione dal menu a discesa
  • Verifica che il tuo nuovo profilo di provisioning ad hoc sia selezionato automaticamente
  • Esporta e salva .ipa come prima.

Ecco i due punti chiave che hanno risolto il problema per me.

    .
  • Quando si genera il profilo di provisioning, è necessario collegarsi a un ID app esplicito che utilizza lo stesso identificatore di bundle come app.Un ID app Wildcard non funzionerà.
  • Quando si esporta l'app per la distribuzione ad-hoc, selezionare Utilizzare Asset di firma locale nel menu a discesa e fai clic su Scegli.

Xcode troverà quindi il profilo di provisioning corretto corrispondendo all'ID dell'app con l'identificatore del bundle dell'app.

In effetti, è necessario creare un nuovo profilo di distribuzione, specifico per la distribuzione ad hoc.Questo può essere trovato nel classico centro membri, ma è un nuovo tipo di certificato.

È quindi possibile selezionare quali dispositivi possono essere utilizzati per testare l'app come o ou farebbe con un profilo sviluppatore.

E il certificato appena creato sarà disponibile quando si esporta il pacco dall'organizzatore il solito modo.

In alternativa è possibile utilizzare la soluzione TestFlight fornita da Apple con iOS 8 per consentire all'utente di avere accesso a Prerelease.

Inserisci Descrizione dell'immagine qui

Ho avuto lo stesso problema, finalmente ho risolto il rigenerazione del profilo che volevo usare in Xcode 6, inclusi tutti i dispositivi che ho registrato sul mio account IOS Dev, facendolo in questo modo, quando si seleziona l'esportazione mostra il correttoProfilo e posso eseguire l'esportazione ad hoc con XCode 6 senza utilizzare uno script.Spero che aiuti.

Sono stato bloccato per un po 'con questo, ma usando arrechytics lo ha risolto, costruire distribuiti utilizzandoIl profilo selezionato nelle impostazioni di compilazione del progetto Xcode.

Spero che aiuti qualcuno.

quasi lo stesso problema. Dopo aver creato un archivio per la distribuzione (prodotto> Archivio) esporti l'archivio (fare clic su Export ...) e scegli "Salva per la distribuzione aziendale"; Quindi "Avanti". Quindi seleziona il "Team di sviluppo" predefinito (E.G. Nome organizzazione) e fai clic su "Scegli". Infine, ti verrà presentato una visione di riepilogo che elenca anche il profilo di provisioning che Xcode ha trovato automaticamente (forse creato al volo) per te. Questo potrebbe essere il profilo di provisioning sbagliato (in genere un profilo di provisioning jolly, come "xc: *") e potrebbe accadere perché c'è già un profilo di provisioning jolly sul portale dello sviluppatore. Il profilo del provisioning wildcard potrebbe essere utilizzato da un altro progetto precedente e forse non è saggio semplicemente rimuovere il profilo di provisioning jolly dal portale dello sviluppatore.

Ho usato un ticket di supporto per questo e ho ricevuto questo link https://developer.apple.com/library/ios/documentation/ides/conceptualpual/appdistributificUide/configuringPushNotifications.Html#//apple_ref / DOC / UID / TP40012582-CH32-SW1 . Non proprio un grande aiuto.

Ho trovato che la soluzione MrPatol funziona anche per Enterprise Deployment e risolve anche il problema per noi. Ho registrato per la prima volta il portale dello sviluppatore e crea manualmente un profilo di provisioning adatto alla mia app. Quindi scaricato e installato il nuovo profilo di provisioning creato manualmente.

In Xcode 7, non potrei essere in grado di scegliere il provisioning adhoc tramite

Organizzatore -> Carica su App Store & Organizer -> Convalida

Ma potrei scegliere tramite Organizer -> Esporta

Modificato:

Caricamento dell'app dopo l'esportazione per ADHOC a App Store per TestFlight ha causato un altro problema discusso qui .Quindi, soluzione per entrambi questi problemi è uno. Crea AppStore Provisioning per essere in grado di sceglierlo tramite organizzatore e utilizzare testflight caricando su AppStore.

    .
  1. Penso che sia un modo giusto per specificare un'opzione del -ExportOptionsPlist dopo Xcode 7. Sceglierà i file di disposizione giusta come nell'esportazione della GUI, indipendentemente da ciò specificato nell'impostazione del progetto.
  2. .

    xcodebuild -ExportArchive -ArchivePath $ Archivio_path -Exportpath $ Local_package_dir -Exportoptionsplist $ export_plist_path

    File OptionPlist è come questo,

    .

    <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, lo sviluppo è alternativo

    1. Ma puoi incontrare un altro errore dopo sopra.
    2. .

      Error Domain= IDEDISTRIZERURDOMAIN CODICE= 14 "NO APPLICABILE Dispositivi trovati. "Userinfo= {nslocalizeddescription= No dispositivi applicabili trovato.}

      È un problema rubino. Prova questo script di shell, xcbuild-safe.sh

      xcbuild-safe.sh xxxxNormalOptionsInXcodebuild bla...
      
      .

      1. Attendi un momento, arriva un altro errore strano.
      2. .

        xcbuild-safe.sh: linea 62: shell_session_update: comando non trovato

        Cos'è l'inferno shell_session_update? Lasciaci lavorare intorno. Basta definire una funzione prima del vero XCodebuild Cmd, vale a dire sulla linea 60 o 61.

        function shell_session_update() { :; }
        
        .

In answer to your specific question, no there is no way to select the provisioning profile to be used. What are you attempting to do? (i.e. what does the profile that you want to select allow that the automatically generated one doesn't?)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top