mirror of
https://github.com/zed-industries/zed.git
synced 2024-12-28 23:51:36 +03:00
Add UsageDescriptions to Info.plist (#2609)
This updates our dependency on cargo-bundle to point at a fork I've created that adjusts the latest version's behavior to work for our use case. This PR also updates the Zed Info.plist to include the following keys: - NSSystemAdministrationUsageDescription - NSAppleEventsUsageDescription - NSBluetoothAlwaysUsageDescription - NSCalendarsUsageDescription - NSCameraUsageDescription - NSContactsUsageDescription - NSLocationAlwaysUsageDescription - NSLocationUsageDescription - NSLocationWhenInUseUsageDescription - NSMicrophoneUsageDescription - NSSpeechRecognitionUsageDescription - NSRemindersUsageDescription Release Notes: - Bug fix: Allow applications run via the Zed terminal to request authorization for macOS services (e.g. microphone and camera)
This commit is contained in:
commit
75b1f60126
@ -147,15 +147,19 @@ icon = ["resources/app-icon-preview@2x.png", "resources/app-icon-preview.png"]
|
||||
identifier = "dev.zed.Zed-Dev"
|
||||
name = "Zed Dev"
|
||||
osx_minimum_system_version = "10.15.7"
|
||||
osx_info_plist_exts = ["resources/info/*"]
|
||||
|
||||
[package.metadata.bundle-preview]
|
||||
icon = ["resources/app-icon-preview@2x.png", "resources/app-icon-preview.png"]
|
||||
identifier = "dev.zed.Zed-Preview"
|
||||
name = "Zed Preview"
|
||||
osx_minimum_system_version = "10.15.7"
|
||||
osx_info_plist_exts = ["resources/info/*"]
|
||||
|
||||
|
||||
[package.metadata.bundle-stable]
|
||||
icon = ["resources/app-icon@2x.png", "resources/app-icon.png"]
|
||||
identifier = "dev.zed.Zed"
|
||||
name = "Zed"
|
||||
osx_minimum_system_version = "10.15.7"
|
||||
osx_info_plist_exts = ["resources/info/*"]
|
||||
|
24
crates/zed/resources/info/Permissions.plist
Normal file
24
crates/zed/resources/info/Permissions.plist
Normal file
@ -0,0 +1,24 @@
|
||||
<key>NSSystemAdministrationUsageDescription</key>
|
||||
<string>The operation being performed by a program in Zed requires elevated permission.</string>
|
||||
<key>NSAppleEventsUsageDescription</key>
|
||||
<string>An application in Zed wants to use AppleScript.</string>
|
||||
<key>NSBluetoothAlwaysUsageDescription</key>
|
||||
<string>An application in Zed wants to use Bluetooth.</string>
|
||||
<key>NSCalendarsUsageDescription</key>
|
||||
<string>An application in Zed wants to use Calendar data.</string>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>An application in Zed wants to use the camera.</string>
|
||||
<key>NSContactsUsageDescription</key>
|
||||
<string>An application in Zed wants to use your contacts.</string>
|
||||
<key>NSLocationAlwaysUsageDescription</key>
|
||||
<string>An application in Zed wants to use your location information, even in the background.</string>
|
||||
<key>NSLocationUsageDescription</key>
|
||||
<string>An application in Zed wants to use your location information.</string>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string>An application in Zed wants to use your location information while active.</string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string>An application in Zed wants to use your microphone.</string>
|
||||
<key>NSSpeechRecognitionUsageDescription</key>
|
||||
<string>An application in Zed wants to use speech recognition.</string>
|
||||
<key>NSRemindersUsageDescription</key>
|
||||
<string>An application in Zed wants to use your reminders.</string>
|
@ -23,7 +23,11 @@ done
|
||||
export ZED_BUNDLE=true
|
||||
export MACOSX_DEPLOYMENT_TARGET=10.15.7
|
||||
|
||||
which cargo-bundle > /dev/null || cargo install cargo-bundle --version 0.5.0
|
||||
cargo_bundle_version=$(cargo -q bundle --help 2>&1 | head -n 1 || echo "")
|
||||
if [ "$cargo_bundle_version" != "cargo-bundle v0.6.0-zed" ]; then
|
||||
cargo install cargo-bundle --git https://github.com/zed-industries/cargo-bundle.git --branch zed-deploy
|
||||
fi
|
||||
|
||||
rustup target add wasm32-wasi
|
||||
|
||||
# Deal with versions of macOS that don't include libstdc++ headers
|
||||
@ -46,9 +50,7 @@ sed \
|
||||
-i .backup \
|
||||
"s/package.metadata.bundle-${channel}/package.metadata.bundle/" \
|
||||
Cargo.toml
|
||||
app_path=$(cargo bundle ${build_flag} --target x86_64-apple-darwin | xargs)
|
||||
|
||||
echo app_path
|
||||
app_path=$(cargo bundle ${build_flag} --target x86_64-apple-darwin --select-workspace-root | xargs)
|
||||
|
||||
mv Cargo.toml.backup Cargo.toml
|
||||
popd
|
||||
@ -70,13 +72,6 @@ echo "Copying WebRTC.framework into the frameworks folder"
|
||||
mkdir "${app_path}/Contents/Frameworks"
|
||||
cp -R target/x86_64-apple-darwin/${target_dir}/WebRTC.framework "${app_path}/Contents/Frameworks/"
|
||||
|
||||
mv "${app_path}/Contents/Info.plist" "${app_path}/Contents/WithoutDocumentTypes.plist"
|
||||
awk \
|
||||
"/<\/dict>/{while(getline line<\"./crates/zed/BundleDocumentTypes.plist\"){print line}}1" \
|
||||
"${app_path}/Contents/WithoutDocumentTypes.plist" \
|
||||
> "${app_path}/Contents/Info.plist"
|
||||
rm "${app_path}/Contents/WithoutDocumentTypes.plist"
|
||||
|
||||
if [[ -n $MACOS_CERTIFICATE && -n $MACOS_CERTIFICATE_PASSWORD && -n $APPLE_NOTARIZATION_USERNAME && -n $APPLE_NOTARIZATION_PASSWORD ]]; then
|
||||
echo "Signing bundle with Apple-issued certificate"
|
||||
security create-keychain -p "$MACOS_CERTIFICATE_PASSWORD" zed.keychain || echo ""
|
||||
|
Loading…
Reference in New Issue
Block a user