
Supporto di estensioni in iOS, iPadOS, macOS e visionOS
iOS, iPadOS, macOS e visionOS consentono alle app di fornire funzionalità ad altre app attraverso le estensioni. Le estensioni sono binari eseguibili firmati con uno scopo specifico, inseriti in un pacchetto all’interno di un’app. Durante l’installazione, il sistema rileva automaticamente le estensioni e le rende disponibili ad altre app tramite un sistema di corrispondenze.
Punti di estensione
L’area di sistema che supporta le estensioni è chiamata punto di estensione. Ogni punto di estensione fornisce delle API e applica delle politiche per quell’area specifica. Il sistema determina le estensioni disponibili basandosi su regole di corrispondenza specifiche per ciascun punto di estensione. Il sistema avvia automaticamente i processi di estensione quando necessario e ne gestisce la durata. Per limitare la disponibilità delle estensioni ad app di sistema specifiche, possono essere utilizzate le autorizzazioni. Ad esempio, un widget per la vista Oggi compare solo in Centro Notifiche e un’estensione di condivisione è disponibile solo dal pannello Condivisione. Esempi di punti di estensione sono i widget della vista Oggi, Condividi, Azioni, “Modifica foto”, “File provider” e la tastiera personalizzata.
Comunicazione tra le estensioni
Le estensioni vengono eseguite nel proprio spazio di indirizzi. La comunicazione tra l’estensione e l’app da cui è stata attivata utilizza una comunicazione tra processi mediata dal framework di sistema. Ciò impedisce lori di avere accesso ai rispettivi file o spazi di memoria. Le estensioni sono progettate per essere isolate l’una dall’altra, oltre che dalle app che le contengono e da quelle che le utilizzano. Sono eseguite in sandbox come ogni altra app di terze parti e dispongono di un contenitore separato da quello che contiene l’app. Condividono comunque lo stesso accesso ai controlli per la privacy. Pertanto, se un utente concede a un’app l’accesso a Contatti, questa concessione viene estesa alle estensioni integrante nell’app, ma non a quelle attivate dall’app.
Uso delle tastiere personalizzate
Le tastiere personalizzate sono un tipo speciale di estensione, abilitate dall’utente per l’intero sistema. Una volta abilitate, le estensioni per tastiera vengono usate per qualsiasi campo di testo, fatta eccezione per quello dedicato all’inserimento del codice ed eventuali viste sicure. Per limitare il trasferimento dei dati dell’utente, le tastiere personalizzate vengono eseguite di default in una sandbox molto restrittiva che blocca l’accesso alla rete, ai servizi che eseguono operazioni di rete per conto di un processo e ad API che potrebbero consentire all’estensione di far trapelare dati di digitazione. Gli sviluppatori di tastiere personalizzate possono richiedere che le proprie estensioni utilizzino Open Access, che permette al sistema di eseguire l’estensione nella sandbox di default dopo aver ottenuto il consenso dell’utente.
MDM ed estensioni
Per i dispositivi registrati in una soluzione di gestione dei dispositivi mobili (MDM), le estensioni di documenti e tastiere rispettano le regole Managed Open In. Ad esempio, la soluzione MDM può contribuire a impedire che un utente esporti un documento da un’app gestita a un provider di documenti non gestito, oppure che utilizzi una tastiera non gestita con un’app gestita. Inoltre, gli sviluppatori di app possono impedire l’uso di estensioni di tastiera di terze parti all’interno della propria app.