Files
kotej/project.yml
T
alexandrev-tibco 33f48edc11 Sandbox the Finder extension so macOS actually loads it
The context menu never appeared because the extension wasn't registered at all:
pluginkit didn't list it, and it says nothing about why. macOS only loads Finder
Sync extensions that are sandboxed, and the target had App Sandbox off, so the
appex was silently ignored.

It now ships with its own entitlements — sandbox plus read-only access to the
items picked in Finder, which is all it needs to read the selection and open a
kotej:// URL. The containing app stays unsandboxed, since comparing arbitrary
folders needs unrestricted file access.

Verified: pluginkit lists it as enabled and the extension is loaded by Finder.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UfhDYRLTpGJSKGP1m3LVJN
2026-07-31 13:14:15 +02:00

76 lines
2.1 KiB
YAML

name: Kotej
options:
bundleIdPrefix: com.alexandrev
createIntermediateGroups: true
developmentLanguage: en
deploymentTarget:
macOS: "14.0"
settings:
base:
SWIFT_VERSION: "5.9"
MARKETING_VERSION: "0.1.0"
CURRENT_PROJECT_VERSION: "1"
DEVELOPMENT_TEAM: "2825Q76T7H"
CODE_SIGN_STYLE: Automatic
packages:
Kotej:
path: .
targets:
Kotej:
type: application
platform: macOS
deploymentTarget: "14.0"
sources:
- App
- path: App/Assets.xcassets
buildPhase: resources
- path: Resources
buildPhase: resources
dependencies:
- package: Kotej
product: KotejEngine
- target: KotejFinder
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.alexandrev.kotej
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
ENABLE_APP_SANDBOX: NO
ENABLE_HARDENED_RUNTIME: YES
info:
path: App/Info.plist
properties:
CFBundleDisplayName: Kotej
CFBundleShortVersionString: "$(MARKETING_VERSION)"
CFBundleVersion: "$(CURRENT_PROJECT_VERSION)"
CFBundleDevelopmentRegion: en
CFBundleLocalizations: [en, es]
NSHumanReadableCopyright: "Kotej"
CFBundleURLTypes:
- CFBundleURLName: com.alexandrev.kotej
CFBundleURLSchemes: [kotej]
KotejFinder:
type: app-extension
platform: macOS
deploymentTarget: "14.0"
sources:
- path: FinderExtension
excludes: [Resources]
- path: FinderExtension/Resources
buildPhase: resources
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.alexandrev.kotej.finder
ENABLE_APP_SANDBOX: YES
ENABLE_HARDENED_RUNTIME: YES
CODE_SIGN_ENTITLEMENTS: FinderExtension/KotejFinder.entitlements
info:
path: FinderExtension/Info.plist
properties:
CFBundleDisplayName: Kotej
CFBundleShortVersionString: "$(MARKETING_VERSION)"
CFBundleVersion: "$(CURRENT_PROJECT_VERSION)"
NSExtension:
NSExtensionPointIdentifier: com.apple.FinderSync
NSExtensionPrincipalClass: KotejFinder.FinderMenu