Skip to content

Internet Access Policy

The developer’s own explanation of a connection, read from an app’s InternetAccessPolicy.plist when it ships one.

Outbound 1.2.0 · Updated

Some apps ship an InternetAccessPolicy.plist in their bundle: a file where the developer documents the connections the app makes and why. Outbound reads it so that explanation can appear in the connection alert.

From the app bundle of the program behind a connection, Outbound reads the policy file and takes each entry’s:

  • Host: the server the entry is about. A name can be exact, a wildcard such as *.example.com, or local-net for the local network.
  • Purpose: what the connection is for, in the developer’s words. An entry with no purpose is skipped.
  • DenyConsequences: what breaks if you block it, when the developer wrote one.
  • Port, NetworkProtocol and IsIncoming when given, which narrow the entry to that port, protocol and direction.

A companion InternetAccessPolicy.strings file in the bundle can localise those texts, and it is used only when it passes the same checks. Outbound reads at most the first 200 entries, caps each text at 240 characters, and accepts the file only when it is a regular file of at most 256 KB, read without following a link.

The purpose, and the deny consequences, appear in the connection alert when the alert is about a connection the file describes. A deny consequence also appears next to the Block answer, as “The developer says:” followed by the developer’s text.

The words are the developer’s statement. Outbound shows them as theirs. They are shown only for code whose identity is backed by a team identifier or Apple’s signature. An unsigned program’s file is not displayed at the moment you decide.

An app that ships no policy file, or one that does not describe the connection in question, shows nothing. The file never decides the connection.