<!--
{
  "availability" : [
    "iOS: 4.0.0 -",
    "iPadOS: 4.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.6.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Foundation",
  "identifier" : "/documentation/Foundation/NSURL/URLByResolvingBookmarkData:options:relativeToURL:bookmarkDataIsStale:error:",
  "metadataVersion" : "0.1.0",
  "role" : "Type Method",
  "symbol" : {
    "kind" : "Type Method",
    "modules" : [
      "Foundation"
    ],
    "preciseIdentifier" : "c:objc(cs)NSURL(cm)URLByResolvingBookmarkData:options:relativeToURL:bookmarkDataIsStale:error:"
  },
  "title" : "URLByResolvingBookmarkData:options:relativeToURL:bookmarkDataIsStale:error:"
}
-->

# URLByResolvingBookmarkData:options:relativeToURL:bookmarkDataIsStale:error:

Returns a new URL made by resolving bookmark data.

```
+ (instancetype) URLByResolvingBookmarkData:(NSData *) bookmarkData options:(NSURLBookmarkResolutionOptions) options relativeToURL:(NSURL *) relativeURL bookmarkDataIsStale:(BOOL *) isStale error:(NSError **) error;
```

## Parameters

`bookmarkData`

The bookmark data the URL is derived from.

`options`

Options taken into account when resolving the bookmark data.

    To resolve a security-scoped bookmark to support App Sandbox, you must include (by way of bitwise     `OR`     operators with any other options in this parameter) the [`withSecurityScope`](/documentation/Foundation/NSURL/BookmarkResolutionOptions/withSecurityScope)     option.

`relativeURL`

The base URL that the bookmark data is relative to.

    If you are resolving a security-scoped bookmark to obtain a security-scoped URL, use this parameter as follows:

- To resolve an app-scoped bookmark, use a value of `nil`.
- To resolve a document-scoped bookmark, use the *absolute* path (despite this parameter’s name) to the document from which you retrieved the bookmark.

    App Sandbox does not restrict which URL values may be passed to this parameter.

`isStale`

On return, if <doc://com.apple.documentation/documentation/Swift/true>, the bookmark data is stale. Your app should create a new bookmark using the returned URL and use it in place of any stored copies of the existing bookmark.

`error`

The error that occurred in the case that the URL cannot be created.

## Return Value

A new URL made by resolving `bookmarkData`.

## Discussion

This method fails if the original file or directory could not be located or is on a volume that could not be mounted. If this method fails, you can use the [`resourceValues(forKeys:fromBookmarkData:)`](/documentation/Foundation/NSURL/resourceValues(forKeys:fromBookmarkData:)) method to obtain information about the bookmark, such as the last known path ([`pathKey`](/documentation/Foundation/URLResourceKey/pathKey)) to help the user decide how to proceed.

To obtain a security-scoped URL from a security-scoped bookmark, call this method using the [`withSecurityScope`](/documentation/Foundation/NSURL/BookmarkResolutionOptions/withSecurityScope) option. In addition, to use security scope, you must first have enabled the appropriate entitlements for your app, as described in [Enabling Security-Scoped Bookmark and URL Access](https://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/EnablingAppSandbox.html#//apple_ref/doc/uid/TP40011195-CH4-SW18).

To then obtain access to the file-system resource pointed to by a security-scoped URL (in other words, to bring the resource into your app’s sandbox), call the [`startAccessingSecurityScopedResource()`](/documentation/Foundation/NSURL/startAccessingSecurityScopedResource()) method (or its Core Foundation equivalent, the <doc://com.apple.documentation/documentation/CoreFoundation/CFURLStartAccessingSecurityScopedResource(_:)> function) on the URL.

For an app-scoped bookmark, no sandboxed app other than the one that created the bookmark can obtain access to the file-system resource that the URL (obtained from the bookmark) points to.

For a document-scoped bookmark, any sandboxed app that has access to the bookmark data itself, and has access to the document that owns the bookmark, can obtain access to the resource.

> Version note:
> Security-scoped bookmarks are not available in versions of macOS prior to OS X v10.7.3.

## See Also

[`func bookmarkData(options: NSURL.BookmarkCreationOptions, includingResourceValuesForKeys: [URLResourceKey]?, relativeTo: URL?) throws -> Data`](/documentation/Foundation/NSURL/bookmarkData(options:includingResourceValuesForKeys:relativeTo:))

Returns a bookmark for the URL, created with specified options and resource values.



---

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)