<!--
{
  "availability" : [
    "macOS: 10.10.0 - 11.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/NSWorkspace/open(_:withAppBundleIdentifier:options:additionalEventParamDescriptor:launchIdentifiers:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "AppKit"
    ],
    "preciseIdentifier" : "c:objc(cs)NSWorkspace(im)openURLs:withAppBundleIdentifier:options:additionalEventParamDescriptor:launchIdentifiers:"
  },
  "title" : "open(_:withAppBundleIdentifier:options:additionalEventParamDescriptor:launchIdentifiers:)"
}
-->

# open(_:withAppBundleIdentifier:options:additionalEventParamDescriptor:launchIdentifiers:)

Opens one or more files from an array of URLs.

```
func open(_ urls: [URL], withAppBundleIdentifier bundleIdentifier: String?, options: NSWorkspace.LaunchOptions = [], additionalEventParamDescriptor descriptor: NSAppleEventDescriptor?, launchIdentifiers identifiers: AutoreleasingUnsafeMutablePointer<NSArray?>?) -> Bool
```

## Parameters

`urls`

An array of `NSURL` objects, each one identifying a URL for the app to open.

`bundleIdentifier`

A bundle identifier string or `nil` to use the default system bindings. This value corresponds to the value in the `CFBundleIdentifier` key of the app’s `Info.plist` file. For example, the bundle identifier of the TextEdit app is `com.apple.TextEdit`.

`options`

Options to use when launching the app. Values for this parameter are described in [`NSWorkspace.LaunchOptions`](/documentation/AppKit/NSWorkspace/LaunchOptions).

`descriptor`

Additional options specified in an AppleEvent-style descriptor. For example, you could use this parameter to specify additional documents to open when the app is launched.

`identifiers`

The `launchIdentifiers` are currently unused, and you should pass `NULL`.

## Return Value

<doc://com.apple.documentation/documentation/Swift/true> if the app was found and launched; otherwise, <doc://com.apple.documentation/documentation/Swift/false>.

## Discussion

It is safe to call this method from any thread of your app.

---

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)