Browse Source

Test and fix Mac code-signing and notarization.

tags/v2.0.0
Andrew Belt 3 years ago
parent
commit
b13d8832a0
2 changed files with 13 additions and 21 deletions
  1. +7
    -14
      Entitlements.plist
  2. +6
    -7
      Makefile

+ 7
- 14
Entitlements.plist View File

@@ -2,19 +2,12 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>com.apple.security.get-task-allow</key>
<true/>
<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.device.audio-input</key>
<true/>
<key>com.apple.security.device.camera</key>
<true/>
<key>com.apple.security.get-task-allow</key><true/>
<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.device.audio-input</key><true/>
<key>com.apple.security.device.camera</key><true/>
</dict> </dict>
</plist> </plist>

+ 6
- 7
Makefile View File

@@ -154,7 +154,7 @@ DIST_MD := $(wildcard *.md)
DIST_HTML := $(patsubst %.md, build/%.html, $(DIST_MD)) DIST_HTML := $(patsubst %.md, build/%.html, $(DIST_MD))




# This target is not supported for public use
# Target not supported for public use
dist: $(TARGET) $(STANDALONE_TARGET) $(DIST_HTML) dist: $(TARGET) $(STANDALONE_TARGET) $(DIST_HTML)
mkdir -p dist mkdir -p dist
# Copy Rack to dist # Copy Rack to dist
@@ -196,8 +196,7 @@ ifdef ARCH_MAC
cp plugins/Fundamental/dist/Fundamental-*.vcvplugin dist/"$(DIST_BUNDLE)"/Contents/Resources/Fundamental.vcvplugin cp plugins/Fundamental/dist/Fundamental-*.vcvplugin dist/"$(DIST_BUNDLE)"/Contents/Resources/Fundamental.vcvplugin
# Clean up and sign bundle # Clean up and sign bundle
xattr -cr dist/"$(DIST_BUNDLE)" xattr -cr dist/"$(DIST_BUNDLE)"
# This will only work if you have the private key to my certificate
codesign --verbose --sign "Developer ID Application: Andrew Belt (VRF26934X5)" --options runtime --entitlements Entitlements.plist --deep dist/"$(DIST_BUNDLE)"
codesign --verbose --sign "Developer ID Application: Andrew Belt (VRF26934X5)" --options runtime --entitlements Entitlements.plist --timestamp --deep dist/"$(DIST_BUNDLE)"/Contents/Resources/$(TARGET) dist/"$(DIST_BUNDLE)"
codesign --verify --deep --strict --verbose=2 dist/"$(DIST_BUNDLE)" codesign --verify --deep --strict --verbose=2 dist/"$(DIST_BUNDLE)"
# Make ZIP # Make ZIP
cd dist && zip -q -9 -r "$(DIST_NAME)".zip "$(DIST_BUNDLE)" cd dist && zip -q -9 -r "$(DIST_NAME)".zip "$(DIST_BUNDLE)"
@@ -233,18 +232,18 @@ endif
cd dist && zip -q -9 -r "$(DIST_SDK)" "$(DIST_SDK_DIR)" cd dist && zip -q -9 -r "$(DIST_SDK)" "$(DIST_SDK_DIR)"




# Target not supported for public use
notarize: notarize:
ifdef ARCH_MAC ifdef ARCH_MAC
# This will only work if you have my Apple ID password in your keychain
xcrun altool --notarize-app -f dist/"$(DIST_BUNDLE)"-"$(VERSION)"-$(ARCH_OS_NAME).zip --primary-bundle-id=com.vcvrack.rack -u "andrewpbelt@gmail.com" -p @keychain:notarize --output-format xml > dist/UploadInfo.plist
xcrun altool --notarize-app --primary-bundle-id=com.vcvrack.rack --username "andrew@vcvrack.com" --password "@keychain:notarize" --output-format xml --file dist/"$(DIST_NAME)".zip > dist/UploadInfo.plist
# Wait for Apple's servers to approve the app # Wait for Apple's servers to approve the app
while true; do \ while true; do \
echo "Waiting on Apple servers..." ; \ echo "Waiting on Apple servers..." ; \
xcrun altool --notarization-info `/usr/libexec/PlistBuddy -c "Print :notarization-upload:RequestUUID" dist/UploadInfo.plist` -u "andrewpbelt@gmail.com" -p @keychain:notarize --output-format xml > dist/RequestInfo.plist ; \
sleep 10 ; \
xcrun altool --notarization-info `/usr/libexec/PlistBuddy -c "Print :notarization-upload:RequestUUID" dist/UploadInfo.plist` -u "andrew@vcvrack.com" -p @keychain:notarize --output-format xml > dist/RequestInfo.plist ; \
if [ "`/usr/libexec/PlistBuddy -c "Print :notarization-info:Status" dist/RequestInfo.plist`" != "in progress" ]; then \ if [ "`/usr/libexec/PlistBuddy -c "Print :notarization-info:Status" dist/RequestInfo.plist`" != "in progress" ]; then \
break ; \ break ; \
fi ; \ fi ; \
sleep 10 ; \
done done
# Mark app as notarized, check, and re-zip # Mark app as notarized, check, and re-zip
xcrun stapler staple dist/"$(DIST_BUNDLE)" xcrun stapler staple dist/"$(DIST_BUNDLE)"


Loading…
Cancel
Save