From ab070b0563cf07c6268954db89cdb0789a14e1d4 Mon Sep 17 00:00:00 2001
From: Nayam Amarshe <25067102+NayamAmarshe@users.noreply.github.com>
Date: Sat, 14 Oct 2023 06:30:49 +0530
Subject: [PATCH] Update app store build and binaries
---
.gitignore | 3 +-
electron/index.ts | 2 +-
electron/utils/get-resource-paths.ts | 3 +-
electron/utils/spawn-upscayl.ts | 2 +-
package.json | 29 +++++++++++++++++-
renderer/components/Footer.tsx | 2 +-
renderer/components/settings-tab/index.tsx | 3 +-
renderer/pages/index.tsx | 6 ++--
renderer/styles/globals.css | 22 +++++++++++++
renderer/tsconfig.json | 2 +-
renderer/utils/flags.ts | 8 +++++
resources/entitlements.mac.plist | 6 ++++
resources/entitlements.mas.inherit.plist | 14 +++++++++
resources/entitlements.mas.loginhelper.plist | 8 +++++
.../bin/{upscayl-realesrgan => upcayl-bin} | Bin 11399776 -> 11394616 bytes
.../bin/{upscayl-realesrgan => upscayl-bin} | Bin 26787080 -> 28123480 bytes
...upscayl-realesrgan.exe => upscayl-bin.exe} | Bin 6161408 -> 6322176 bytes
17 files changed, 98 insertions(+), 12 deletions(-)
create mode 100644 renderer/utils/flags.ts
create mode 100644 resources/entitlements.mas.inherit.plist
create mode 100644 resources/entitlements.mas.loginhelper.plist
rename resources/linux/bin/{upscayl-realesrgan => upcayl-bin} (70%)
rename resources/mac/bin/{upscayl-realesrgan => upscayl-bin} (67%)
rename resources/win/bin/{upscayl-realesrgan.exe => upscayl-bin.exe} (56%)
diff --git a/.gitignore b/.gitignore
index a6b3ed3..6b34263 100644
--- a/.gitignore
+++ b/.gitignore
@@ -48,4 +48,5 @@ build-dir/
main/*.js
main/utils/*.js
-.env
\ No newline at end of file
+.env
+*.provisionprofile
\ No newline at end of file
diff --git a/electron/index.ts b/electron/index.ts
index bd8a0d2..032ad2b 100644
--- a/electron/index.ts
+++ b/electron/index.ts
@@ -40,7 +40,7 @@ app.on("ready", async () => {
autoUpdater.checkForUpdates();
}
- log.info("🚀 UPSCAYL EXEC PATH: ", execPath("realesrgan"));
+ log.info("🚀 UPSCAYL EXEC PATH: ", execPath("bin"));
log.info("🚀 MODELS PATH: ", modelsPath);
});
diff --git a/electron/utils/get-resource-paths.ts b/electron/utils/get-resource-paths.ts
index dbb6331..65aa82d 100644
--- a/electron/utils/get-resource-paths.ts
+++ b/electron/utils/get-resource-paths.ts
@@ -15,8 +15,7 @@ const binariesPath = isDev
? join(appRootDir, "resources", getPlatform()!, "bin")
: join(dirname(appRootDir), "bin");
-const execPath = (execName) =>
- resolve(join(binariesPath, `./upscayl-${execName}`));
+const execPath = (execName) => resolve(join(binariesPath, `./upscayl-bin`));
const modelsPath = isDev
? resolve(join(appRootDir, "resources", "models"))
diff --git a/electron/utils/spawn-upscayl.ts b/electron/utils/spawn-upscayl.ts
index b5001c5..11caae2 100644
--- a/electron/utils/spawn-upscayl.ts
+++ b/electron/utils/spawn-upscayl.ts
@@ -8,7 +8,7 @@ export const spawnUpscayl = (
) => {
logit("📢 Upscayl Command: ", command);
- const spawnedProcess = spawn(execPath(binaryName), command, {
+ const spawnedProcess = spawn(execPath("bin"), command, {
cwd: undefined,
detached: false,
});
diff --git a/package.json b/package.json
index 064a4b3..73e8551 100644
--- a/package.json
+++ b/package.json
@@ -48,6 +48,7 @@
"dist:pkg": "tsc && npm run build && cross-env DEBUG=* electron-builder build -m pkg",
"dist:mac": "tsc && npm run build && electron-builder --mac --universal",
"dist:mac-arm64": "tsc && npm run build && electron-builder --mac --arm64",
+ "dist:mac-mas": "tsc && npm run build && electron-builder --mac mas --universal",
"dist:win": "tsc && npm run build && electron-builder --win",
"dist:linux": "tsc && npm run build && electron-builder --linux",
"publish-app": "tsc && npm run build && electron-builder -wlm --publish always",
@@ -95,6 +96,7 @@
}
],
"mac": {
+ "type": "distribution",
"category": "public.app-category.photography",
"hardenedRuntime": true,
"gatekeeperAssess": false,
@@ -113,9 +115,34 @@
"arch": [
"universal"
]
+ },
+ {
+ "target": "mas",
+ "arch": [
+ "universal"
+ ]
}
],
- "x64ArchFiles": "*"
+ "x64ArchFiles": "*",
+ "provisioningProfile": "embedded.provisionprofile"
+ },
+ "mas": {
+ "hardenedRuntime": false,
+ "type": "distribution",
+ "category": "public.app-category.photography",
+ "entitlements": "resources/entitlements.mac.plist",
+ "entitlementsInherit": "resources/entitlements.mac.plist",
+ "provisioningProfile": "embedded.provisionprofile",
+ "mergeASARs": false,
+ "x64ArchFiles": "*",
+ "target": [
+ {
+ "target": "pkg",
+ "arch": [
+ "universal"
+ ]
+ }
+ ]
},
"dmg": {
"sign": "false",
diff --git a/renderer/components/Footer.tsx b/renderer/components/Footer.tsx
index 8d892db..0d3330c 100644
--- a/renderer/components/Footer.tsx
+++ b/renderer/components/Footer.tsx
@@ -18,7 +18,7 @@ function Footer() {
href="https://github.com/upscayl"
className="font-bold"
target="_blank">
- TGS963 and Nayam Amarshe
+ The Upscayl Team
diff --git a/renderer/components/settings-tab/index.tsx b/renderer/components/settings-tab/index.tsx
index 72594c3..4892e4d 100644
--- a/renderer/components/settings-tab/index.tsx
+++ b/renderer/components/settings-tab/index.tsx
@@ -21,6 +21,7 @@ import OverwriteToggle from "./OverwriteToggle";
import { UpscaylCloudModal } from "../UpscaylCloudModal";
import { ResetSettings } from "./ResetSettings";
import ProcessImageToggle from "./ProcessImageToggle";
+import { flag } from "@/utils/flags";
interface IProps {
batchMode: boolean;
@@ -189,7 +190,7 @@ function SettingsTab({
target="_blank">
Read Wiki Guide
-
+ {flag("IS_APPLE_STORE_BUILD") && }
{
}}
draggable="false"
alt=""
- className="h-full w-full bg-[#1d1c23] object-contain"
+ className="h-full w-full bg-gradient-to-br from-base-300 to-base-100 object-contain"
/>
>
)}
@@ -659,7 +659,7 @@ const Home = () => {
backgroundPosition: "0% 0%",
transformOrigin: backgroundPosition,
}}
- className={`h-full w-full bg-[#1d1c23] transition-transform group-hover:scale-[${zoomAmount}]`}
+ className={`h-full w-full bg-gradient-to-br from-base-300 to-base-100 transition-transform group-hover:scale-[${zoomAmount}]`}
/>
>
}
@@ -678,7 +678,7 @@ const Home = () => {
transformOrigin: backgroundPosition,
}}
onMouseMove={handleMouseMove}
- className={`h-full w-full bg-[#1d1c23] transition-transform group-hover:scale-[${zoomAmount}]`}
+ className={`h-full w-full bg-gradient-to-br from-base-300 to-base-100 transition-transform group-hover:scale-[${zoomAmount}]`}
/>
>
}
diff --git a/renderer/styles/globals.css b/renderer/styles/globals.css
index 50f6e63..e0da164 100644
--- a/renderer/styles/globals.css
+++ b/renderer/styles/globals.css
@@ -180,6 +180,28 @@
-webkit-app-region: drag;
}
+.checkerboard {
+ background-color: rgba(255, 255, 255);
+ background-image: linear-gradient(
+ 45deg,
+ #000 25%,
+ transparent 25%,
+ transparent 75%,
+ #000 75%,
+ #000
+ ),
+ linear-gradient(
+ -45deg,
+ #000 25%,
+ transparent 25%,
+ transparent 75%,
+ #000 75%,
+ #000
+ );
+ background-size: 40px 40px;
+ background-repeat: repeat;
+}
+
@keyframes animate-step-in {
0% {
opacity: 0;
diff --git a/renderer/tsconfig.json b/renderer/tsconfig.json
index 3585d51..2edf7be 100644
--- a/renderer/tsconfig.json
+++ b/renderer/tsconfig.json
@@ -15,7 +15,7 @@
"isolatedModules": true,
"jsx": "preserve",
"paths": {
- "@/*": ["./src/*"],
+ "@/*": ["./*"],
"@common/*": ["../common/*"]
}
},
diff --git a/renderer/utils/flags.ts b/renderer/utils/flags.ts
new file mode 100644
index 0000000..941d7ad
--- /dev/null
+++ b/renderer/utils/flags.ts
@@ -0,0 +1,8 @@
+export const FLAGS = {
+ IS_APPLE_STORE_BUILD: "IS_APPLE_STORE_BUILD",
+};
+
+// Get flag from process.env
+export const flag = (flag: keyof typeof FLAGS) => {
+ return process.env[flag];
+};
diff --git a/resources/entitlements.mac.plist b/resources/entitlements.mac.plist
index d16499e..1e4911b 100644
--- a/resources/entitlements.mac.plist
+++ b/resources/entitlements.mac.plist
@@ -2,6 +2,12 @@
+ com.apple.security.app-sandbox
+
+ com.apple.security.application-groups
+
+ W2T4W74X87.org.upscayl.Upscayl
+
com.apple.security.automation.apple-events
com.apple.security.cs.allow-dyld-environment-variables
diff --git a/resources/entitlements.mas.inherit.plist b/resources/entitlements.mas.inherit.plist
new file mode 100644
index 0000000..4759d0a
--- /dev/null
+++ b/resources/entitlements.mas.inherit.plist
@@ -0,0 +1,14 @@
+
+
+
+
+ com.apple.security.app-sandbox
+
+ com.apple.security.cs.allow-jit
+
+ com.apple.security.cs.allow-unsigned-executable-memory
+
+ com.apple.security.inherit
+
+
+
diff --git a/resources/entitlements.mas.loginhelper.plist b/resources/entitlements.mas.loginhelper.plist
new file mode 100644
index 0000000..852fa1a
--- /dev/null
+++ b/resources/entitlements.mas.loginhelper.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ com.apple.security.app-sandbox
+
+
+
diff --git a/resources/linux/bin/upscayl-realesrgan b/resources/linux/bin/upcayl-bin
similarity index 70%
rename from resources/linux/bin/upscayl-realesrgan
rename to resources/linux/bin/upcayl-bin
index d071820cb10dc84b0fdf2f85aa49b25eed116192..6b10886d7f1dbfd0784ff47b0f8c805dc61c8b21 100755
GIT binary patch
delta 2311174
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