[tool.kivy.macos] reference¶
The macOS overlay. For tasks, see Build a macOS .app.
[tool.kivy.macos]¶
| Key | Type | Default | Description |
|---|---|---|---|
schema_version |
integer | required | Overlay schema version. Set to 1. |
bundle_id |
string | required | Bundle identifier, in reverse-DNS form. Letters, digits, hyphens, and periods only; no underscores. |
build |
integer | 1 |
Build number. |
minimum_system_version |
string | "11.0" |
Minimum macOS version (LSMinimumSystemVersion). Must not be below the bundled runtime's floor. |
archs |
list of string | ["arm64"] |
Build architectures. "arm64" is the only valid value; "x86_64" is rejected. universal2 wheels are still accepted as dependencies. |
extra_index_urls |
list of string | [] |
Extra package indexes. |
find_links |
list of string | [] |
Project-relative directories of prebuilt wheels, searched during lock only. |
exclude |
list of string | [] |
Package names to drop from the resolve. |
[tool.kivy.macos.python]¶
Required.
| Key | Type | Default | Description |
|---|---|---|---|
version |
string | required | CPython version from python-build-standalone, for example "3.13.14". [project].requires-python must allow it. |
[tool.kivy.macos.icons]¶
| Key | Type | Default | Description |
|---|---|---|---|
source |
string | none | Path to a 1024x1024 PNG, rendered to .icns. Transparent rounded corners are allowed. |
[tool.kivy.macos.signing]¶
| Key | Type | Default | Description |
|---|---|---|---|
identity |
string | "" |
Developer ID Application identity. Set alone, package signs without notarizing. Overridden by package --signing-identity. |
team_id |
string | "" |
Team ID. Recorded for reference; the build does not use it. |
notary_profile |
string | "" |
Keychain profile name created with xcrun notarytool store-credentials. With identity, package also notarizes and staples. Overridden by package --notary-profile. |
Without an identity, package produces an ad-hoc-signed .app and reports a
KF-SIGNING-UNCONFIGURED warning. See
Sign, notarize, and staple a macOS app.
[tool.kivy.macos.entitlements]¶
A table of entitlement keys and values, merged over the default Hardened Runtime
entitlements; your values win. Applied only to Developer ID signing. When an
identity is set, com.apple.security.get-task-allow = true is rejected, because
notarization always rejects it.
[tool.kivy.macos.native.binaries]¶
Each entry is NAME = { version = "...", source = "..." } and declares a native
binary that does not come from a wheel. source is an http:// or https://
URL, or a project-relative path. The binary is staged into
Contents/Resources/bin. See
Ship native binaries.
[tool.kivy.macos.build_settings]¶
| Key | Type | Default | Description |
|---|---|---|---|
byte_compile |
bool or "release" |
"release" |
Compile your app and its dependencies to .pyc. "release" applies to package and run --release only. |
strip_source |
bool or "release" |
"release" |
Remove .py files after compiling. |
Example¶
[tool.kivy.macos]
schema_version = 1
bundle_id = "org.example.dice-roller"
archs = ["arm64"]
[tool.kivy.macos.python]
version = "3.13.14"
[tool.kivy.macos.icons]
source = "assets/icon.png"
[tool.kivy.macos.signing]
identity = "Developer ID Application: Jane Doe (ABCDE12345)"
team_id = "ABCDE12345"
notary_profile = "kivyforge-notary"