mirror of
https://github.com/tauri-apps/tauri.git
synced 2024-12-25 11:43:06 +03:00
parent
985d250898
commit
6a5ff08ce9
6
.changes/remove-bootstrapper.md
Normal file
6
.changes/remove-bootstrapper.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
"tauri-bundler": patch
|
||||||
|
"tauri-utils": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
**Breaking change:** Removed the `useBootstrapper` option. Use https://github.com/tauri-apps/fix-path-env-rs instead.
|
@ -91,9 +91,6 @@ impl BundleTarget {
|
|||||||
pub struct DebConfig {
|
pub struct DebConfig {
|
||||||
/// The list of deb dependencies your application relies on.
|
/// The list of deb dependencies your application relies on.
|
||||||
pub depends: Option<Vec<String>>,
|
pub depends: Option<Vec<String>>,
|
||||||
/// Enable the boostrapper script.
|
|
||||||
#[serde(default)]
|
|
||||||
pub use_bootstrapper: bool,
|
|
||||||
/// The files to include on the package.
|
/// The files to include on the package.
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub files: HashMap<PathBuf, PathBuf>,
|
pub files: HashMap<PathBuf, PathBuf>,
|
||||||
@ -136,9 +133,6 @@ pub struct MacConfig {
|
|||||||
pub exception_domain: Option<String>,
|
pub exception_domain: Option<String>,
|
||||||
/// The path to the license file to add to the DMG bundle.
|
/// The path to the license file to add to the DMG bundle.
|
||||||
pub license: Option<String>,
|
pub license: Option<String>,
|
||||||
/// Enable the boostrapper script.
|
|
||||||
#[serde(default)]
|
|
||||||
pub use_bootstrapper: bool,
|
|
||||||
/// Identity to use for code signing.
|
/// Identity to use for code signing.
|
||||||
pub signing_identity: Option<String>,
|
pub signing_identity: Option<String>,
|
||||||
/// Provider short name for notarization.
|
/// Provider short name for notarization.
|
||||||
@ -154,7 +148,6 @@ impl Default for MacConfig {
|
|||||||
minimum_system_version: minimum_system_version(),
|
minimum_system_version: minimum_system_version(),
|
||||||
exception_domain: None,
|
exception_domain: None,
|
||||||
license: None,
|
license: None,
|
||||||
use_bootstrapper: false,
|
|
||||||
signing_identity: None,
|
signing_identity: None,
|
||||||
provider_short_name: None,
|
provider_short_name: None,
|
||||||
entitlements: None,
|
entitlements: None,
|
||||||
|
@ -25,12 +25,10 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": ""
|
"exceptionDomain": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -24,12 +24,10 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": ""
|
"exceptionDomain": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -35,12 +35,10 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": "",
|
"exceptionDomain": "",
|
||||||
"signingIdentity": null,
|
"signingIdentity": null,
|
||||||
"entitlements": null
|
"entitlements": null
|
||||||
|
@ -25,12 +25,10 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": ""
|
"exceptionDomain": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -25,12 +25,10 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": ""
|
"exceptionDomain": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -25,12 +25,10 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": ""
|
"exceptionDomain": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -25,12 +25,10 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": ""
|
"exceptionDomain": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -25,12 +25,10 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": ""
|
"exceptionDomain": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -24,12 +24,10 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": ""
|
"exceptionDomain": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -24,14 +24,12 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"signingIdentity": null,
|
"signingIdentity": null,
|
||||||
"entitlements": "../entitlements.plist",
|
"entitlements": "../entitlements.plist",
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": ""
|
"exceptionDomain": ""
|
||||||
},
|
},
|
||||||
"windows": {
|
"windows": {
|
||||||
|
@ -25,12 +25,10 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": ""
|
"exceptionDomain": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -25,12 +25,10 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": ""
|
"exceptionDomain": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -25,12 +25,10 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": ""
|
"exceptionDomain": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -48,7 +48,6 @@ These settings are used only when bundling `deb` packages.
|
|||||||
* `depends`: A list of strings indicating other packages (e.g. shared
|
* `depends`: A list of strings indicating other packages (e.g. shared
|
||||||
libraries) that this package depends on to be installed. If present, this
|
libraries) that this package depends on to be installed. If present, this
|
||||||
forms the `Depends:` field of the `deb` package control file.
|
forms the `Depends:` field of the `deb` package control file.
|
||||||
* `use_bootstrapper`: Enables the bootstrapper script, which allows access to the environment variables.
|
|
||||||
|
|
||||||
### Mac OS X-specific settings
|
### Mac OS X-specific settings
|
||||||
|
|
||||||
@ -75,7 +74,6 @@ These settings are used only when bundling `app` and `dmg` packages.
|
|||||||
you want) to ensure that the compiled binary has the same minimum version.
|
you want) to ensure that the compiled binary has the same minimum version.
|
||||||
* `license`: Path to the license file for the DMG bundle.
|
* `license`: Path to the license file for the DMG bundle.
|
||||||
* `exception_domain`: The exception domain to use on the macOS .app bundle. Allows communication to the outside world e.g. a web server you're shipping.
|
* `exception_domain`: The exception domain to use on the macOS .app bundle. Allows communication to the outside world e.g. a web server you're shipping.
|
||||||
* `use_bootstrapper`: Enables the bootstrapper script, which allows access to the environment variables.
|
|
||||||
* `provider_short_name`: If your Apple ID is connected to multiple teams, you have to specify the provider short name of the team you want to use to notarize your app. See [Customizing the notarization workflow](https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow) and search for `--list-providers` for more information how to obtain your provider short name.
|
* `provider_short_name`: If your Apple ID is connected to multiple teams, you have to specify the provider short name of the team you want to use to notarize your app. See [Customizing the notarization workflow](https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow) and search for `--list-providers` for more information how to obtain your provider short name.
|
||||||
|
|
||||||
### Example `tauri.conf.json`:
|
### Example `tauri.conf.json`:
|
||||||
@ -102,14 +100,12 @@ These settings are used only when bundling `app` and `dmg` packages.
|
|||||||
],
|
],
|
||||||
"resources": ["./assets/**/*.png"],
|
"resources": ["./assets/**/*.png"],
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": ["debian-dependency1", "debian-dependency2"],
|
"depends": ["debian-dependency1", "debian-dependency2"]
|
||||||
"useBootstrapper": true
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"minimumSystemVersion": "10.11",
|
"minimumSystemVersion": "10.11",
|
||||||
"license": "./LICENSE",
|
"license": "./LICENSE"
|
||||||
"useBootstrapper": true
|
|
||||||
},
|
},
|
||||||
"externalBin": ["./sidecar-app"]
|
"externalBin": ["./sidecar-app"]
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,6 @@ use anyhow::Context;
|
|||||||
use heck::ToKebabCase;
|
use heck::ToKebabCase;
|
||||||
use image::{self, codecs::png::PngDecoder, GenericImageView, ImageDecoder};
|
use image::{self, codecs::png::PngDecoder, GenericImageView, ImageDecoder};
|
||||||
use libflate::gzip;
|
use libflate::gzip;
|
||||||
use std::process::{Command, Stdio};
|
|
||||||
use walkdir::WalkDir;
|
use walkdir::WalkDir;
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
@ -128,80 +127,9 @@ pub fn generate_data(
|
|||||||
generate_icon_files(settings, &data_dir).with_context(|| "Failed to create icon files")?;
|
generate_icon_files(settings, &data_dir).with_context(|| "Failed to create icon files")?;
|
||||||
generate_desktop_file(settings, &data_dir).with_context(|| "Failed to create desktop file")?;
|
generate_desktop_file(settings, &data_dir).with_context(|| "Failed to create desktop file")?;
|
||||||
|
|
||||||
let use_bootstrapper = settings.deb().use_bootstrapper.unwrap_or_default();
|
|
||||||
if use_bootstrapper {
|
|
||||||
generate_bootstrap_file(settings, &data_dir)
|
|
||||||
.with_context(|| "Failed to generate bootstrap file")?;
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok((data_dir, icons))
|
Ok((data_dir, icons))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Generates the bootstrap script file.
|
|
||||||
fn generate_bootstrap_file(settings: &Settings, data_dir: &Path) -> crate::Result<()> {
|
|
||||||
let bin_name = settings.main_binary_name();
|
|
||||||
let bin_dir = data_dir.join("usr/bin");
|
|
||||||
|
|
||||||
let bootstrap_file_name = format!("__{}-bootstrapper", bin_name);
|
|
||||||
let bootstrapper_file_path = bin_dir.join(bootstrap_file_name.clone());
|
|
||||||
let bootstrapper_file = &mut common::create_file(&bootstrapper_file_path)?;
|
|
||||||
write!(
|
|
||||||
bootstrapper_file,
|
|
||||||
"#!/usr/bin/env sh
|
|
||||||
# This bootstraps the environment for Tauri, so environments are available.
|
|
||||||
export NVM_DIR=\"$([ -z \"${{XDG_CONFIG_HOME-}}\" ] && printf %s \"${{HOME}}/.nvm\" || printf %s \"${{XDG_CONFIG_HOME}}/nvm\")\"
|
|
||||||
[ -s \"$NVM_DIR/nvm.sh\" ] && . \"$NVM_DIR/nvm.sh\"
|
|
||||||
|
|
||||||
if [ -e ~/.bash_profile ]
|
|
||||||
then
|
|
||||||
source ~/.bash_profile
|
|
||||||
fi
|
|
||||||
if [ -e ~/.zprofile ]
|
|
||||||
then
|
|
||||||
source ~/.zprofile
|
|
||||||
fi
|
|
||||||
if [ -e ~/.profile ]
|
|
||||||
then
|
|
||||||
source ~/.profile
|
|
||||||
fi
|
|
||||||
if [ -e ~/.bashrc ]
|
|
||||||
then
|
|
||||||
source ~/.bashrc
|
|
||||||
fi
|
|
||||||
if [ -e ~/.zshrc ]
|
|
||||||
then
|
|
||||||
source ~/.zshrc
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo $PATH
|
|
||||||
|
|
||||||
source /etc/profile
|
|
||||||
|
|
||||||
if pidof -x \"{}\" >/dev/null; then
|
|
||||||
exit 0
|
|
||||||
else
|
|
||||||
Exec=/usr/bin/env /usr/bin/{} $@ & disown
|
|
||||||
fi
|
|
||||||
exit 0",
|
|
||||||
bootstrap_file_name, bin_name
|
|
||||||
)?;
|
|
||||||
bootstrapper_file.flush()?;
|
|
||||||
|
|
||||||
let status = Command::new("chmod")
|
|
||||||
.arg("+x")
|
|
||||||
.arg(bootstrap_file_name)
|
|
||||||
.current_dir(&bin_dir)
|
|
||||||
.stdout(Stdio::piped())
|
|
||||||
.stderr(Stdio::piped())
|
|
||||||
.status()?;
|
|
||||||
|
|
||||||
if !status.success() {
|
|
||||||
return Err(anyhow::anyhow!("failed to make the bootstrapper an executable",).into());
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Generate the application desktop file and store it under the `data_dir`.
|
/// Generate the application desktop file and store it under the `data_dir`.
|
||||||
fn generate_desktop_file(settings: &Settings, data_dir: &Path) -> crate::Result<()> {
|
fn generate_desktop_file(settings: &Settings, data_dir: &Path) -> crate::Result<()> {
|
||||||
let bin_name = settings.main_binary_name();
|
let bin_name = settings.main_binary_name();
|
||||||
@ -221,16 +149,7 @@ fn generate_desktop_file(settings: &Settings, data_dir: &Path) -> crate::Result<
|
|||||||
if !settings.short_description().is_empty() {
|
if !settings.short_description().is_empty() {
|
||||||
writeln!(file, "Comment={}", settings.short_description())?;
|
writeln!(file, "Comment={}", settings.short_description())?;
|
||||||
}
|
}
|
||||||
let use_bootstrapper = settings.deb().use_bootstrapper.unwrap_or_default();
|
writeln!(file, "Exec={}", bin_name)?;
|
||||||
writeln!(
|
|
||||||
file,
|
|
||||||
"Exec={}",
|
|
||||||
if use_bootstrapper {
|
|
||||||
format!("__{}-bootstrapper", bin_name)
|
|
||||||
} else {
|
|
||||||
bin_name.to_string()
|
|
||||||
}
|
|
||||||
)?;
|
|
||||||
writeln!(file, "Icon={}", bin_name)?;
|
writeln!(file, "Icon={}", bin_name)?;
|
||||||
writeln!(file, "Name={}", settings.product_name())?;
|
writeln!(file, "Name={}", settings.product_name())?;
|
||||||
writeln!(file, "Terminal=false")?;
|
writeln!(file, "Terminal=false")?;
|
||||||
|
@ -80,12 +80,6 @@ pub fn bundle_project(settings: &Settings) -> crate::Result<Vec<PathBuf>> {
|
|||||||
|
|
||||||
copy_binaries_to_bundle(&bundle_directory, settings)?;
|
copy_binaries_to_bundle(&bundle_directory, settings)?;
|
||||||
|
|
||||||
let use_bootstrapper = settings.macos().use_bootstrapper.unwrap_or_default();
|
|
||||||
if use_bootstrapper {
|
|
||||||
create_bootstrapper(&bundle_directory, settings)
|
|
||||||
.with_context(|| "Failed to create macOS bootstrapper")?;
|
|
||||||
}
|
|
||||||
|
|
||||||
if let Some(identity) = &settings.macos().signing_identity {
|
if let Some(identity) = &settings.macos().signing_identity {
|
||||||
// setup keychain allow you to import your certificate
|
// setup keychain allow you to import your certificate
|
||||||
// for CI build
|
// for CI build
|
||||||
@ -117,63 +111,6 @@ fn copy_binaries_to_bundle(bundle_directory: &Path, settings: &Settings) -> crat
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
// Creates the bootstrap script file.
|
|
||||||
fn create_bootstrapper(bundle_dir: &Path, settings: &Settings) -> crate::Result<()> {
|
|
||||||
let file = &mut common::create_file(&bundle_dir.join("MacOS/__bootstrapper"))?;
|
|
||||||
// Create a shell script to bootstrap the $PATH for Tauri, so environments like node are available.
|
|
||||||
write!(
|
|
||||||
file,
|
|
||||||
"#!/usr/bin/env sh
|
|
||||||
# This bootstraps the environment for Tauri, so environments are available.
|
|
||||||
|
|
||||||
if [ -e ~/.bash_profile ]
|
|
||||||
then
|
|
||||||
. ~/.bash_profile
|
|
||||||
fi
|
|
||||||
if [ -e ~/.zprofile ]
|
|
||||||
then
|
|
||||||
. ~/.zprofile
|
|
||||||
fi
|
|
||||||
if [ -e ~/.profile ]
|
|
||||||
then
|
|
||||||
. ~/.profile
|
|
||||||
fi
|
|
||||||
if [ -e ~/.bashrc ]
|
|
||||||
then
|
|
||||||
. ~/.bashrc
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e ~/.zshrc ]
|
|
||||||
then
|
|
||||||
. ~/.zshrc
|
|
||||||
fi
|
|
||||||
|
|
||||||
if pidof \"__bootstrapper\" >/dev/null; then
|
|
||||||
exit 0
|
|
||||||
else
|
|
||||||
exec \"`dirname \\\"$0\\\"`/{}\" $@ & disown
|
|
||||||
fi
|
|
||||||
exit 0",
|
|
||||||
settings.product_name()
|
|
||||||
)?;
|
|
||||||
file.flush()?;
|
|
||||||
|
|
||||||
// We have to make the __bootstrapper executable, or the bundle will not work
|
|
||||||
let status = Command::new("chmod")
|
|
||||||
.arg("+x")
|
|
||||||
.arg("__bootstrapper")
|
|
||||||
.current_dir(&bundle_dir.join("MacOS/"))
|
|
||||||
.stdout(Stdio::piped())
|
|
||||||
.stderr(Stdio::piped())
|
|
||||||
.status()?;
|
|
||||||
|
|
||||||
if !status.success() {
|
|
||||||
return Err(anyhow::anyhow!("failed to make the bootstrapper an executable",).into());
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
// Creates the Info.plist file.
|
// Creates the Info.plist file.
|
||||||
fn create_info_plist(
|
fn create_info_plist(
|
||||||
bundle_dir: &Path,
|
bundle_dir: &Path,
|
||||||
@ -188,7 +125,6 @@ fn create_info_plist(
|
|||||||
|
|
||||||
let bundle_plist_path = bundle_dir.join("Info.plist");
|
let bundle_plist_path = bundle_dir.join("Info.plist");
|
||||||
let file = &mut common::create_file(&bundle_plist_path)?;
|
let file = &mut common::create_file(&bundle_plist_path)?;
|
||||||
let use_bootstrapper = settings.macos().use_bootstrapper.unwrap_or_default();
|
|
||||||
write!(
|
write!(
|
||||||
file,
|
file,
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\
|
||||||
@ -210,11 +146,7 @@ fn create_info_plist(
|
|||||||
write!(
|
write!(
|
||||||
file,
|
file,
|
||||||
" <key>CFBundleExecutable</key>\n <string>{}</string>\n",
|
" <key>CFBundleExecutable</key>\n <string>{}</string>\n",
|
||||||
if use_bootstrapper {
|
|
||||||
"__bootstrapper"
|
|
||||||
} else {
|
|
||||||
settings.main_binary_name()
|
settings.main_binary_name()
|
||||||
}
|
|
||||||
)?;
|
)?;
|
||||||
if let Some(path) = bundle_icon_file {
|
if let Some(path) = bundle_icon_file {
|
||||||
write!(
|
write!(
|
||||||
|
@ -126,12 +126,6 @@ pub struct DebianSettings {
|
|||||||
// OS-specific settings:
|
// OS-specific settings:
|
||||||
/// the list of debian dependencies.
|
/// the list of debian dependencies.
|
||||||
pub depends: Option<Vec<String>>,
|
pub depends: Option<Vec<String>>,
|
||||||
/// whether we should use the bootstrap script on debian or not.
|
|
||||||
///
|
|
||||||
/// this script goal is to allow your app to access environment variables e.g $PATH.
|
|
||||||
///
|
|
||||||
/// without it, you can't run some applications installed by the user.
|
|
||||||
pub use_bootstrapper: Option<bool>,
|
|
||||||
/// List of custom files to add to the deb package.
|
/// List of custom files to add to the deb package.
|
||||||
/// Maps the path on the debian package to the path of the file to include (relative to the current working directory).
|
/// Maps the path on the debian package to the path of the file to include (relative to the current working directory).
|
||||||
pub files: HashMap<PathBuf, PathBuf>,
|
pub files: HashMap<PathBuf, PathBuf>,
|
||||||
@ -157,12 +151,6 @@ pub struct MacOsSettings {
|
|||||||
/// The path to the LICENSE file for macOS apps.
|
/// The path to the LICENSE file for macOS apps.
|
||||||
/// Currently only used by the dmg bundle.
|
/// Currently only used by the dmg bundle.
|
||||||
pub license: Option<String>,
|
pub license: Option<String>,
|
||||||
/// whether we should use the bootstrap script on macOS .app or not.
|
|
||||||
///
|
|
||||||
/// this script goal is to allow your app to access environment variables e.g $PATH.
|
|
||||||
///
|
|
||||||
/// without it, you can't run some applications installed by the user.
|
|
||||||
pub use_bootstrapper: Option<bool>,
|
|
||||||
/// The exception domain to use on the macOS .app bundle.
|
/// The exception domain to use on the macOS .app bundle.
|
||||||
///
|
///
|
||||||
/// This allows communication to the outside world e.g. a web server you're shipping.
|
/// This allows communication to the outside world e.g. a web server you're shipping.
|
||||||
|
@ -134,14 +134,12 @@
|
|||||||
"bundle": {
|
"bundle": {
|
||||||
"active": false,
|
"active": false,
|
||||||
"deb": {
|
"deb": {
|
||||||
"files": {},
|
"files": {}
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"icon": [],
|
"icon": [],
|
||||||
"identifier": "",
|
"identifier": "",
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"minimumSystemVersion": "10.13",
|
"minimumSystemVersion": "10.13"
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"windows": {
|
"windows": {
|
||||||
"allowDowngrades": true,
|
"allowDowngrades": true,
|
||||||
@ -482,8 +480,7 @@
|
|||||||
"deb": {
|
"deb": {
|
||||||
"description": "Configuration for the Debian bundle.",
|
"description": "Configuration for the Debian bundle.",
|
||||||
"default": {
|
"default": {
|
||||||
"files": {},
|
"files": {}
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"allOf": [
|
"allOf": [
|
||||||
{
|
{
|
||||||
@ -523,8 +520,7 @@
|
|||||||
"macOS": {
|
"macOS": {
|
||||||
"description": "Configuration for the macOS bundles.",
|
"description": "Configuration for the macOS bundles.",
|
||||||
"default": {
|
"default": {
|
||||||
"minimumSystemVersion": "10.13",
|
"minimumSystemVersion": "10.13"
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"allOf": [
|
"allOf": [
|
||||||
{
|
{
|
||||||
@ -925,11 +921,6 @@
|
|||||||
"additionalProperties": {
|
"additionalProperties": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"useBootstrapper": {
|
|
||||||
"description": "Enable the boostrapper script.",
|
|
||||||
"default": false,
|
|
||||||
"type": "boolean"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
@ -1168,11 +1159,6 @@
|
|||||||
"string",
|
"string",
|
||||||
"null"
|
"null"
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"useBootstrapper": {
|
|
||||||
"description": "Enable the boostrapper script.",
|
|
||||||
"default": false,
|
|
||||||
"type": "boolean"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
@ -1637,14 +1623,12 @@
|
|||||||
"default": {
|
"default": {
|
||||||
"active": false,
|
"active": false,
|
||||||
"deb": {
|
"deb": {
|
||||||
"files": {},
|
"files": {}
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"icon": [],
|
"icon": [],
|
||||||
"identifier": "",
|
"identifier": "",
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"minimumSystemVersion": "10.13",
|
"minimumSystemVersion": "10.13"
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"windows": {
|
"windows": {
|
||||||
"allowDowngrades": true,
|
"allowDowngrades": true,
|
||||||
|
@ -456,14 +456,12 @@ fn tauri_config_to_bundle_settings(
|
|||||||
} else {
|
} else {
|
||||||
Some(depends)
|
Some(depends)
|
||||||
},
|
},
|
||||||
use_bootstrapper: Some(config.deb.use_bootstrapper),
|
|
||||||
files: config.deb.files,
|
files: config.deb.files,
|
||||||
},
|
},
|
||||||
macos: MacOsSettings {
|
macos: MacOsSettings {
|
||||||
frameworks: config.macos.frameworks,
|
frameworks: config.macos.frameworks,
|
||||||
minimum_system_version: config.macos.minimum_system_version,
|
minimum_system_version: config.macos.minimum_system_version,
|
||||||
license: config.macos.license,
|
license: config.macos.license,
|
||||||
use_bootstrapper: Some(config.macos.use_bootstrapper),
|
|
||||||
exception_domain: config.macos.exception_domain,
|
exception_domain: config.macos.exception_domain,
|
||||||
signing_identity,
|
signing_identity,
|
||||||
provider_short_name,
|
provider_short_name,
|
||||||
|
@ -28,12 +28,10 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": "",
|
"exceptionDomain": "",
|
||||||
"signingIdentity": null,
|
"signingIdentity": null,
|
||||||
"providerShortName": null,
|
"providerShortName": null,
|
||||||
|
@ -26,12 +26,10 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": "",
|
"exceptionDomain": "",
|
||||||
"signingIdentity": null,
|
"signingIdentity": null,
|
||||||
"entitlements": null
|
"entitlements": null
|
||||||
|
@ -24,12 +24,10 @@
|
|||||||
"shortDescription": "",
|
"shortDescription": "",
|
||||||
"longDescription": "",
|
"longDescription": "",
|
||||||
"deb": {
|
"deb": {
|
||||||
"depends": [],
|
"depends": []
|
||||||
"useBootstrapper": false
|
|
||||||
},
|
},
|
||||||
"macOS": {
|
"macOS": {
|
||||||
"frameworks": [],
|
"frameworks": [],
|
||||||
"useBootstrapper": false,
|
|
||||||
"exceptionDomain": ""
|
"exceptionDomain": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user