Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c3b64e8d0f | |||
| 7794c73a51 | |||
| 6ce67176da |
@@ -8,8 +8,9 @@
|
|||||||
# 不需要重启/重新部署控制面。
|
# 不需要重启/重新部署控制面。
|
||||||
#
|
#
|
||||||
# download_urls 目前是固定「仅保留最新一份」的稳定 URL(deploy-client.sh 每次
|
# download_urls 目前是固定「仅保留最新一份」的稳定 URL(deploy-client.sh 每次
|
||||||
# 用同名文件覆盖),不是按版本变化的路径,因此这里不需要随发版改写;
|
# 用同名文件覆盖),不是按版本变化的路径,因此这里不需要随发版改写。
|
||||||
# macos / ios 产物尚未产出,先留空字符串。
|
# macos 自 client-v1.0.59 起由 build-macos 产出 pangolin-macos-x64.zip 并部署到
|
||||||
|
# /downloads,故填稳定直链;ios 走 TestFlight(无直接下载文件),保持留空。
|
||||||
version: "1.0.48"
|
version: "1.0.48"
|
||||||
build_number: 10048
|
build_number: 10048
|
||||||
force_update: false
|
force_update: false
|
||||||
@@ -17,6 +18,6 @@ release_notes: ""
|
|||||||
download_urls:
|
download_urls:
|
||||||
android: "https://api.yanmeiai.com/downloads/pangolin-android.apk"
|
android: "https://api.yanmeiai.com/downloads/pangolin-android.apk"
|
||||||
windows: "https://api.yanmeiai.com/downloads/pangolin-windows-x64-setup.exe"
|
windows: "https://api.yanmeiai.com/downloads/pangolin-windows-x64-setup.exe"
|
||||||
macos: ""
|
macos: "https://api.yanmeiai.com/downloads/pangolin-macos-x64.zip"
|
||||||
ios: ""
|
ios: ""
|
||||||
changelog: []
|
changelog: []
|
||||||
|
|||||||
@@ -223,8 +223,12 @@ PLIST
|
|||||||
|
|
||||||
echo "==> compile-macos: inside-out codesign (sysext -> frameworks -> app)"
|
echo "==> compile-macos: inside-out codesign (sysext -> frameworks -> app)"
|
||||||
xattr -cr "$APP"
|
xattr -cr "$APP"
|
||||||
cp "$SYSEXT_PROFILE" "${SE}/Contents/embedded.provisionprofile"
|
# 从 WORK 临时目录复制(不是 PROF_DIR):flutter build macos 期间 xcodebuild 会
|
||||||
cp "$APP_PROFILE" "${APP}/Contents/embedded.provisionprofile"
|
# 修剪 ~/Library/Developer/Xcode/UserData/Provisioning Profiles,把[3/7]构建前
|
||||||
|
# 装进去的 profile 清掉,构建后再从那目录 cp 会扑空(No such file → 本步失败)。
|
||||||
|
# WORK 是 mktemp 目录、xcodebuild 不碰,里面的原始 .provisionprofile 全程留存。
|
||||||
|
cp "${WORK}/sysext.provisionprofile" "${SE}/Contents/embedded.provisionprofile"
|
||||||
|
cp "${WORK}/app.provisionprofile" "${APP}/Contents/embedded.provisionprofile"
|
||||||
|
|
||||||
# sysext first — libbox is linked (not embedded) into the sysext binary
|
# sysext first — libbox is linked (not embedded) into the sysext binary
|
||||||
# itself (see CLAUDE.md), so signing the sysext bundle re-covers its statically
|
# itself (see CLAUDE.md), so signing the sysext bundle re-covers its statically
|
||||||
|
|||||||
@@ -6,12 +6,12 @@ import { SITE } from '../config/site';
|
|||||||
interface Props { t: T }
|
interface Props { t: T }
|
||||||
const { t } = Astro.props;
|
const { t } = Astro.props;
|
||||||
|
|
||||||
// href 缺省 = 本轮未接入下载(iOS / macOS / Linux),按钮渲染为禁用态占位。
|
// href 缺省 = 本轮未接入下载(iOS 走 TestFlight / Linux),按钮渲染为禁用态占位。
|
||||||
// Android + Windows 已由客户端 CI 产出真实产物并部署到 /downloads。
|
// Android + Windows + macOS 已由客户端 CI 产出真实产物并部署到 /downloads。
|
||||||
const plats: { icon: string; name: string; ver: string; href?: string }[] = [
|
const plats: { icon: string; name: string; ver: string; href?: string }[] = [
|
||||||
{ icon: 'smartphone', name: 'iOS', ver: 'iOS 16+' },
|
{ icon: 'smartphone', name: 'iOS', ver: 'iOS 16+' },
|
||||||
{ icon: 'smartphone', name: 'Android', ver: 'Android 9+', href: SITE.downloads.android },
|
{ icon: 'smartphone', name: 'Android', ver: 'Android 9+', href: SITE.downloads.android },
|
||||||
{ icon: 'laptop', name: 'macOS', ver: 'macOS 12+' },
|
{ icon: 'laptop', name: 'macOS', ver: 'macOS 12+', href: SITE.downloads.macos },
|
||||||
{ icon: 'monitor', name: 'Windows', ver: 'Win 10/11', href: SITE.downloads.windows },
|
{ icon: 'monitor', name: 'Windows', ver: 'Win 10/11', href: SITE.downloads.windows },
|
||||||
{ icon: 'terminal', name: 'Linux', ver: 'deb / rpm' },
|
{ icon: 'terminal', name: 'Linux', ver: 'deb / rpm' },
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -27,10 +27,12 @@ export const SITE = {
|
|||||||
* 客户端安装包直链。控制面 pangolin-server 通过 Cloudflare Tunnel 对外暴露
|
* 客户端安装包直链。控制面 pangolin-server 通过 Cloudflare Tunnel 对外暴露
|
||||||
* /downloads/<file>(origin = 127.0.0.1:8080),文件由
|
* /downloads/<file>(origin = 127.0.0.1:8080),文件由
|
||||||
* scripts/ci/deploy-client.sh 每次构建 scp 覆盖到 pangolin1:/var/lib/pangolin/downloads/,
|
* scripts/ci/deploy-client.sh 每次构建 scp 覆盖到 pangolin1:/var/lib/pangolin/downloads/,
|
||||||
* 每平台固定文件名、只保留最新一份。iOS / macOS / Linux 本轮未接入下载按钮。
|
* 每平台固定文件名、只保留最新一份。macOS 自 client-v1.0.59 起接入;
|
||||||
|
* iOS 走 TestFlight(无直接下载文件)、Linux 本轮未接入下载按钮。
|
||||||
*/
|
*/
|
||||||
downloads: {
|
downloads: {
|
||||||
android: 'https://api.yanmeiai.com/downloads/pangolin-android.apk',
|
android: 'https://api.yanmeiai.com/downloads/pangolin-android.apk',
|
||||||
windows: 'https://api.yanmeiai.com/downloads/pangolin-windows-x64-setup.exe',
|
windows: 'https://api.yanmeiai.com/downloads/pangolin-windows-x64-setup.exe',
|
||||||
|
macos: 'https://api.yanmeiai.com/downloads/pangolin-macos-x64.zip',
|
||||||
},
|
},
|
||||||
} as const;
|
} as const;
|
||||||
|
|||||||
Reference in New Issue
Block a user