From 38ac5f799b57ad7545e2f2a400ddfc066d3e8675 Mon Sep 17 00:00:00 2001 From: popaprozac Date: Thu, 27 Mar 2025 11:24:13 -0700 Subject: [PATCH 1/3] sign all things --- .../commands/build_assets/darwin/Taskfile.yml | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/v3/internal/commands/build_assets/darwin/Taskfile.yml b/v3/internal/commands/build_assets/darwin/Taskfile.yml index 30e7da823..3dd73a042 100644 --- a/v3/internal/commands/build_assets/darwin/Taskfile.yml +++ b/v3/internal/commands/build_assets/darwin/Taskfile.yml @@ -19,7 +19,7 @@ tasks: - go build {{.BUILD_FLAGS}} -o {{.OUTPUT}} vars: BUILD_FLAGS: '{{if eq .PRODUCTION "true"}}-tags production -trimpath -buildvcs=false -ldflags="-w -s"{{else}}-buildvcs=false -gcflags=all="-l"{{end}}' - DEFAULT_OUTPUT: '{{.BIN_DIR}}/{{.APP_NAME}}' + DEFAULT_OUTPUT: '{{.BIN_DIR}}/build/{{.APP_NAME}}' OUTPUT: '{{ .OUTPUT | default .DEFAULT_OUTPUT }}' env: GOOS: darwin @@ -36,14 +36,14 @@ tasks: - task: build vars: ARCH: amd64 - OUTPUT: "{{.BIN_DIR}}/{{.APP_NAME}}-amd64" + OUTPUT: "{{.BIN_DIR}}/build/{{.APP_NAME}}-amd64" - task: build vars: ARCH: arm64 - OUTPUT: "{{.BIN_DIR}}/{{.APP_NAME}}-arm64" + OUTPUT: "{{.BIN_DIR}}/build/{{.APP_NAME}}-arm64" cmds: - - lipo -create -output "{{.BIN_DIR}}/{{.APP_NAME}}" "{{.BIN_DIR}}/{{.APP_NAME}}-amd64" "{{.BIN_DIR}}/{{.APP_NAME}}-arm64" - - rm "{{.BIN_DIR}}/{{.APP_NAME}}-amd64" "{{.BIN_DIR}}/{{.APP_NAME}}-arm64" + - lipo -create -output "{{.BIN_DIR}}/build/{{.APP_NAME}}" "{{.BIN_DIR}}/build/{{.APP_NAME}}-amd64" "{{.BIN_DIR}}/build/{{.APP_NAME}}-arm64" + - rm "{{.BIN_DIR}}/build/{{.APP_NAME}}-amd64" "{{.BIN_DIR}}/build/{{.APP_NAME}}-arm64" package: summary: Packages a production build of the application into a `.app` bundle @@ -65,11 +65,17 @@ tasks: create:app:bundle: summary: Creates an `.app` bundle cmds: - - mkdir -p {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/{MacOS,Resources} - - cp build/darwin/icons.icns {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/Resources - - cp {{.BIN_DIR}}/{{.APP_NAME}} {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/MacOS - - cp build/darwin/Info.plist {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents + - mkdir -p {{.BIN_DIR}}/release/{{.APP_NAME}}.app/Contents/{MacOS,Resources} + - cp build/darwin/icons.icns {{.BIN_DIR}}/release/{{.APP_NAME}}.app/Contents/Resources + - cp {{.BIN_DIR}}/build/{{.APP_NAME}} {{.BIN_DIR}}/release/{{.APP_NAME}}.app/Contents/MacOS + - cp build/darwin/Info.plist {{.BIN_DIR}}/release/{{.APP_NAME}}.app/Contents + - codesign --force --deep --sign - {{.BIN_DIR}}/release/{{.APP_NAME}}.app run: cmds: - - '{{.BIN_DIR}}/{{.APP_NAME}}' + - mkdir -p {{.BIN_DIR}}/dev/{{.APP_NAME}}.app/Contents/{MacOS,Resources} + - cp build/darwin/icons.icns {{.BIN_DIR}}/dev/{{.APP_NAME}}.app/Contents/Resources + - cp {{.BIN_DIR}}/build/{{.APP_NAME}} {{.BIN_DIR}}/dev/{{.APP_NAME}}.app/Contents/MacOS + - cp build/darwin/Info.dev.plist {{.BIN_DIR}}/dev/{{.APP_NAME}}.app/Contents/Info.plist + - codesign --force --deep --sign - {{.BIN_DIR}}/dev/{{.APP_NAME}}.app + - '{{.BIN_DIR}}/dev/{{.APP_NAME}}.app/Contents/MacOS/{{.APP_NAME}}' From 9db28ec5fda336b3bd2e20c8c56919f9c733eca4 Mon Sep 17 00:00:00 2001 From: popaprozac Date: Thu, 27 Mar 2025 11:24:13 -0700 Subject: [PATCH 2/3] update docs/changelog --- docs/src/content/docs/changelog.mdx | 1 + docs/src/content/docs/guides/signing.mdx | 2 +- docs/src/content/docs/learn/build.mdx | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/src/content/docs/changelog.mdx b/docs/src/content/docs/changelog.mdx index 75dbf824b..89af3efeb 100644 --- a/docs/src/content/docs/changelog.mdx +++ b/docs/src/content/docs/changelog.mdx @@ -139,6 +139,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Built-in service types are now consistently called `Service` by [@fbbdev](https://github.com/fbbdev) in [#4067](https://github.com/wailsapp/wails/pull/4067) - Built-in service creation functions with options are now consistently called `NewWithConfig` by [@fbbdev](https://github.com/fbbdev) in [#4067](https://github.com/wailsapp/wails/pull/4067) - `Select` method on `sqlite` service is now named `Query` for consistency with Go APIs by [@fbbdev](https://github.com/fbbdev) in [#4067](https://github.com/wailsapp/wails/pull/4067) +- Creates and ad-hoc signs app bundles in dev to enable certain macOS APIs by [@popaprozac] in [#4171](https://github.com/wailsapp/wails/pull/4171) ## v3.0.0-alpha.9 - 2025-01-13 diff --git a/docs/src/content/docs/guides/signing.mdx b/docs/src/content/docs/guides/signing.mdx index b5de768c9..68b9aabed 100644 --- a/docs/src/content/docs/guides/signing.mdx +++ b/docs/src/content/docs/guides/signing.mdx @@ -86,7 +86,7 @@ This guide covers how to sign your Wails applications for both macOS and Windows 3. **Configure Notarization** ```json title="gon-sign.json" { - "source": ["./build/bin/app"], + "source": ["./build/bin/release/app"], "bundle_id": "com.company.app", "apple_id": { "username": "dev@company.com", diff --git a/docs/src/content/docs/learn/build.mdx b/docs/src/content/docs/learn/build.mdx index aeb5804af..e45c6e3b9 100644 --- a/docs/src/content/docs/learn/build.mdx +++ b/docs/src/content/docs/learn/build.mdx @@ -123,6 +123,7 @@ the application on macOS. Key features include: - Building binaries for amd64, arm64 and universal (both) architectures - Generating `.icns` icon file - Creating an `.app` bundle for distributing +- Ad-hoc signing `.app` bundles - Setting macOS-specific build flags and environment variables ## Task Execution and Command Aliases From c482c85c7b3885438c2b1dd8b20ae4998ee37131 Mon Sep 17 00:00:00 2001 From: popaprozac Date: Wed, 9 Apr 2025 15:48:52 -0700 Subject: [PATCH 3/3] revert and append .dev --- docs/src/content/docs/guides/signing.mdx | 2 +- .../commands/build_assets/darwin/Taskfile.yml | 32 +++++++++---------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/src/content/docs/guides/signing.mdx b/docs/src/content/docs/guides/signing.mdx index 68b9aabed..b5de768c9 100644 --- a/docs/src/content/docs/guides/signing.mdx +++ b/docs/src/content/docs/guides/signing.mdx @@ -86,7 +86,7 @@ This guide covers how to sign your Wails applications for both macOS and Windows 3. **Configure Notarization** ```json title="gon-sign.json" { - "source": ["./build/bin/release/app"], + "source": ["./build/bin/app"], "bundle_id": "com.company.app", "apple_id": { "username": "dev@company.com", diff --git a/v3/internal/commands/build_assets/darwin/Taskfile.yml b/v3/internal/commands/build_assets/darwin/Taskfile.yml index 3dd73a042..f0791fea9 100644 --- a/v3/internal/commands/build_assets/darwin/Taskfile.yml +++ b/v3/internal/commands/build_assets/darwin/Taskfile.yml @@ -19,7 +19,7 @@ tasks: - go build {{.BUILD_FLAGS}} -o {{.OUTPUT}} vars: BUILD_FLAGS: '{{if eq .PRODUCTION "true"}}-tags production -trimpath -buildvcs=false -ldflags="-w -s"{{else}}-buildvcs=false -gcflags=all="-l"{{end}}' - DEFAULT_OUTPUT: '{{.BIN_DIR}}/build/{{.APP_NAME}}' + DEFAULT_OUTPUT: '{{.BIN_DIR}}/{{.APP_NAME}}' OUTPUT: '{{ .OUTPUT | default .DEFAULT_OUTPUT }}' env: GOOS: darwin @@ -36,14 +36,14 @@ tasks: - task: build vars: ARCH: amd64 - OUTPUT: "{{.BIN_DIR}}/build/{{.APP_NAME}}-amd64" + OUTPUT: "{{.BIN_DIR}}/{{.APP_NAME}}-amd64" - task: build vars: ARCH: arm64 - OUTPUT: "{{.BIN_DIR}}/build/{{.APP_NAME}}-arm64" + OUTPUT: "{{.BIN_DIR}}/{{.APP_NAME}}-arm64" cmds: - - lipo -create -output "{{.BIN_DIR}}/build/{{.APP_NAME}}" "{{.BIN_DIR}}/build/{{.APP_NAME}}-amd64" "{{.BIN_DIR}}/build/{{.APP_NAME}}-arm64" - - rm "{{.BIN_DIR}}/build/{{.APP_NAME}}-amd64" "{{.BIN_DIR}}/build/{{.APP_NAME}}-arm64" + - lipo -create -output "{{.BIN_DIR}}/{{.APP_NAME}}" "{{.BIN_DIR}}/{{.APP_NAME}}-amd64" "{{.BIN_DIR}}/{{.APP_NAME}}-arm64" + - rm "{{.BIN_DIR}}/{{.APP_NAME}}-amd64" "{{.BIN_DIR}}/{{.APP_NAME}}-arm64" package: summary: Packages a production build of the application into a `.app` bundle @@ -65,17 +65,17 @@ tasks: create:app:bundle: summary: Creates an `.app` bundle cmds: - - mkdir -p {{.BIN_DIR}}/release/{{.APP_NAME}}.app/Contents/{MacOS,Resources} - - cp build/darwin/icons.icns {{.BIN_DIR}}/release/{{.APP_NAME}}.app/Contents/Resources - - cp {{.BIN_DIR}}/build/{{.APP_NAME}} {{.BIN_DIR}}/release/{{.APP_NAME}}.app/Contents/MacOS - - cp build/darwin/Info.plist {{.BIN_DIR}}/release/{{.APP_NAME}}.app/Contents - - codesign --force --deep --sign - {{.BIN_DIR}}/release/{{.APP_NAME}}.app + - mkdir -p {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/{MacOS,Resources} + - cp build/darwin/icons.icns {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/Resources + - cp {{.BIN_DIR}}/{{.APP_NAME}} {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/MacOS + - cp build/darwin/Info.plist {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents + - codesign --force --deep --sign - {{.BIN_DIR}}/{{.APP_NAME}}.app run: cmds: - - mkdir -p {{.BIN_DIR}}/dev/{{.APP_NAME}}.app/Contents/{MacOS,Resources} - - cp build/darwin/icons.icns {{.BIN_DIR}}/dev/{{.APP_NAME}}.app/Contents/Resources - - cp {{.BIN_DIR}}/build/{{.APP_NAME}} {{.BIN_DIR}}/dev/{{.APP_NAME}}.app/Contents/MacOS - - cp build/darwin/Info.dev.plist {{.BIN_DIR}}/dev/{{.APP_NAME}}.app/Contents/Info.plist - - codesign --force --deep --sign - {{.BIN_DIR}}/dev/{{.APP_NAME}}.app - - '{{.BIN_DIR}}/dev/{{.APP_NAME}}.app/Contents/MacOS/{{.APP_NAME}}' + - mkdir -p {{.BIN_DIR}}/{{.APP_NAME}}.dev.app/Contents/{MacOS,Resources} + - cp build/darwin/icons.icns {{.BIN_DIR}}/{{.APP_NAME}}.dev.app/Contents/Resources + - cp {{.BIN_DIR}}/{{.APP_NAME}} {{.BIN_DIR}}/{{.APP_NAME}}.dev.app/Contents/MacOS + - cp build/darwin/Info.dev.plist {{.BIN_DIR}}/{{.APP_NAME}}.dev.app/Contents/Info.plist + - codesign --force --deep --sign - {{.BIN_DIR}}/{{.APP_NAME}}.dev.app + - '{{.BIN_DIR}}/{{.APP_NAME}}.dev.app/Contents/MacOS/{{.APP_NAME}}'