<!--
{
  "availability" : [
    "iOS: 18.4.0 -",
    "iPadOS: 18.4.0 -",
    "macOS: 27.0.0 -",
    "visionOS: 2.4.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ManagedApp",
  "identifier" : "/documentation/ManagedApp/ManagedAppCertificatesProvider/certificate(withIdentifier:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "ManagedApp"
    ],
    "preciseIdentifier" : "s:10ManagedApp0aB20CertificatesProviderC11certificate14withIdentifierSo17SecCertificateRefaSS_tYaAA0aB5ErrorOYKF"
  },
  "title" : "certificate(withIdentifier:)"
}
-->

# certificate(withIdentifier:)

Provides a certificate by its identifier.

```
func certificate(withIdentifier identifier: String) async throws(ManagedAppError) -> SecCertificate
```

## Parameters

`identifier`

The identifier of the requested certificate. This function throws [`ManagedAppError.invalidIdentifier`](/documentation/ManagedApp/ManagedAppError/invalidIdentifier) if the value you supply isn’t currently in [`identifiers`](/documentation/ManagedApp/ManagedAppIdentitiesProvider/identifiers).

## Return Value

The requested certificate

## Discussion

The MDM server can update the certificate at any time. After that, [`identifiers`](/documentation/ManagedApp/ManagedAppIdentitiesProvider/identifiers) yields a new array of identifiers. Call this method again to obtain the updated certificate.

The MDM server can change the available certificates at any time. When that happens, the list of valid identifiers updates accordingly. For example, the list of valid identifiers might change between the time that the app accesses
[`identifiers`](/documentation/ManagedApp/ManagedAppIdentitiesProvider/identifiers) and then calls this method passing in one of its elements. So, the app needs to handle the case that this method throws [`ManagedAppError.invalidIdentifier`](/documentation/ManagedApp/ManagedAppError/invalidIdentifier).

> Important: Avoid storing the certificate and instead, call this method whenever the app needs the certificate. For security reasons, avoid logging or displaying the certificate. Even though the certificate is a “public” certificate, it can contain sensitive information.

> Throws: ``doc://com.apple.managedapp/documentation/ManagedApp/ManagedAppError/invalidIdentifier`` if no certificate exists with the specified identifier.

---

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)