Skip to content

Commit 7676183

Browse files
Copilotagocke
andcommitted
Add Mac OS publishing documentation
Co-authored-by: agocke <[email protected]>
1 parent 6828cd0 commit 7676183

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

docs/core/deploying/macos.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
title: Publish .NET apps for Mac OS
3+
description: Learn how to publish .NET applications for Mac OS, including signing, notarization, and app entitlements.
4+
author: agocke
5+
ms.author: angocke
6+
ms.date: 10/22/2025
7+
ms.topic: how-to
8+
ai-usage: ai-assisted
9+
---
10+
11+
# Publish .NET apps for Mac OS
12+
13+
Publishing .NET applications for Mac OS requires several additional steps compared to other platforms, due to Apple's security requirements.
14+
15+
## Prerequisites
16+
17+
Before you publish your .NET application for Mac OS, ensure you have the following:
18+
19+
- **Apple Developer Account**: Needed for code signing and notarization.
20+
- **Xcode Command Line Tools**: Provides `codesign`, `altool`, and other utilities.
21+
- **.NET SDK**: Ensure you have the latest .NET SDK installed.
22+
23+
## Publish your app
24+
25+
Use one of the methods described in the [.NET application publishing overview](index.md) to produce an application. You can create either a framework-dependent or self-contained application.
26+
27+
## Apphost and entry point
28+
29+
.NET creates a native *apphost* executable as the entry point for your app. This apphost must be signed and, if your app uses special capabilities, it must be assigned the appropriate **entitlements**.
30+
31+
### Entitlements for CoreCLR apps
32+
33+
For CoreCLR apps, the `com.apple.security.cs.allow-jit` entitlement is required.
34+
35+
### Entitlements for Native AOT apps
36+
37+
For Native AOT apps, no entitlements are required.
38+
39+
## Sign and notarize
40+
41+
Use Apple's developer documentation to sign and notarize the binary.
42+
43+
> [!WARNING]
44+
> Failing to sign and notarize your app might result in users seeing security warnings or being unable to launch your application.

0 commit comments

Comments
 (0)