Il mio cliente ha un'app per iOS con acquisti in-app, kit di giochi e notifiche push attivati, è attualmente nell'app store. Vorrei dimettermi dall'applicazione utilizzando un certificato di distribuzione aziendale interno, per testare internamente, ma essere ancora in grado di testare i servizi legati al profilo di provisioning originale. È possibile?Revoca di un profilo di provisioning iOS
risposta
ho finito per fare questo, che è una combinazione di: -
e
1) Creare Entitlements plist, prevenire problemi con il portachiavi ecc
<?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>application-identifier</key>
<string>GBA9L2EABG.com.your.bundle.id.MyApp</string>
<key>get-task-allow</key>
<false/>
</dict>
2) decomprimere l'IPA
unzip Application.ipa
3) Rimuovere la vecchia firma codice
rm -r "Payload/Application.app/_CodeSignature" "Payload/Application.app/CodeResources" 2> /dev/null | true
4) Sostituire incorporato profilo di provisioning cellulare
cp "MyEnterprise.mobileprovision" "Payload/Application.app/embedded.mobileprovision"
5) Resign
/usr/bin/codesign -f -s "iPhone Distribution: Certificate Name" --resource-rules "Payload/Application.app/ResourceRules.plist" --entitlements Entitlements.plist "Payload/Application.app"
6) Re-pacchetto
zip -qr "Application.resigned.ipa" Payload
Giusto per aggiungere un po 'per la risposta di Koko Carl, se si esegue in problemi con codesign_allocate quando si arriva al punto 5 (Resign), prova a esportare una variabile di shell CODESIGN_ALLOCATE e assegnagli un percorso per assegnare il codesign all'interno dell'SDK di iPhone. Per fare questo, assicurarsi di avere gli strumenti della riga di comando Xcode installati (Preferenze/Aggiornamenti in Xcode)
Per esempio, mi è stato sempre l'errore:
me$ /usr/bin/codesign -f -v -s "iPhone Distribution: Some Company, Inc" --resource-rules "Payload/MyApp.app/ResourceRules.plist" --entitlements Entitlements.plist "Payload/MyApp.app"
uscita:
Payload/MyApp.app: replacing existing signature
codesign_allocate: object: /Users/mimio/Downloads/Payload/MyApp.app/MyApp malformed object (unknown load command 33)
Payload/MyApp.app: object file format unrecognized, invalid, or unsuitable
Per risolvere questo, ho impostato la variabile in questo modo:
me$ export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
E poi ha eseguito di nuovo il mio comando:
me$ /usr/bin/codesign -f -v -s "iPhone Distribution: Some Company, Inc" --resource-rules "Payload/MyApp.app/ResourceRules.plist" --entitlements Entitlements.plist "Payload/MyApp.app"
E voilà! Tutto ha funzionato correttamente con il nuovo codesign_allocate
Per rassegnare le dimissioni a un app un po 'più facile di quello che ha detto @Koko Carl, abbiamo adattato lo script floatsign, che può essere trovato su https://gist.github.com/Weptun/5406993. rende il processo molto semplice:
sh floatsign.sh ~/Downloads/File.ipa "iPhone Distribution: CertificateName" -b new.bundle.id -p /Path/To/Profile/Appstore.mobileprovision App-resigned.ipa
Avviso: --resource-rules è stato deprecato in Mac OS X> = 10.10! temp/Payload/Application.app/ResourceRules.plist: impossibile leggere le risorse Ha avuto un errore, interrompendo! –
Quando cercato questa è la prima domanda shownup nel flusso stackover. Voleva quindi essere aggiornato con l'ultima app mac di iResign, che rende il lavoro estremamente semplice con la GUI al posto dei comandi nel terminale.
iReSign
iReSign permette fasci iDevice app (.ipa) file da firmare né rassegnati con un certificato digitale da Apple per la distribuzione. Può anche creare file di pacchetti di app iDevice firmati (.ipa) da file .xcarchive. Questo strumento è rivolto agli utenti aziendali, per la distribuzione aziendale, quando la persona che firma l'app è diversa dalla persona che lo sviluppa.
Come utilizzare
iReSign permette di ri-firmare qualsiasi ipa-file non criptato con qualsiasi certificato per il quale si tiene la chiave privata corrispondente. iResign può anche creare un file ipa firmato da un file xcarchive.
Trascinare il file .ipa o .xcarchive senza segno nella casella in alto o utilizzare il pulsante Sfoglia.
Immettere il nome completo del certificato da Accesso Portachiavi, ad esempio "Sviluppatore iPhone: Nome Cognome (XXXXXXXXXX)" nella casella in basso.
Fare clic su ReSign! e aspetta. Il file dimesso verrà salvato nella stessa cartella del file originale.
Hai la stessa risposta su 4 domande diverse. Se è possibile rispondere alla domanda con la stessa risposta, è necessario contrassegnarla come duplicata e non come risposta post duplicata. – NathanOliver
Perfetto per ri-firmare un ipa inviato all'App Store. Basta trovare i profili e il certificato giusti (se ne hai più di uno). Ho lasciato il file entitlement.plist vuoto, sembra creare un tempo uno se non lo si trova. Poi ho installato il mio ipa dimesso usando iMazing. Ora posso ricontrollare che l'app inviata funzionerà come previsto prima di raggiungere il negozio e/o in attesa di approvazione. –
- 1. Configurazione profilo di provisioning
- 2. profilo di provisioning inferno
- 3. Come incorporare un profilo di provisioning in un'app per iOS
- 4. Profilo di provisioning iOS non installato su un particolare dispositivo
- 5. Posso rimuovere un profilo di provisioning dal portale di provisioning?
- 6. UDID nel profilo di provisioning?
- 7. Profilo di provisioning non trovato
- 8. Installazione del profilo di provisioning su iOS 8.0.2
- 9. iOS in scadenza Profilo di provisioning distribuzione domande
- 10. Aggiornamento profilo di provisioning iOS dopo l'approvazione del certificato
- 11. "Nessun profilo di provisioning trovato" in XCode
- 12. Profilo di provisioning distribuzione di App Store e profilo di provisioning di sviluppo
- 13. Profilo di provisioning per l'estensione Today Widget
- 14. Qual è la differenza tra un profilo di provisioning di sviluppo e un profilo di provisioning ad hoc?
- 15. Un profilo di provisioning di iPhone Enterprise deve specificare UUID del telefono come fa un profilo di provisioning ad hoc?
- 16. Il portale di provisioning iOS visualizza un errore quando si tenta di aggiungere un profilo
- 17. Scadenza profilo di provisioning distribuzione aziendale
- 18. Profilo di provisioning "Team" è "Unknown"
- 19. Nessun profilo di provisioning non scaduto trovato
- 20. Come si verifica se un profilo di provisioning di distribuzione iOS ha abilitato le notifiche push?
- 21. iPhone - rinnovare squadra provisioning profilo
- 22. Codice errore-90161 Profilo di provisioning non valido
- 23. Problema del profilo di provisioning in Xcode 7.1.1?
- 24. Come si aggiunge un dispositivo al profilo di provisioning?
- 25. È possibile installare un profilo di provisioning senza iTunes?
- 26. iOS: impossibile utilizzare il certificato APNS per creare un nuovo profilo di provisioning
- 27. Come creare un'app per iOS utilizzando il profilo di provisioning di distribuzione di terze parti
- 28. Xamarin Nessun profilo di provisioning installato corrisponde alle chiavi di firma del codice iOS installate
- 29. Verifica di codesign fallita dell'applicazione iOS. codesign_wrapper-0.7.10: Impossibile caricare il profilo di provisioning da
- 30. Profilo di provisioning di App Store in scadenza
un comando potrebbe fare questo se ti dimetti il file .app: 'xcrun -SDK iPhoneOS PackageApplication -v "build/ProgettoUtente-iPhoneOS/youAppName.app" -o "output_folder/yourAppName.ipa "--sign" yourCertificateName "--embed" your.mobileprovision "' – Xiao
"GBA9L2EABG.com.your.bundle.id.MyApp" - questo è solo un ID bundle che hai creato, o è quello originale IPA? Anche le notifiche push funzionano se si modifica l'ID bundle dell'app originale? – Leonti
Quando provo a installare l'app ricevendo l'errore come CFBundleExecutable di appName, che non è eseguibile. Ho provato il comando chmod + x su appName.app con lo stesso errore. – Raghav