update to configurable app name in codesign action for macos
What changed, and why it matters
This commit is a routine build/packaging maintenance change. It renames the macOS packaging directory from 'osx' to 'macos', adds a configurable app name to the GitHub codesigning workflow, and moves the same Info.plist, entitlements, icon, and installer background files to the new location. There is no indication of a security vulnerability being fixed or introduced.
No security action required. Treat as normal build hygiene; verify the moved binary assets (icns, png) match the prior versions if desired.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff shows a pure refactor of macOS packaging assets: directory rename from src/main/deploy/package/osx/ to src/main/deploy/package/macos/, corresponding path update in build.gradle, and addition of an app-name input to the reusable codesign-macos GitHub Action. The Info.plist and Sparrow.entitlements contents are byte-for-byte identical between the old and new paths. No code logic, cryptographic handling, network behavior, or permission model changed.
Changed components
.github/workflows/package.yamlbuild.gradlesrc/main/deploy/package/macos/Info.plistsrc/main/deploy/package/macos/Sparrow.entitlementssrc/main/deploy/package/macos/installer-background.pngsrc/main/deploy/package/macos/sparrow.icnsInspect captured patch +169 / −168
diff --git a/.github/workflows/package.yaml b/.github/workflows/package.yaml
index 3472fa3..106daa9 100644
--- a/.github/workflows/package.yaml
+++ b/.github/workflows/package.yaml
@@ -28,6 +28,7 @@ jobs:
if: ${{ runner.os == 'macOS' }}
uses: sparrowwallet/github-actions/codesign-macos@v1
with:
+ app-name: Sparrow
certificate: ${{ secrets.MACOS_CERTIFICATE }}
certificate-password: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
apple-id: ${{ secrets.MACOS_NOTARIZATION_APPLE_ID }}
diff --git a/build.gradle b/build.gradle
index a849833..e69ff76 100644
--- a/build.gradle
+++ b/build.gradle
@@ -265,7 +265,7 @@ jlink {
}
if(os.macOsX) {
installerOptions += ['--mac-sign', '--mac-signing-key-user-name', 'Craig Raw (UPLVMSK9D7)']
- imageOptions += ['--icon', 'src/main/deploy/package/osx/sparrow.icns', '--resource-dir', 'src/main/deploy/package/osx/']
+ imageOptions += ['--icon', 'src/main/deploy/package/macos/sparrow.icns', '--resource-dir', 'src/main/deploy/package/macos/']
installerType = "dmg"
}
}
diff --git a/src/main/deploy/package/macos/Info.plist b/src/main/deploy/package/macos/Info.plist
new file mode 100644
index 0000000..f799c79
--- /dev/null
+++ b/src/main/deploy/package/macos/Info.plist
@@ -0,0 +1,149 @@
+<?xml version="1.0" ?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>LSMinimumSystemVersion</key>
+ <string>10.9</string>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleAllowMixedLocalizations</key>
+ <true/>
+ <key>CFBundleExecutable</key>
+ <string>Sparrow</string>
+ <key>CFBundleIconFile</key>
+ <string>Sparrow.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.sparrowwallet.sparrow</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>Sparrow</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>2.3.2</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <!-- See https://developer.apple.com/app-store/categories/ for list of AppStore categories -->
+ <key>LSApplicationCategoryType</key>
+ <string>Unknown</string>
+ <key>CFBundleVersion</key>
+ <string>100</string>
+ <key>NSHumanReadableCopyright</key>
+ <string>Copyright (C) 2021</string>
+ <key>NSHighResolutionCapable</key>
+ <string>true</string>
+ <key>NSCameraUseContinuityCameraDeviceType</key>
+ <true/>
+ <key>NSCameraUsageDescription</key>
+ <string>Sparrow requires access to the camera in order to scan QR codes</string>
+ <key>NSLocalNetworkUsageDescription</key>
+ <string>Sparrow requires access to the local network in order to connect to your configured server</string>
+ <key>CFBundleURLTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleURLName</key>
+ <string>com.sparrowwallet.sparrow.bitcoin</string>
+ <key>CFBundleURLSchemes</key>
+ <array>
+ <string>bitcoin</string>
+ </array>
+ </dict>
+ <dict>
+ <key>CFBundleURLName</key>
+ <string>com.sparrowwallet.sparrow.auth47</string>
+ <key>CFBundleURLSchemes</key>
+ <array>
+ <string>auth47</string>
+ </array>
+ </dict>
+ <dict>
+ <key>CFBundleURLName</key>
+ <string>com.sparrowwallet.sparrow.lightning</string>
+ <key>CFBundleURLSchemes</key>
+ <array>
+ <string>lightning</string>
+ </array>
+ </dict>
+ </array>
+ <key>UTImportedTypeDeclarations</key>
+ <array>
+ <dict>
+ <key>UTTypeIdentifier</key>
+ <string>org.bitcoin.psbt</string>
+ <key>UTTypeTagSpecification</key>
+ <dict>
+ <key>public.filename-extension</key>
+ <array>
+ <string>psbt</string>
+ </array>
+ </dict>
+ <key>UTTypeDescription</key>
+ <string>Partially Signed Bitcoin Transaction</string>
+ <key>UTTypeIconFile</key>
+ <string>sparrow.icns</string>
+ </dict>
+ <dict>
+ <key>UTTypeIdentifier</key>
+ <string>org.bitcoin.txn</string>
+ <key>UTTypeTagSpecification</key>
+ <dict>
+ <key>public.filename-extension</key>
+ <array>
+ <string>txn</string>
+ </array>
+ </dict>
+ <key>UTTypeDescription</key>
+ <string>Bitcoin Transaction</string>
+ <key>UTTypeIconFile</key>
+ <string>sparrow.icns</string>
+ </dict>
+ <dict>
+ <key>UTTypeIdentifier</key>
+ <string>com.sparrowwallet.asc</string>
+ <key>UTTypeTagSpecification</key>
+ <dict>
+ <key>public.filename-extension</key>
+ <array>
+ <string>asc</string>
+ </array>
+ </dict>
+ <key>UTTypeDescription</key>
+ <string>ASCII Armored File</string>
+ <key>UTTypeIconFile</key>
+ <string>sparrow.icns</string>
+ </dict>
+ </array>
+ <key>CFBundleDocumentTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleTypeRole</key>
+ <string>Editor</string>
+ <key>CFBundleTypeIconFile</key>
+ <string>sparrow.icns</string>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>psbt</string>
+ </array>
+ <key>CFBundleTypeName</key>
+ <string>Partially Signed Bitcoin Transaction</string>
+ <key>LSHandlerRank</key>
+ <string>Default</string>
+ </dict>
+ <dict>
+ <key>CFBundleTypeRole</key>
+ <string>Editor</string>
+ <key>CFBundleTypeIconFile</key>
+ <string>sparrow.icns</string>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>txn</string>
+ </array>
+ <key>CFBundleTypeName</key>
+ <string>Bitcoin Transaction</string>
+ <key>LSHandlerRank</key>
+ <string>Default</string>
+ </dict>
+ </array>
+ </dict>
+</plist>
\ No newline at end of file
diff --git a/src/main/deploy/package/macos/Sparrow.entitlements b/src/main/deploy/package/macos/Sparrow.entitlements
new file mode 100644
index 0000000..12d6f15
--- /dev/null
+++ b/src/main/deploy/package/macos/Sparrow.entitlements
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>com.apple.security.cs.allow-jit</key>
+ <true/>
+ <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
+ <true/>
+ <key>com.apple.security.cs.disable-executable-page-protection</key>
+ <true/>
+ <key>com.apple.security.cs.disable-library-validation</key>
+ <true/>
+ <key>com.apple.security.cs.allow-dyld-environment-variables</key>
+ <true/>
+ <key>com.apple.security.device.camera</key>
+ <true/>
+ </dict>
+</plist>
\ No newline at end of file
diff --git a/src/main/deploy/package/macos/installer-background.png b/src/main/deploy/package/macos/installer-background.png
new file mode 100644
index 0000000..a66fc6a
Binary files /dev/null and b/src/main/deploy/package/macos/installer-background.png differ
diff --git a/src/main/deploy/package/macos/sparrow.icns b/src/main/deploy/package/macos/sparrow.icns
new file mode 100644
index 0000000..a518323
Binary files /dev/null and b/src/main/deploy/package/macos/sparrow.icns differ
diff --git a/src/main/deploy/package/osx/Info.plist b/src/main/deploy/package/osx/Info.plist
deleted file mode 100644
index f799c79..0000000
--- a/src/main/deploy/package/osx/Info.plist
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
- <dict>
- <key>LSMinimumSystemVersion</key>
- <string>10.9</string>
- <key>CFBundleDevelopmentRegion</key>
- <string>English</string>
- <key>CFBundleAllowMixedLocalizations</key>
- <true/>
- <key>CFBundleExecutable</key>
- <string>Sparrow</string>
- <key>CFBundleIconFile</key>
- <string>Sparrow.icns</string>
- <key>CFBundleIdentifier</key>
- <string>com.sparrowwallet.sparrow</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>Sparrow</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleShortVersionString</key>
- <string>2.3.2</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <!-- See https://developer.apple.com/app-store/categories/ for list of AppStore categories -->
- <key>LSApplicationCategoryType</key>
- <string>Unknown</string>
- <key>CFBundleVersion</key>
- <string>100</string>
- <key>NSHumanReadableCopyright</key>
- <string>Copyright (C) 2021</string>
- <key>NSHighResolutionCapable</key>
- <string>true</string>
- <key>NSCameraUseContinuityCameraDeviceType</key>
- <true/>
- <key>NSCameraUsageDescription</key>
- <string>Sparrow requires access to the camera in order to scan QR codes</string>
- <key>NSLocalNetworkUsageDescription</key>
- <string>Sparrow requires access to the local network in order to connect to your configured server</string>
- <key>CFBundleURLTypes</key>
- <array>
- <dict>
- <key>CFBundleURLName</key>
- <string>com.sparrowwallet.sparrow.bitcoin</string>
- <key>CFBundleURLSchemes</key>
- <array>
- <string>bitcoin</string>
- </array>
- </dict>
- <dict>
- <key>CFBundleURLName</key>
- <string>com.sparrowwallet.sparrow.auth47</string>
- <key>CFBundleURLSchemes</key>
- <array>
- <string>auth47</string>
- </array>
- </dict>
- <dict>
- <key>CFBundleURLName</key>
- <string>com.sparrowwallet.sparrow.lightning</string>
- <key>CFBundleURLSchemes</key>
- <array>
- <string>lightning</string>
- </array>
- </dict>
- </array>
- <key>UTImportedTypeDeclarations</key>
- <array>
- <dict>
- <key>UTTypeIdentifier</key>
- <string>org.bitcoin.psbt</string>
- <key>UTTypeTagSpecification</key>
- <dict>
- <key>public.filename-extension</key>
- <array>
- <string>psbt</string>
- </array>
- </dict>
- <key>UTTypeDescription</key>
- <string>Partially Signed Bitcoin Transaction</string>
- <key>UTTypeIconFile</key>
- <string>sparrow.icns</string>
- </dict>
- <dict>
- <key>UTTypeIdentifier</key>
- <string>org.bitcoin.txn</string>
- <key>UTTypeTagSpecification</key>
- <dict>
- <key>public.filename-extension</key>
- <array>
- <string>txn</string>
- </array>
- </dict>
- <key>UTTypeDescription</key>
- <string>Bitcoin Transaction</string>
- <key>UTTypeIconFile</key>
- <string>sparrow.icns</string>
- </dict>
- <dict>
- <key>UTTypeIdentifier</key>
- <string>com.sparrowwallet.asc</string>
- <key>UTTypeTagSpecification</key>
- <dict>
- <key>public.filename-extension</key>
- <array>
- <string>asc</string>
- </array>
- </dict>
- <key>UTTypeDescription</key>
- <string>ASCII Armored File</string>
- <key>UTTypeIconFile</key>
- <string>sparrow.icns</string>
- </dict>
- </array>
- <key>CFBundleDocumentTypes</key>
- <array>
- <dict>
- <key>CFBundleTypeRole</key>
- <string>Editor</string>
- <key>CFBundleTypeIconFile</key>
- <string>sparrow.icns</string>
- <key>CFBundleTypeExtensions</key>
- <array>
- <string>psbt</string>
- </array>
- <key>CFBundleTypeName</key>
- <string>Partially Signed Bitcoin Transaction</string>
- <key>LSHandlerRank</key>
- <string>Default</string>
- </dict>
- <dict>
- <key>CFBundleTypeRole</key>
- <string>Editor</string>
- <key>CFBundleTypeIconFile</key>
- <string>sparrow.icns</string>
- <key>CFBundleTypeExtensions</key>
- <array>
- <string>txn</string>
- </array>
- <key>CFBundleTypeName</key>
- <string>Bitcoin Transaction</string>
- <key>LSHandlerRank</key>
- <string>Default</string>
- </dict>
- </array>
- </dict>
-</plist>
\ No newline at end of file
diff --git a/src/main/deploy/package/osx/Sparrow.entitlements b/src/main/deploy/package/osx/Sparrow.entitlements
deleted file mode 100644
index 12d6f15..0000000
--- a/src/main/deploy/package/osx/Sparrow.entitlements
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
- <dict>
- <key>com.apple.security.cs.allow-jit</key>
- <true/>
- <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
- <true/>
- <key>com.apple.security.cs.disable-executable-page-protection</key>
- <true/>
- <key>com.apple.security.cs.disable-library-validation</key>
- <true/>
- <key>com.apple.security.cs.allow-dyld-environment-variables</key>
- <true/>
- <key>com.apple.security.device.camera</key>
- <true/>
- </dict>
-</plist>
\ No newline at end of file
diff --git a/src/main/deploy/package/osx/installer-background.png b/src/main/deploy/package/osx/installer-background.png
deleted file mode 100644
index a66fc6a..0000000
Binary files a/src/main/deploy/package/osx/installer-background.png and /dev/null differ
diff --git a/src/main/deploy/package/osx/sparrow.icns b/src/main/deploy/package/osx/sparrow.icns
deleted file mode 100644
index a518323..0000000
Binary files a/src/main/deploy/package/osx/sparrow.icns and /dev/null differ
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.