//go:build darwin package platform /* #cgo darwin CFLAGS: -x objective-c -fobjc-arc #cgo darwin LDFLAGS: -framework Foundation -framework UserNotifications #include void cdropNotify(const char *title, const char *body); */ import "C" import "unsafe" // Notify shows a native system notification. // // macOS uses UNUserNotificationCenter, which REQUIRES the app bundle to be // code-signed with a valid bundle identifier (see desktop/PLAN.md D3/D6). On an // unsigned / ad-hoc build the ObjC side detects the missing bundle proxy and // no-ops rather than crashing — so this is safe to call from the current build; // it simply won't display until the signing + notarization pipeline (D6) ships. // // Safe to call from any goroutine: the native work hops to the main queue. func Notify(title, body string) { ct := C.CString(title) cb := C.CString(body) defer C.free(unsafe.Pointer(ct)) defer C.free(unsafe.Pointer(cb)) C.cdropNotify(ct, cb) }