
Støtte for utvidelser i iOS, iPadOS, macOS og visionOS
iOS, iPadOS, macOS og visionOS tillater at apper gir funksjonalitet til andre apper gjennom utvidelser. Utvidelser er signerte, kjørbare filer for spesielle formål som er pakket sammen med appen. Under installering gjenkjenner systemet automatisk utvidelser og gjør dem tilgjengelige for andre apper ved hjelp av et gjenkjenningssystem.
Utvidelsespunkter
Et systemområde som støtter utvidelser, kalles et utvidelsespunkt. Hvert utvidelsespunkt leverer API-er og håndhever retningslinjer for dette området. Systemet avgjør hvilke utvidelser som er tilgjengelige, basert på spesifikke gjenkjenningsregler for utvidelsespunktet. Systemet starter automatisk prosesser for utvidelser etter behov og administrerer levetiden deres. Rettigheter kan brukes til å begrense tilgangen til utvidelser til bestemte systemapper. En widget for I dag-visning vises for eksempel kun i Varslingssenter, og en delingsutvidelse er kun tilgjengelig i Deling-panelet. Eksempler på utvidelsespunkter er I dag-widgeter, deling, handlinger, bilderedigering, filleverandør og tilpasset tastatur.
Slik kommuniserer utvidelser
Utvidelser kjører i sitt eget adresseområde. Kommunikasjon mellom utvidelsen og appen som den ble aktivert fra, skjer via kommunikasjon mellom prosesser med systemets rammeverk som mellomledd. De har ikke tilgang til hverandres filer eller minneområder. Utvidelser er laget slik at de skal holdes atskilt fra hverandre, fra appen de tilhører og fra appene som bruker dem. Som alle andre tredjepartsapper begrenses de av sandkasseteknologi og har en beholder som er atskilt fra beholderen til appen de tilhører. De deler imidlertid samme tilgang til kontroller for personvern som beholderappen. Så hvis en bruker gir Kontakter tilgang til en app, videreføres denne tilgangen til utvidelsene som er innebygd i appen, men ikke til utvidelsene som aktiveres av appen.
Slik brukes tilpassede tastaturer
Tilpassede tastaturer er en spesiell type utvidelse og aktiveres av brukeren for hele systemet. Når en tastaturutvidelse er aktivert, brukes den i alle tekstfelter unntatt ved kodeinntasting og eventuell visning av sikker tekst. For å begrense overføring av brukerdata er det standard at tilpassede tastaturer kjøres i en sandkasse med strenge restriksjoner som blokkerer tilgang til nettverket, tjenester som utfører nettverksoperasjoner på vegne av en prosess, og API-er som ville latt utvidelsen eksfiltrere inntastede data. Utviklere av egne tastaturer kan be om å få åpen tilgang for utvidelsen de lager. Da kan systemet kjøre utvidelsen i standardsandkassen etter å ha fått samtykke fra brukeren.
MDM og utvidelser
For enheter som er registrert i en MDM-løsning, følger dokument- og tastaturutvidelser Managed Open In-regler. MDM-løsningen kan for eksempel bidra til å hindre at brukere eksporterer et dokument fra en administrert app til en ikke-administrert Document Provider, eller bidra til å hindre at de bruker et ikke-administrert tastatur med en administrert app. Dessuten kan apputviklere hindre at tastaturutvidelser fra tredjeparter brukes i appen de lager.