diff --git a/.github/workflows/deploy-release.yaml b/.github/workflows/deploy-release.yaml index 1559ee2e..64343f17 100644 --- a/.github/workflows/deploy-release.yaml +++ b/.github/workflows/deploy-release.yaml @@ -32,7 +32,7 @@ jobs: publish-macos: runs-on: macos-latest - needs: [prepare, deploy-web] + needs: [prepare, deploy-app] env: APP_PATH: src-tauri/target/universal-apple-darwin/release/bundle/macos/Scriptio.app PKG_PATH: Scriptio.pkg @@ -98,7 +98,7 @@ jobs: publish-ios: runs-on: macos-latest - needs: [prepare, deploy-web] + needs: [prepare, deploy-app] steps: - uses: actions/checkout@v6 @@ -205,7 +205,7 @@ jobs: publish-windows: runs-on: windows-latest - needs: [prepare, deploy-web] + needs: [prepare, deploy-app] env: APP_PATH: src-tauri/target/msix/Scriptio.msixbundle steps: @@ -264,7 +264,7 @@ jobs: env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} - deploy-web: + deploy-app: runs-on: ubuntu-latest needs: prepare env: @@ -325,7 +325,7 @@ jobs: tag-release: runs-on: ubuntu-latest - needs: [prepare, deploy-web] + needs: [prepare, deploy-app] steps: - uses: actions/checkout@v6 with: diff --git a/.github/workflows/deploy-staging.yaml b/.github/workflows/deploy-staging.yaml index f2c4cbbe..d14c2e9b 100644 --- a/.github/workflows/deploy-staging.yaml +++ b/.github/workflows/deploy-staging.yaml @@ -278,7 +278,7 @@ jobs: env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} - deploy-web: + deploy-app: runs-on: ubuntu-latest needs: prepare env: diff --git a/patches/@choochmeque+tauri-windows-bundle+0.1.15.patch b/patches/@choochmeque+tauri-windows-bundle+0.1.15.patch index d65cd593..9e3e98af 100644 --- a/patches/@choochmeque+tauri-windows-bundle+0.1.15.patch +++ b/patches/@choochmeque+tauri-windows-bundle+0.1.15.patch @@ -1,7 +1,16 @@ diff --git a/node_modules/@choochmeque/tauri-windows-bundle/dist/cli.js b/node_modules/@choochmeque/tauri-windows-bundle/dist/cli.js -index 42b3955..439214b 100644 +index 42b3955..608a8d7 100644 --- a/node_modules/@choochmeque/tauri-windows-bundle/dist/cli.js +++ b/node_modules/@choochmeque/tauri-windows-bundle/dist/cli.js +@@ -6,7 +6,7 @@ import * as path from 'node:path'; + import { Jimp } from 'jimp'; + import { fileURLToPath } from 'node:url'; + import { glob } from 'glob'; +-import { exec, spawn } from 'node:child_process'; ++import { exec, execFileSync, spawn } from 'node:child_process'; + import { promisify } from 'node:util'; + import * as readline from 'node:readline'; + @@ -426,7 +426,7 @@ function generateManifest(config, arch, minVersion, windowsDir) { DISPLAY_NAME: config.displayName, PUBLISHER_DISPLAY_NAME: config.publisherDisplayName, @@ -39,7 +48,58 @@ index 42b3955..439214b 100644 const srcExe = path.join(buildDir, exeName); if (!fs.existsSync(srcExe)) { throw new Error(`Executable not found: ${srcExe}`); -@@ -1016,7 +1016,7 @@ async function build(options) { +@@ -735,8 +735,50 @@ function prepareAppxContent(projectRoot, arch, config, tauriConfig, minVersion, + } + // Copy bundled resources from tauri.conf.json + copyBundledResources(projectRoot, appxDir, tauriConfig); ++ // Index targetsize/altform-qualified assets (Assets/Square44x44Logo.targetsize-*.png) ++ // into resources.pri. Without this, Windows can't resolve the unplated taskbar/Start ++ // variants and falls back to the plain plated Square44x44Logo.png everywhere. ++ generateResourcesPri(appxDir, windowsDir); + return appxDir; + } ++function findMakePri() { ++ const kitsBinRoots = [ ++ 'C:\\Program Files (x86)\\Windows Kits\\10\\bin', ++ 'C:\\Program Files\\Windows Kits\\10\\bin', ++ ]; ++ const candidates = []; ++ for (const root of kitsBinRoots) { ++ if (!fs.existsSync(root)) ++ continue; ++ for (const version of fs.readdirSync(root)) { ++ const exe = path.join(root, version, 'x64', 'makepri.exe'); ++ if (fs.existsSync(exe)) ++ candidates.push(exe); ++ } ++ } ++ candidates.sort(); ++ return candidates.length > 0 ? candidates[candidates.length - 1] : null; ++} ++function generateResourcesPri(appxDir, windowsDir) { ++ const priConfig = path.join(windowsDir, 'priconfig.xml'); ++ if (!fs.existsSync(priConfig)) { ++ console.warn(` ${priConfig} not found; skipping resources.pri (taskbar/Start icons will show plated)`); ++ return; ++ } ++ const makepri = findMakePri(); ++ if (!makepri) { ++ console.warn(' makepri.exe not found (requires Windows SDK); skipping resources.pri (taskbar/Start icons will show plated)'); ++ return; ++ } ++ const priFile = path.join(appxDir, 'resources.pri'); ++ if (fs.existsSync(priFile)) { ++ fs.rmSync(priFile); ++ } ++ execFileSync(makepri, ['new', '/pr', appxDir, '/cf', priConfig, '/o'], { ++ cwd: appxDir, ++ stdio: 'ignore', ++ }); ++} + function copyBundledResources(projectRoot, appxDir, tauriConfig) { + const resources = tauriConfig.bundle?.resources; + if (!resources || resources.length === 0) +@@ -1016,7 +1058,7 @@ async function build(options) { } // Prepare AppxContent directory console.log(` Preparing AppxContent for ${arch}...`); diff --git a/src-tauri/gen/windows/priconfig.xml b/src-tauri/gen/windows/priconfig.xml new file mode 100644 index 00000000..cd760bee --- /dev/null +++ b/src-tauri/gen/windows/priconfig.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 6a1c889a..25fd4317 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -35,6 +35,7 @@ export const metadata: Metadata = { authors: [{ name: "Hugo 'Lycoon' Bois" }], keywords: ["movie", "script", "writing", "story", "screenwriting"], icons: { icon: "/favicon.ico" }, + itunes: { appId: "6762051812", appArgument: URL }, openGraph: { type: "website",