From 95726ebb6180d371be44bff9f16ca1eee049006a Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Wed, 4 May 2022 06:48:38 -0700 Subject: [PATCH] feat(cli): prevent default bundle identifier from building, closes #4041 (#4042) --- .changes/validate-bundle-identifier.md | 6 ++++++ Cargo.toml | 3 +-- examples/isolation/tauri.conf.json | 2 +- examples/resources/src-tauri/tauri.conf.json | 2 +- examples/sidecar/src-tauri/tauri.conf.json | 2 +- examples/updater/src-tauri/tauri.conf.json | 2 +- tooling/cli/node/test/jest/__tests__/template.spec.js | 4 ++++ tooling/cli/src/build.rs | 5 +++++ 8 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 .changes/validate-bundle-identifier.md diff --git a/.changes/validate-bundle-identifier.md b/.changes/validate-bundle-identifier.md new file mode 100644 index 000000000..d8d36396a --- /dev/null +++ b/.changes/validate-bundle-identifier.md @@ -0,0 +1,6 @@ +--- +"cli.rs": patch +"cli.js": patch +--- + +Prevent building when the bundle identifier is the default `com.tauri.dev`. diff --git a/Cargo.toml b/Cargo.toml index cc56de529..7368cf18b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,8 +19,7 @@ exclude = [ "examples/api/src-tauri", "examples/updater/src-tauri", "examples/resources/src-tauri", - "examples/sidecar/src-tauri", - "examples/isolation/src-tauri" + "examples/sidecar/src-tauri" ] # default to small, optimized workspace release binaries diff --git a/examples/isolation/tauri.conf.json b/examples/isolation/tauri.conf.json index f39361272..5b84f6424 100644 --- a/examples/isolation/tauri.conf.json +++ b/examples/isolation/tauri.conf.json @@ -21,7 +21,7 @@ "bundle": { "active": true, "targets": "all", - "identifier": "com.tauri.isolation", + "identifier": "com.tauri.dev", "icon": [ "../.icons/32x32.png", "../.icons/128x128.png", diff --git a/examples/resources/src-tauri/tauri.conf.json b/examples/resources/src-tauri/tauri.conf.json index 5033d4a5b..078e5fc41 100644 --- a/examples/resources/src-tauri/tauri.conf.json +++ b/examples/resources/src-tauri/tauri.conf.json @@ -11,7 +11,7 @@ "bundle": { "active": true, "targets": "all", - "identifier": "com.tauri.dev", + "identifier": "com.tauri.resources", "icon": [ "../../.icons/32x32.png", "../../.icons/128x128.png", diff --git a/examples/sidecar/src-tauri/tauri.conf.json b/examples/sidecar/src-tauri/tauri.conf.json index 09e869b76..ad36028e2 100644 --- a/examples/sidecar/src-tauri/tauri.conf.json +++ b/examples/sidecar/src-tauri/tauri.conf.json @@ -11,7 +11,7 @@ "bundle": { "active": true, "targets": "all", - "identifier": "com.tauri.dev", + "identifier": "com.tauri.sidecar", "icon": [ "../../.icons/32x32.png", "../../.icons/128x128.png", diff --git a/examples/updater/src-tauri/tauri.conf.json b/examples/updater/src-tauri/tauri.conf.json index e9c8bd2b4..700dfd822 100644 --- a/examples/updater/src-tauri/tauri.conf.json +++ b/examples/updater/src-tauri/tauri.conf.json @@ -10,7 +10,7 @@ "bundle": { "active": true, "targets": "all", - "identifier": "com.tauri.dev", + "identifier": "com.tauri.updater", "icon": [ "../../.icons/32x32.png", "../../.icons/128x128.png", diff --git a/tooling/cli/node/test/jest/__tests__/template.spec.js b/tooling/cli/node/test/jest/__tests__/template.spec.js index 102ef7273..7a9bf68e5 100644 --- a/tooling/cli/node/test/jest/__tests__/template.spec.js +++ b/tooling/cli/node/test/jest/__tests__/template.spec.js @@ -39,6 +39,10 @@ describe('[CLI] cli.js template', () => { const manifestFile = readFileSync(manifestPath).toString() writeFileSync(manifestPath, `workspace = { }\n${manifestFile}`) + const configPath = resolve(tauriFixturePath, 'tauri.conf.json') + const config = readFileSync(configPath).toString() + writeFileSync(configPath, config.replace('com.tauri.dev', 'com.tauri.test')) + await cli.run(['build', '--verbose']).catch(err => { console.error(err) throw err diff --git a/tooling/cli/src/build.rs b/tooling/cli/src/build.rs index c613a497b..95f186f6e 100644 --- a/tooling/cli/src/build.rs +++ b/tooling/cli/src/build.rs @@ -70,6 +70,11 @@ pub fn command(options: Options) -> Result<()> { let config_guard = config.lock().unwrap(); let config_ = config_guard.as_ref().unwrap(); + if config_.tauri.bundle.identifier == "com.tauri.dev" { + logger.error("You must change the bundle identifier in `tauri.conf.json > tauri > bundle > identifier`. The default value `com.tauri.dev` is not allowed as it must be unique across applications."); + std::process::exit(1); + } + if let Some(before_build) = &config_.build.before_build_command { if !before_build.is_empty() { logger.log(format!("Running `{}`", before_build));