<!--
{
  "availability" : [
    "iOS: 17.4.0 -",
    "iPadOS: 17.4.0 -",
    "macOS: 14.3.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "BrowserEngineKit",
  "identifier" : "/documentation/BrowserEngineKit/NetworkingProcess/init(bundleIdentifier:onInterruption:)",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "BrowserEngineKit"
    ],
    "preciseIdentifier" : "s:16BrowserEngineKit17NetworkingProcessV16bundleIdentifier14onInterruptionACSSSg_yyctYaKcfc"
  },
  "title" : "init(bundleIdentifier:onInterruption:)"
}
-->

# init(bundleIdentifier:onInterruption:)

Launches a networking extension process asynchronously.

```
init(bundleIdentifier: String? = nil, onInterruption: @escaping () -> Void) async throws
```

## Parameters

`bundleIdentifier`

The bundle identifier of the networking extension to launch, or `nil` to use the default bundle identifier for this app’s networking extension.

`onInterruption`

A block that the system calls if the networking extension process exits abnormally.

## Discussion

Your browser app can run one instance of each of its networking extensions.
The first time you initialize this object, the system launches your networking extension.
If you subsequently initialize new instances of `NetworkingProcess` using the same bundle identifier, they refer to the same process.

The system guarantees that the process launched when this initializer returns.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)