Attenzione: Con il rilascio mensile di ottobre del 26 ottobre 2022, è stato rilasciato un aggiornamento di sicurezza sul caricamento dei file. Per evitare problemi con il caricamento dei file nell’app mobile, assicurarsi di generare la build della nuova versione dell’app mobile branded e distribuirla tramite app store o tramite i propri sistemi Mobile Device Management. Si noti che la build deve basarsi sulla versione 4.9.1 o più recente.
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 (.sh, 6KB). Questo file è anche allegato al capitolo Re-signing del pacchetto .ipa di questo articolo.
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.
Ulteriori informazioni su 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. Dettagli sui requisiti tecnici e le informazioni necessarie per creare la propria app branded.
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) (si apre in una nuova tab). Informazioni aggiuntive su come produrre e presentare questo rapporto.
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:
Campo |
Note |
commonName |
Nome di persona, ad es. "Susan Jones" |
organizationUnit |
Nome del reparto o della divisione aziendale, ad es. “Acquisti” |
organizationName |
Nome dell’azienda, ad es. "ABC Systems, Inc." |
localityName |
Nome della città, ad es. "Palo Alto" |
stateName |
Nome dello stato o della provincia, ad es. "California" |
country |
Codice del Paese (due lettere), ad es. "CH" |
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 (si apre in una nuova tab). È anche possibile trovare un documento dettagliato su questo argomento su Stack Overflow (si apre in una nuova tab).
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 dalla guida di Google Play Console su come caricare un'app (si apre in una nuova tab)
- 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) va completato il questionario in Google Play Console sui tipi di dati utilizzati nella propria app. Linee guida su come compilare la sezione Data Safety in Google Play (PFD, 67KB). 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:
Elemento da preparare |
Note |
Mac |
È necessario avere un Mac, dato che non si può utilizzare un PC Windows per eseguire il re-signing di un pacchetto .ipa |
XCode |
Installato dal Mac App Store |
Provisioning profile |
Scaricato dall’Apple Developer Console |
Distribution certificate |
Scaricato dall’Apple Developer Console e installato nel keyChain |
resign.sh script |
È lo script che si esegue |
.ipa file |
Creato dal servizio di Branded Mobile App Publisher |
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 nella KB di Apple (si apre in una nuova tab).
3. security find-identity fornirà una lista di identità tra le quali scegliere (cercare quella che inizia con "Apple Distribution"):
security find-identity -v -p codesigning
Il risultato sarà simile al seguente:
-
7D2A35B002F0577B66689713044BF66B4EEAC70F "Apple Developer: Donald Duck (4J2CJZQ799)
-
C45CFD22CCC7BD2E84ED43D07719D709BC901322 "Apple Distribution: A.C.M.E. (8YX56B3FLL)
4. Spostare lo script resign.sh (.sh, 6KB) nella stessa cartella ed eseguirlo (eseguire lo script senza argomenti per avere più informazioni):
$./resign.sh ./MyApp.ipa ./embedded.mobileprovision “Apple 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 agli articoli How to re-sign iOS builds (si apre in una nuova tab), Inside Code Signing (si apre in una nuova tab) e Application Code Signing (si apre in una nuova tab) 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 app |
Note |
Title (Titolo) |
Il nome dell’app. La lunghezza massima è 30 caratteri. |
Subtitle (Sottotitolo) |
Il sottotitolo dell’app viene visualizzato sotto al nome dell’app. La lunghezza massima è 30 caratteri. È un’informazione opzionale. |
Privacy policy URL (URL informativa sulla privacy) |
L’URL del documento di informativa sulla privacy che si trova sul proprio sito web |
Primary category (Categoria primaria) |
La prima categoria che si assegna alla propria app. È la categoria nella quale l’app appare quando gli utenti cercano per categoria o filtrano i risultati di ricerca. |
Secondary category (Categoria secondaria) |
La seconda categoria che si assegna alla propria app. È un’informazione opzionale. |
Price (Prezzo) |
Il prezzo della propria app. È possibile scegliere l’opzione gratuita (Free). |
Territories (Territori) |
Di default tutti i territori, ma la lista può essere modificata se si rende disponibile l’app solo in Paesi specifici. |
Info specifiche versione
Info specifiche versione |
Note |
App previews (videos) and screenshots (Anteprime dell’app (video) e screenshot) |
Specifiche screenshot, Specifiche opzionali anteprima |
Promotional text (Testo promozionale) |
Questo è il testo promozionale che appare in cima alla descrizione. La lunghezza massima è 170 caratteri. È un’informazione opzionale. |
Description (Descrizione) |
La descrizione mette in evidenza le funzionalità della propria app. È un paragrafo informativo seguito da una breve lista delle funzionalità principali. |
Keywords (Parole chiave) |
Le parole chiave aiutano a determinare dove la propria app viene mostrata nei risultati di ricerca. La lunghezza massima è 100 caratteri in totale e gli elementi sono separati da virgole senza spazi. |
Support URL (URL supporto) |
È l’URL della pagina del sito web della propria azienda in cui chiedere supporto |
Marketing URL (URL marketing) |
È l’URL della pagina del sito web della propria azienda in cui scaricare materiali di marketing e press kit. È un’informazione opzionale. |
Version number (Numero versione) |
Il default per una nuova app è 1.0, mentre la build Docebo è 1.1.8 |
Copyright text (Testo copyright) |
È il testo del copyright della propria app |
Contact info at your company in case of issues (Info di contatto in azienda in caso di problemi) |
Queste info di contatto sono utilizzate per inviare feedback. |
App Review Info (Informazioni Recensioni App) |
Credenziali di login e tutti i passi richiesti per connettersi/utilizzare l’app |
Fare riferimento agli articoli seguenti per più informazioni sulle specifiche per gli screenshot (si apre in una nuova tab), le specifiche opzionali per l'anteprima (si apre in una nuova tab) e la pagina del proprio prodotto nell'App Store (si apre in una nuova tab).
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) va completato il questionario sui tipi di dati utilizzati nella propria app. Linee guida su come inserire i dettagli della privacy dell'app sull'App Store. 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. Ulteriori informazioni sulle risposte applicabili all'app branded creata con la funzionalità Branded Mobile App Publisher di Docebo (PDF, 33KB) (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.