mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-10-22 14:22:39 +00:00
Let FSKit vaults mount without a mount point via fskit-nio-adapter 0.2.0 and the fskit.mount entitlement
This commit is contained in:
@@ -238,6 +238,7 @@ jobs:
|
||||
rm -r ${OUTPUT_PATH}
|
||||
fi
|
||||
done
|
||||
dist/mac/verify-provisioning-profile.sh Cryptomator.app/Contents/embedded.provisionprofile "${TEAM_IDENTIFIER}.org.cryptomator" com.apple.developer.fskit.mount
|
||||
echo "Codesigning Cryptomator.app..."
|
||||
sed -i '' "s|###APP_IDENTIFIER_PREFIX###|${TEAM_IDENTIFIER}.|g" dist/mac/Cryptomator.entitlements
|
||||
sed -i '' "s|###TEAM_IDENTIFIER###|${TEAM_IDENTIFIER}|g" dist/mac/Cryptomator.entitlements
|
||||
@@ -256,13 +257,7 @@ jobs:
|
||||
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString ${VERSION_NUM}" ${APPEX_PATH}/Contents/Info.plist
|
||||
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${REVISION_NUM}" ${APPEX_PATH}/Contents/Info.plist
|
||||
echo -n "$PROVISIONING_PROFILE_BASE64" | base64 --decode --output ${APPEX_PATH}/Contents/embedded.provisionprofile
|
||||
PROFILE_PLIST=$(security cms -D -i ${APPEX_PATH}/Contents/embedded.provisionprofile)
|
||||
PROFILE_APP_IDENTIFIER=$(plutil -extract 'Entitlements.com\.apple\.application-identifier' raw -o - - <<< "${PROFILE_PLIST}" 2>/dev/null || true)
|
||||
PROFILE_FSMODULE=$(plutil -extract 'Entitlements.com\.apple\.developer\.fskit\.fsmodule' raw -o - - <<< "${PROFILE_PLIST}" 2>/dev/null || true)
|
||||
if [[ "${PROFILE_APP_IDENTIFIER}" != "${TEAM_IDENTIFIER}.org.cryptomator.fskit" ]] || [[ "${PROFILE_FSMODULE}" != "true" ]]; then
|
||||
>&2 echo "Provisioning profile is not for ${TEAM_IDENTIFIER}.org.cryptomator.fskit with com.apple.developer.fskit.fsmodule"
|
||||
exit 1
|
||||
fi
|
||||
dist/mac/verify-provisioning-profile.sh ${APPEX_PATH}/Contents/embedded.provisionprofile "${TEAM_IDENTIFIER}.org.cryptomator.fskit" com.apple.developer.fskit.fsmodule
|
||||
echo "Codesigning FSKit extension..."
|
||||
sed -i '' "s|###APP_IDENTIFIER_PREFIX###|${TEAM_IDENTIFIER}.|g" dist/mac/FSKitExtension.entitlements
|
||||
sed -i '' "s|###TEAM_IDENTIFIER###|${TEAM_IDENTIFIER}|g" dist/mac/FSKitExtension.entitlements
|
||||
|
||||
@@ -237,6 +237,7 @@ jobs:
|
||||
rm -r ${OUTPUT_PATH}
|
||||
fi
|
||||
done
|
||||
dist/mac/verify-provisioning-profile.sh Cryptomator.app/Contents/embedded.provisionprofile "${TEAM_IDENTIFIER}.org.cryptomator" com.apple.developer.fskit.mount
|
||||
echo "Codesigning Cryptomator.app..."
|
||||
sed -i '' "s|###APP_IDENTIFIER_PREFIX###|${TEAM_IDENTIFIER}.|g" dist/mac/Cryptomator.entitlements
|
||||
sed -i '' "s|###TEAM_IDENTIFIER###|${TEAM_IDENTIFIER}|g" dist/mac/Cryptomator.entitlements
|
||||
@@ -255,13 +256,7 @@ jobs:
|
||||
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString ${VERSION_NUM}" ${APPEX_PATH}/Contents/Info.plist
|
||||
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${REVISION_NUM}" ${APPEX_PATH}/Contents/Info.plist
|
||||
echo -n "$PROVISIONING_PROFILE_BASE64" | base64 --decode --output ${APPEX_PATH}/Contents/embedded.provisionprofile
|
||||
PROFILE_PLIST=$(security cms -D -i ${APPEX_PATH}/Contents/embedded.provisionprofile)
|
||||
PROFILE_APP_IDENTIFIER=$(plutil -extract 'Entitlements.com\.apple\.application-identifier' raw -o - - <<< "${PROFILE_PLIST}" 2>/dev/null || true)
|
||||
PROFILE_FSMODULE=$(plutil -extract 'Entitlements.com\.apple\.developer\.fskit\.fsmodule' raw -o - - <<< "${PROFILE_PLIST}" 2>/dev/null || true)
|
||||
if [[ "${PROFILE_APP_IDENTIFIER}" != "${TEAM_IDENTIFIER}.org.cryptomator.fskit" ]] || [[ "${PROFILE_FSMODULE}" != "true" ]]; then
|
||||
>&2 echo "Provisioning profile is not for ${TEAM_IDENTIFIER}.org.cryptomator.fskit with com.apple.developer.fskit.fsmodule"
|
||||
exit 1
|
||||
fi
|
||||
dist/mac/verify-provisioning-profile.sh ${APPEX_PATH}/Contents/embedded.provisionprofile "${TEAM_IDENTIFIER}.org.cryptomator.fskit" com.apple.developer.fskit.fsmodule
|
||||
echo "Codesigning FSKit extension..."
|
||||
sed -i '' "s|###APP_IDENTIFIER_PREFIX###|${TEAM_IDENTIFIER}.|g" dist/mac/FSKitExtension.entitlements
|
||||
sed -i '' "s|###TEAM_IDENTIFIER###|${TEAM_IDENTIFIER}|g" dist/mac/FSKitExtension.entitlements
|
||||
|
||||
Vendored
+2
@@ -4,6 +4,8 @@
|
||||
<dict>
|
||||
<key>com.apple.application-identifier</key>
|
||||
<string>###APP_IDENTIFIER_PREFIX###org.cryptomator</string>
|
||||
<key>com.apple.developer.fskit.mount</key>
|
||||
<true/>
|
||||
<key>com.apple.developer.team-identifier</key>
|
||||
<string>###TEAM_IDENTIFIER###</string>
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
|
||||
Vendored
+4
-7
@@ -52,8 +52,12 @@ if [ -n "${CODESIGN_IDENTITY}" ]; then
|
||||
command -v codesign >/dev/null 2>&1 || { echo >&2 "codesign not found. Fix by 'xcode-select --install'."; exit 1; }
|
||||
if [[ ! `security find-identity -v -p codesigning | grep -w "${CODESIGN_IDENTITY}"` ]]; then echo "Given codesign identity is invalid."; exit 1; fi
|
||||
fi
|
||||
if [ -n "${CODESIGN_IDENTITY}" ] && [ -n "${TEAM_IDENTIFIER}" ]; then
|
||||
../verify-provisioning-profile.sh ../embedded.provisionprofile "${TEAM_IDENTIFIER}.${PACKAGE_IDENTIFIER}" com.apple.developer.fskit.mount || exit 1
|
||||
fi
|
||||
if [ -n "${CODESIGN_IDENTITY}" ] && [ -n "${TEAM_IDENTIFIER}" ] && [ "${JAVAFX_ARCH}" = "aarch64" ]; then
|
||||
[ -f ../fskit-extension.provisionprofile ] || { echo >&2 "FSKit extension provisioning profile not found at dist/mac/fskit-extension.provisionprofile."; exit 1; }
|
||||
../verify-provisioning-profile.sh ../fskit-extension.provisionprofile "${TEAM_IDENTIFIER}.${PACKAGE_IDENTIFIER}.fskit" com.apple.developer.fskit.fsmodule || exit 1
|
||||
fi
|
||||
|
||||
# download and check jmods
|
||||
@@ -183,13 +187,6 @@ if [ -n "${CODESIGN_IDENTITY}" ] && [ -n "${TEAM_IDENTIFIER}" ]; then
|
||||
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString ${VERSION_NO}" ${APPEX_PATH}/Contents/Info.plist || exit 1
|
||||
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${REVISION_NO}" ${APPEX_PATH}/Contents/Info.plist || exit 1
|
||||
cp ../fskit-extension.provisionprofile ${APPEX_PATH}/Contents/embedded.provisionprofile || exit 1
|
||||
PROFILE_PLIST=$(security cms -D -i ${APPEX_PATH}/Contents/embedded.provisionprofile) || exit 1
|
||||
PROFILE_APP_IDENTIFIER=$(plutil -extract 'Entitlements.com\.apple\.application-identifier' raw -o - - <<< "${PROFILE_PLIST}" 2>/dev/null)
|
||||
PROFILE_FSMODULE=$(plutil -extract 'Entitlements.com\.apple\.developer\.fskit\.fsmodule' raw -o - - <<< "${PROFILE_PLIST}" 2>/dev/null)
|
||||
if [[ "${PROFILE_APP_IDENTIFIER}" != "${TEAM_IDENTIFIER}.${PACKAGE_IDENTIFIER}.fskit" ]] || [[ "${PROFILE_FSMODULE}" != "true" ]]; then
|
||||
>&2 echo "Provisioning profile is not for ${TEAM_IDENTIFIER}.${PACKAGE_IDENTIFIER}.fskit with com.apple.developer.fskit.fsmodule"
|
||||
exit 1
|
||||
fi
|
||||
echo "Codesigning FSKit extension..."
|
||||
cp ../FSKitExtension.entitlements . || exit 1
|
||||
sed -i '' "s|###APP_IDENTIFIER_PREFIX###|${TEAM_IDENTIFIER}.|g" FSKitExtension.entitlements || exit 1
|
||||
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
if [ $# -ne 3 ]; then echo "Usage: $0 <provisioning-profile> <application-identifier> <entitlement>" 1>&2; exit 1; fi
|
||||
|
||||
PROFILE_PLIST=$(security cms -D -i "$1") || exit 1
|
||||
PROFILE_APP_IDENTIFIER=$(plutil -extract 'Entitlements.com\.apple\.application-identifier' raw -o - - <<< "${PROFILE_PLIST}" 2>/dev/null)
|
||||
PROFILE_ENTITLEMENT=$(plutil -extract "Entitlements.${3//./\\.}" raw -o - - <<< "${PROFILE_PLIST}" 2>/dev/null)
|
||||
if [[ "${PROFILE_APP_IDENTIFIER}" != "$2" ]] || [[ "${PROFILE_ENTITLEMENT}" != "true" ]]; then
|
||||
>&2 echo "Provisioning profile $1 is not for $2 with $3"
|
||||
exit 1
|
||||
fi
|
||||
@@ -40,8 +40,8 @@
|
||||
<cryptomator.integrations.mac.version>1.5.0</cryptomator.integrations.mac.version>
|
||||
<cryptomator.integrations.linux.version>1.8.0-beta1</cryptomator.integrations.linux.version>
|
||||
<cryptomator.fuse.version>6.0.1</cryptomator.fuse.version>
|
||||
<!-- on every bump, compare dist/mac/FSKitExtension.entitlements with fskit/Bundle/FSKitNioExtension.entitlements in fskit-nio-adapter at that tag -->
|
||||
<cryptomator.fskit.version>0.1.0</cryptomator.fskit.version>
|
||||
<!-- on every bump, check the entitlements and provisioning profiles in dist/mac against "Embed the extension in an app" in the README of fskit-nio-adapter at that tag -->
|
||||
<cryptomator.fskit.version>0.2.0</cryptomator.fskit.version>
|
||||
<cryptomator.webdav.version>3.0.2</cryptomator.webdav.version>
|
||||
<cryptomator.webdav-servlet.version>1.2.12</cryptomator.webdav-servlet.version>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user