ATTENZIONE: Per chi pubblica la propria app sull’App Store di Apple o tramite un sistema Mobile Device Management (MDM), si noti che per essere in grado di eseguire il re-signing e poi pubblicare l’app è necessario scaricare ed eseguire la versione aggiornata dello script resign.sh. Questo file è anche allegato al capitolo Re-signing del pacchetto .ipa di questo articolo.
Nota importante: se non si usa la nuova versione del file resign.sh per eseguire il re-signing dell’app non sarà possibile pubblicare la propria app branded.
Introduzione
In piattaforma, la funzionalità Branded Mobile App Publisher di Docebo consente di creare un’app mobile branded per la formazione in movimento dei propri utenti. Gli studenti possono così svolgere il proprio percorso formativo utilizzando un’app personalizzata per la propria azienda.
Fare riferimento a questo articolo che illustra come creare e configurare la propria app branded, generare la build e quindi scaricare il pacchetto per pubblicare la propria versione personalizzata dell’app mobile Go.Learn negli app store. Per conoscere i requisiti tecnici e le informazioni necessarie per creare la propria app branded, consultare questo articolo.
Se si pubblica la propria app nell’App Store di Apple, sarà necessario inviare il modulo di Export Compliance e il rapporto Self-Classification Report for Encryption per essere conforme alle norme del governo USA in materia di crittografia ed esportazione, U.S. Encryption and Export Administration Regulations (EAR). Informazioni aggiuntive su come produrre e presentare questo rapporto sono disponibili in questo articolo.
Questo articolo delinea come effettuare il re-signing, e quindi la pubblicazione, della propria app mobile branded. Una volta creata la propria app branded, prima di pubblicarla nell’app store (Google Play per Android e App Store per iOS) è necessario sostituire la firma digitale temporaneamente applicata da Docebo con la propria firma generata internamente (per Android) o con il certificato assegnato dall’App Store (per iOS).
Se non si applica la nuova firma, il pacchetto non può essere caricato nell’app store. Fare riferimento alle sezioni successive di questo articolo per ulteriori informazioni sul processo di re-signing per Android e per iOS.
Si noti che Branded Mobile App Publisher è una funzionalità molto tecnica. Docebo consiglia di contattare un membro del reparto IT della propria azienda per configurare correttamente l’intero processo.
Si noti inoltre che Docebo non è responsabile del contenuto dei documenti esterni scritti da altre aziende (ad es. Apple). Ricordare che è propria responsabilità controllare se questi documenti vengono aggiornati o modificati in alcun modo.
Google Play Store di Android
Il processo di re-signing per Google Play Store di Android è composto da due fasi. Innanzitutto, è necessario creare un keystore se non se ne ha già uno. Se non è la prima volta che si pubblica un’applicazione Android, è possibile utilizzare lo stesso keystore. Quindi, effettuare il re-signing dell’Android Package (APK) o dell’Android App Bundle (AAB), a seconda del formato del pacchetto scelto al momento della configurazione dei dettagli tecnici dell’app nella sezione Impostazioni relativa all’app Android.
Creare un Keystore
Per prima cosa, creare un keystore utilizzando lo strumento Java Keytool fornito con qualsiasi distribuzione JDK standard e che può essere localizzato in %JAVA_HOME%\bin. Su Windows, è solitamente C:\Program Files\Java\jre8\bin., mentre non è necessario preoccuparsi del percorso su Mac OS.
Su Windows, aprire il prompt dei comandi e raggiungere questa directory. Su Mac, è sufficiente aprire il terminale. A questo punto, digitare un comando come questo:
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Keytool richiede di fornire le password per il keystore, quindi si dovranno fornire i campi Distinguished Name: Infine, digitare la password per la chiave (se richiesta). Il keystore viene generato come file chiamato my-release-key.keystore salvato nella directory in cui ci si trova. Il keystore e la chiave sono protette dalle password inserite. Il keystore contiene una chiave singola, valida per 10.000 giorni (si veda il parametro -validity). L’alias è il nome che si utilizzerà in seguito per riferirsi a questo keystore quando si firma la propria applicazione.
Attenzione: salvare il keystore e la password, perché si utilizzeranno ogni volta che si pubblica un aggiornamento.
Per ulteriori informazioni su Keytool, fare riferimento a questo documento di Oracle. È anche possibile trovare un documento dettagliato su questo argomento su Stack Overflow.
Re-signing del pacchetto .aab o .apk
Per riassegnare una firma a un pacchetto AAB o APK, eliminare META-INF dall’AAB o dall'APK e quindi firmarlo di nuovo. Ricordare che non si devono estrarre i file, ma che si deve solamente effettuare una rimozione dall’archivio.
Questo processo può essere svolto in diversi modi: il più rapido prevede l’utilizzo della shell del sistema. Assumiamo che si abbia il file MyApp.aab (o un file MyApp.apk) e il keystore ‘my-release-key.keystore’, l’alias ‘alias_name‘, la password del keystore ’secret’ e la password della chiave ‘password123‘. Se non si ha un keystore, fare riferimento alla sezione precedente in questo articolo (Creare un Keystore) per informazioni su come crearlo. Per eseguire il re-signing del file .aab o .apk, seguire i passi elencati qui sotto:
1. Rimuovere la directory META-INF dall’archivio (sia per Windows che per Mac):
zip -d MyApp.aab META-INF/\* oppure zip -d MyApp.apk META-INF/\*
2. Riallineare l’app per essere conforme ai requisiti tecnici del Play Store. Lo scopo è assicurare che tutti i dati non compressi inizino con un particolare allineamento relativo all’inizio del file (attenzione: seguire questo step solo per i file .apk)
Per Windows:
zipalign -f -v 4 MyApp.apk MyAppAligned.apk
Per Mac:
/Users/{YOUR_USER_NAME}/Library/Android/sdk/build-tools/{SDK_VER}/zipalign -f -v 4 ./MyApp.apk MyAppAligned.apk
3. Firmare di nuovo:
Per Windows:
- AAB
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore ./my-release-key.keystore ./MyAppSigned.aab alias_name
- APK
apksigner sign -v --out ./MyAppSigned.apk --ks ./my-release-key.keystore --ks-key-alias alias_name ./MyAppAligned.apk
Per Mac:
- AAB
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore ./my-release-key.keystore ./MyAppSigned.aab alias_name
- APK
/Users/{YOUR_USER_NAME}/Library/Android/sdk/build-tools/{SDK_VER}/apksigner sign -v --out ./MyAppSigned.apk --ks ./my-release-key.keystore --ks-key-alias alias_name ./MyAppAligned.apk
Non c’è alcun rischio per la sicurezza dalla shell history, perché le password per il keystore e la chiave vengono chieste nella console. Si è ora pronti per caricare questo file .aab nel Google Play Store di Android oppure per distribuire il file .apk.
Pubblicazione
- Ulteriori informazioni su come caricare un'app (dalla guida di Google Play Console)
- Quando si aggiorna la propria app creando una nuova versione dell'applicazione per il Play Store di Android (ma anche quando si crea l'app per la prima volta), seguire queste linee guida per completare il questionario in Google Play Console sui tipi di dati utilizzati nella propria app. Si noti che le linee guida fanno riferimento alla configurazione dell'app Go.Learn, quindi è bene accertarsi di controllare ogni sezione, dato che la propria app potrebbe essere configurata in modo diverso da Go.Learn (ad es., se la propria app non è connessa a Firebase, non compilare le informazioni sull'analitica; se non si utilizza il modulo Discover, Coach & Share, tenerne conto quando si completa il questionario). Chi non ha inviato il modulo visualizzerà un messaggio di avviso nell'area dei messaggi nella Developer Console di Google Play.
App Store di Apple
Prerequisiti
Per eseguire il processo di re-signing per l’App Store di Apple, sono necessari:
Re-signing del pacchetto .ipa
Per eseguire il re-signing del pacchetto iOS .ipa, servono una serie di strumenti che sono disponibili solo su Mac OS X, quindi non è possibile eseguire il re-signing utilizzando un PC Windows. Un file .ipa è un file zip. Per modificarlo è quindi necessario estrarlo, firmarlo di nuovo e poi comprimerlo. Seguire i passi seguenti per eseguire il re-signing del file .ipa:
1. Spostare MyApp.ipa in una cartella a propria scelta
2. Creare e scaricare il nuovo Provisioning profile embedded.mobileprovision dall’Apple Developer Console e salvarlo nella cartella .ipa (si veda il punto 1.). Seguire le indicazioni fornite in questo articolo della KB di Apple.
3. security find-identity fornirà una lista di identità tra le quali scegliere (cercare quella che inizia con "iPhone Distribution"):
security find-identity -v -p codesigning
Il risultato sarà simile al seguente:
-
7D2A35B002F0577B66689713044BF66B4EEAC70F "iPhone Developer: Donald Duck (4J2CJZQ799)
-
C45CFD22CCC7BD2E84ED43D07719D709BC901322 "iPhone Distribution: A.C.M.E. (8YX56B3FLL)
4. Spostare lo script resign.sh nella stessa cartella ed eseguirlo (eseguire lo script senza argomenti per avere più informazioni):
$./resign.sh ./MyApp.ipa ./embedded.mobileprovision “iPhone Distribution: A.C.M.E. (8YX56B3FLL)"
Attenzione: nel caso si riceva l'errore permission denied mostrato nell'immagine qui sotto, eseguire il comando chmod 777 ./resign.sh Dopo di che, eseguire lo script resign.sh Questo file .ipa è ora firmato con il nuovo profilo e si pronti per caricare questo file .ipa nell’App Store di Apple utilizzando l'applicazione Transporter (la si trova nella propria cartella delle applicazioni). Se non si ha ancora Transporter, installarla dal Mac App Store. Fare riferimento a questi articoli (How to re-sign iOS builds, Inside Code Signing e Application Code Signing) per ulteriori informazioni su come riassegnare una firma a un file .ipa di Apple.
Pubblicazione
I seguenti metadati sono necessari per finire di configurare l’app in iTunesConnect:
Info Specifiche App
Info Specifiche Versione
Fare riferimento agli articoli seguenti per più informazioni sulle specifiche per gli screenshot e le specifiche opzionali anteprima e leggere questo articolo per ulteriori informazioni.
Note Importanti sul Processo di Pubblicazione
- Quando si aggiorna la propria app creando una nuova versione dell'applicazione per l'App Store di Apple (ma anche quando si crea l'app per la prima volta), seguire queste linee guida per completare il questionario sui tipi di dati utilizzati nella propria app. Si noti che le linee guida fanno riferimento alla configurazione dell'app Go.Learn, quindi è bene accertarsi di controllare ogni sezione, dato che la propria app potrebbe essere configurata in modo diverso da Go.Learn (ad es., se la propria app non è connessa a Firebase, non compilare le informazioni sull'analitica).
- Al caricamento della propria app branded nell'App Store di Apple, se si utilizza il Single Sign On (SSO) personalizzato, eventualmente Apple potrebbe richiedere una spiegazione del fatto che si utilizza una procedura di login non standard.
- Quando si pubblica la propria app mobile branded nell'App Store di Apple, c'è la possibilità che venga chiesto di rispondere ad alcune domande sui contenuti e servizi a pagamento. Fare riferimento a questo documento in cui si trovano le risposte applicabili all'app branded creata con la funzionalità Branded Mobile App Publisher di Docebo (fare riferimento alla prima sezione del documento se si usa l'app E-Commerce di Docebo per vendere corsi online attraverso la piattaforma creando il proprio marketplace, fare riferimento alla seconda sezione se non si usa l'app E-Commerce). Una volta risposto a queste domande, si può procedere con il processo di pubblicazione.