App preinstallate per dispositivi mobili
Per aggiungere un'app preinstallata a un'immagine per dispositivi mobili
Il processo di creazione di un'app preinstallata è simile a quello di un'app standard. In Windows 10 Dev Center, uno sviluppatore invia un'app che vuoi preinstallare nell'immagine Windows 10 Mobile. Dopo l'invio dell'app, è possibile richiedere un pacchetto preinstallazione, scaricarlo e aggiungerlo all'immagine, come descritto in questo argomento.
Per aggiungere un'app preinstallata, è necessario eseguire le azioni seguenti:
- Richiedere un pacchetto di preinstallazione
- Creare un file provxml per l'app preinstallata
- Aggiungere l'app all'immagine con il file di risposte di personalizzazione
- Compilare l'immagine
Richiedere un pacchetto di preinstallazione
Gli sviluppatori che hanno aggiunto un'app a Dev Center possono richiedere un pacchetto di preinstallazione. Possono quindi assegnare il pacchetto di preinstallazione direttamente all'OEM con cui stanno lavorando. Se si è l'OEM che aggiunge questa applicazione all'immagine del sistema operativo, chiedere allo sviluppatore dell'applicazione di scaricare il pacchetto dell'applicazione e quindi assegnare il file ZIP scaricato. Non è possibile accedere direttamente al proprio account sviluppatore. Dopo aver creato il pacchetto di preinstallazione, è possibile continuare con il resto dei passaggi. Per altre informazioni su come uno sviluppatore genera pacchetti di preinstallazione per un OEM, vedere Generare pacchetti di preinstallazione per gli OEM.
Creare un file con estensione provxml per un'app preinstallata
L'aggiunta di un'app preinstallata a un'immagine del sistema operativo Windows 10 Mobile richiede un file di configurazione provxml che specifica i parametri di installazione e gli identificatori del catalogo di Windows 10 Store. In particolare, deve specificare il percorso del file con estensione appx, il percorso del file di licenza e gli ID catalogo dello Store. Queste informazioni vengono usate quando l'app si connette al servizio dello Store per verificare la disponibilità di aggiornamenti. Per ridurre al minimo la probabilità di errore, il portale per sviluppatori fornisce il codice XML appropriato per l'app. Di seguito è riportato un esempio dell'aspetto di .provxml.
<?xml version="1.0" encoding="UTF-8" ?>
<wap-provisioningdoc>
<characteristic type="AppInstall">
<characteristic type="AppXPackage">
<parm name="ProductID" value="{09f2d20a-7076-4970-80ac-1bc24c171d2e}"/>
<parm name="AppXPath" value="c:\Programs\CommonFiles\Xaps\SampleApp.appx"/>
<parm name="LicensePath" value="c:\Programs\CommonFiles\Xaps\SampleAppLicense.xml"/>
<parm name="InstanceID" value="{03e9a435-3000-11db-89ca-0019b92FFFFF}"/>
<parm name="OfferID" value="{03e9a435-3000-11db-89ca-0019b92FFFFF}"/>
<parm name="PayloadID" value="{03e9a435-3000-11db-89ca-0019b92FFFFF}"/>
<parm name="UninstallDisabled" value="false"/>
<parm name="FullyPreInstall" value="false"/>
<parm name="ForceUpdate" value="false"/>
</characteristic>
</characteristic>
</wap-provisioningdoc>
Nota
I file provxml per le app preinstallate devono seguire una convenzione di denominazione prestabilita. È necessario usare MPAP_name_index.provxml, dove nome e indice possono essere stringhe. In genere, name è il nome del pacchetto di aggiornamento che contiene l'app preinstallata e index è una stringa che distingue i file provxml con lo stesso nome. Spesso, l'indice è rappresentato come numero, ad esempio 01.
flag provxml
Questi sono i flag che è possibile usare nel provxml.
Flag | Descrizione |
---|---|
UninstallDisabled | Questo flag controlla se un'app preinstallata può essere disinstallata da un utente. Se impostato su FALSE(impostazione predefinita), un utente può disinstallare l'app preinstallata. Se impostato su TRUE, un utente non è in grado di disinstallare l'app. Questo flag è impostabile solo tramite provxml e non può essere sottoposto a override tramite un aggiornamento dello Store. Solo un aggiornamento del dispositivo con un file provxml aggiornato può modificare questo valore. Idealmente, per mantenere l'esperienza utente, questo flag deve essere impostato solo su TRUE per le app critiche per la funzionalità del telefono. |
ForceUpdate | Questo flag consente a un'app in un'immagine di aggiornamento del sistema operativo di tentare di sovrascrivere una versione esistente dell'app già installata nel telefono prima di eseguire l'aggiornamento a Windows 10 Mobile. Il valore predefinito per questo flag è FALSE. Tenere presente che poiché l'aggiornamento dell'app è forzato, l'impostazione di questo flag su TRUE potrebbe comportare un downgrade delle funzionalità se l'app già installata è stata sviluppata per una versione precedente del sistema operativo. In generale, questo flag deve essere usato solo quando la versione Windows 10 Mobile dell'app deve trovarsi nel telefono immediatamente dopo l'aggiornamento, anche se significa eseguire il downgrade della versione dell'app già installata. |
FullyPreinstall | Questo flag controlla se l'app è associata a MDIL durante il primo avvio/aggiornamento o se viene ritardata fino al completamento di tali operazioni. Il ritardo dell'associazione MDIL, ovvero il comportamento predefinito per le app che non sono pre-aggiunte a Start, consente all'utente di tornare al telefono il più rapidamente possibile. Quando l'associazione viene posticipata fino al completamento del primo avvio/aggiornamento, l'icona dell'app viene visualizzata in grigio con lo stato di "installazione" e non può essere eseguita fino al completamento dell'associazione posticipata. Il tempo necessario per completare tutte le associazioni posticipate dipende dal numero di app posticipate e dall'attività dell'utente. Il comportamento del flag è il seguente:
|
Aggiungere l'app all'immagine
La preinstallazione delle app viene aggiunta all'immagine del sistema operativo usando un file di risposte customizations.xml. Per creare il file di risposte customizations.xml, installare prima il Designer configurazione di Windows e quindi creare un pacchetto di provisioning. È quindi possibile aprire la cartella del progetto per trovare il file customizations.xml.
Per includere le app preinstallate nell'immagine, è necessario aggiungere l'elemento Application
al file customizations.xml con gli attributi di definizione appropriati. L'esempio di codice seguente illustra come aggiungere un'app a un file di risposte di personalizzazione per la preinstallazione.
<Applications>
<Application License="$(CAFE_OUTPUT_DIR)\content\App_MobileTV_7e7cc86e_e1c0_476a_ac88_db3c9ffffabb\MobileTV_License.xml" ProvXML="$(CAFE_OUTPUT_DIR)\content\App_MobileTV_7e7cc86e_e1c0_476a_ac88_db3c9ffffabb\MPAP_MobileTV_01.provxml" Source="$(CAFE_OUTPUT_DIR)\content\App_MobileTV_7e7cc86e_e1c0_476a_ac88_db3c9ffffabb\MobileTV.xap"/>
<Application License="$(CAFE_OUTPUT_DIR)\content\App_AudioSettings_373cb76e_7f6c_45aa_8633_b00e85c73261\audio_License.xml" ProvXML="$(CAFE_OUTPUT_DIR)\content\App_AudioSettings_373cb76e_7f6c_45aa_8633_b00e85c73261\MPAP_audio_01.provxml" Source="$(CAFE_OUTPUT_DIR)\content\App_AudioSettings_373cb76e_7f6c_45aa_8633_b00e85c73261\audio.appx"/>
<Application License="$(CAFE_OUTPUT_DIR)\content\App_MicrosoftHealthApp_0168b504_ca18_46b8_b60a_0f6fdc271c81\MicrosoftHealthApp_License.xml" ProvXML="$(CAFE_OUTPUT_DIR)\content\App_MicrosoftHealthApp_0168b504_ca18_46b8_b60a_0f6fdc271c81\MPAP_MicrosoftHealthApp_01.provxml" Source="$(CAFE_OUTPUT_DIR)\content\App_MicrosoftHealthApp_0168b504_ca18_46b8_b60a_0f6fdc271c81\MicrosoftHealthApp.appxbundle"/>
</Applications>
Nota
Il file provxml deve essere inserito nella directory "$(runtime.commonfiles)\Provisioning\OEM". Il file di licenza e il pacchetto dell'app (con estensione xap o appx) devono essere inseriti nella directory "$(runtime.commonfiles)\xaps"
Dopo aver configurato il file di risposte customizations.xml, compilare l'immagine usando l'interfaccia della riga di comando di Configurazione di Windows Designer. Per istruzioni, vedere Configurazione di Windows Designer interfaccia della riga di comando.
Compilare l'immagine
Seguire la procedura descritta in Creare un'immagine per dispositivi mobili personalizzata usando imggen