Supporto di estensioni in iOS, iPadOS e macOS
iOS, iPadOS e macOS 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, la condivisione, le azioni, la modifica delle foto, i provider di file e le tastiere personalizzate.
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 comunicazioni inter‑process (IPC) mediate dal framework di sistema. Non hanno 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. Quindi se un utente concede a un’app l’accesso a Contatti, questa concessione viene estesa alle estensioni che sono incorporate all’interno dell’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 permetterebbero all’estensione di far trapelare dati di digitazione. Gli sviluppatori di tastiere personalizzate possono richiedere che le loro estensioni abbiano 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ò aiutare 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.