feat: 统一 Commilitia Drop 全客户端命名与分发
This commit is contained in:
@@ -45,23 +45,47 @@ wails := `go env GOPATH` + "/bin/wails"
|
||||
desktop-dev:
|
||||
cd desktop && {{wails}} dev
|
||||
|
||||
# 构建 macOS universal .app(含 darwin/arm64 + darwin/amd64)。
|
||||
# 不加 -clean,让 mac/win 产物在 build/bin/ 共存;清理走 desktop-clean。
|
||||
# 构建 macOS Apple Silicon .app(darwin/arm64;不支持 Intel)。
|
||||
# 每次清理 build/bin:带空格的 macOS .app 若残留在 Go 模块内,会被后续跨平台
|
||||
# 绑定生成误判为包路径;同一输出槽也只保留本次平台的一份客户端。
|
||||
#
|
||||
# ⚠️ 先手动构建前端再 `wails build -s`(跳过 wails 自带前端步骤):wails build 的
|
||||
# frontend:build 在本仓库结构下不可靠(不实际重建 web/ → 嵌入旧 JS)。显式构建
|
||||
# web → desktop/frontend/dist,再用 -s 让 go:embed 嵌入这份新 dist。
|
||||
desktop-build-mac:
|
||||
cd web && npm run build -- --outDir ../desktop/frontend/dist --emptyOutDir
|
||||
cd desktop && {{wails}} build -s -platform darwin/universal
|
||||
cd desktop && {{wails}} build -clean -s -platform darwin/arm64
|
||||
|
||||
# 正式 macOS 分发:复用钥匙串中的 Developer ID Application 证书,对 ARM64 Wails app
|
||||
# 启用 hardened runtime + 时间戳签名,先公证并装订 app,再生成、签名、公证和装订 DMG。
|
||||
# 公证使用与 iOS provisioning 共用的 ASC API Key;所有身份和密钥路径从 .env 读取。
|
||||
desktop-dist-mac: desktop-build-mac
|
||||
[ -n "$CDROP_DEVID_IDENTITY" ] && [ -n "$CDROP_ASC_KEY_PATH" ] && [ -n "$CDROP_ASC_KEY_ID" ] && [ -n "$CDROP_ASC_ISSUER_ID" ] || { echo "缺 .env(CDROP_DEVID_IDENTITY / CDROP_ASC_KEY_PATH / CDROP_ASC_KEY_ID / CDROP_ASC_ISSUER_ID)"; exit 1; }
|
||||
[ -f "$CDROP_ASC_KEY_PATH" ]
|
||||
security find-identity -v -p codesigning | rg -F "$CDROP_DEVID_IDENTITY"
|
||||
codesign --force --deep --options runtime --timestamp --sign "$CDROP_DEVID_IDENTITY" 'desktop/build/bin/Commilitia Drop.app'
|
||||
codesign --verify --deep --strict --verbose=2 'desktop/build/bin/Commilitia Drop.app'
|
||||
rm -f 'desktop/build/bin/Commilitia Drop.app.zip' 'desktop/build/bin/Commilitia Drop.dmg'
|
||||
ditto -c -k --keepParent 'desktop/build/bin/Commilitia Drop.app' 'desktop/build/bin/Commilitia Drop.app.zip'
|
||||
xcrun notarytool submit 'desktop/build/bin/Commilitia Drop.app.zip' --key "$CDROP_ASC_KEY_PATH" --key-id "$CDROP_ASC_KEY_ID" --issuer "$CDROP_ASC_ISSUER_ID" --wait
|
||||
xcrun stapler staple 'desktop/build/bin/Commilitia Drop.app'
|
||||
xcrun stapler validate 'desktop/build/bin/Commilitia Drop.app'
|
||||
bash desktop/scripts/make-dmg.sh 'desktop/build/bin/Commilitia Drop.app' 'desktop/build/bin/Commilitia Drop.dmg'
|
||||
codesign --force --timestamp --sign "$CDROP_DEVID_IDENTITY" 'desktop/build/bin/Commilitia Drop.dmg'
|
||||
xcrun notarytool submit 'desktop/build/bin/Commilitia Drop.dmg' --key "$CDROP_ASC_KEY_PATH" --key-id "$CDROP_ASC_KEY_ID" --issuer "$CDROP_ASC_ISSUER_ID" --wait
|
||||
xcrun stapler staple 'desktop/build/bin/Commilitia Drop.dmg'
|
||||
xcrun stapler validate 'desktop/build/bin/Commilitia Drop.dmg'
|
||||
spctl --assess --type execute --verbose=2 'desktop/build/bin/Commilitia Drop.app'
|
||||
spctl --assess --type open --context context:primary-signature --verbose=2 'desktop/build/bin/Commilitia Drop.dmg'
|
||||
rm -f 'desktop/build/bin/Commilitia Drop.app.zip'
|
||||
|
||||
# 交叉编译 Windows amd64 .exe。macOS 原生即可——Windows 侧无 cgo(darwin 的
|
||||
# NSStatusBar/NSPasteboard CGO 走 build tag 排除,WebView2 是纯 Go),不需 mingw。
|
||||
# 与 mac 同:先手动构建前端再 -s(wails 自带 frontend:build 在本仓库不可靠)。
|
||||
# 产物 build/bin/desktop.exe;真测试经 RDP 到 Windows 机器跑。
|
||||
# 产物 build/bin/Commilitia Drop.exe;真测试经 RDP 到 Windows 机器跑。
|
||||
desktop-build-win:
|
||||
cd web && npm run build -- --outDir ../desktop/frontend/dist --emptyOutDir
|
||||
cd desktop && {{wails}} build -s -platform windows/amd64
|
||||
cd desktop && {{wails}} build -clean -s -platform windows/amd64
|
||||
|
||||
# 清空 build/bin/ 产物。
|
||||
desktop-clean:
|
||||
@@ -106,9 +130,10 @@ mac-prep:
|
||||
cd ios/CDrop && xcodebuild -project CommilitiaDrop.xcodeproj -scheme CommilitiaDropMac -sdk macosx -derivedDataPath build/DD-mac -resolvePackageDependencies
|
||||
bash ios/CDrop/scripts/patch-macos-webrtc-headers.sh ios/CDrop/build/DD-mac
|
||||
|
||||
# macOS 原生客户端本地编译(ad-hoc 签名,无需 Apple 账号)。当前为脚手架(MacApp/ 导航骨架 +
|
||||
# 菜单栏占位);引擎 / 复用视图 / 桌面功能随后续阶段并入。产物 build/DD-mac/Build/Products/Debug/
|
||||
# CommilitiaDropMac.app(本地打开自测)。
|
||||
# macOS 原生迁移候选的本地编译(ad-hoc 签名,无需 Apple 账号),仅供开发验证,不是正式
|
||||
# 客户端或分发入口。正式 macOS 客户端仍由 desktop-build-mac 构建;只有完成功能对等、三语、
|
||||
# 签名扩展与真机验收后才允许切换。候选产物位于 build/DD-mac/Build/Products/Debug/
|
||||
# CommilitiaDropMac.app。
|
||||
mac-build: mac-prep
|
||||
cd ios/CDrop && xcodebuild -project CommilitiaDrop.xcodeproj -scheme CommilitiaDropMac -sdk macosx -destination 'platform=macOS' -derivedDataPath build/DD-mac -disableAutomaticPackageResolution build
|
||||
|
||||
@@ -117,17 +142,17 @@ mac-build: mac-prep
|
||||
mac-test: mac-prep
|
||||
cd ios/CDrop && xcodebuild test -project CommilitiaDrop.xcodeproj -scheme CommilitiaDropMac -sdk macosx -destination 'platform=macOS' -derivedDataPath build/DD-mac -disableAutomaticPackageResolution
|
||||
|
||||
# 真机构建 + 装机(自动 provisioning,经 ASC API Key)。前置:付费 ADP;App ID 的 App Groups /
|
||||
# Push 能力(门户建好或自动建);根目录 gitignore 的 .env 配齐:CDROP_TEAM_ID / CDROP_ASC_KEY_PATH
|
||||
# (.p8 路径)/ CDROP_ASC_KEY_ID / CDROP_ASC_ISSUER_ID。-allowProvisioningUpdates 自动登记连接的
|
||||
# 设备 + 建 profile(绕过手动 profile 的设备选择坑)。模拟器构建不需这些(base ad-hoc)。原生数据面
|
||||
# 经 SPM 拉 libwebrtc,无 gomobile 预构建步骤(早先 ios-engine recipe 已随 pion-on-iOS 废弃移除)。
|
||||
# 用法:just ios-device <设备UDID>(UDID 见 just ios-devices)。
|
||||
# 真机构建 + 装机(自动 provisioning,经 ASC API Key)。必须把
|
||||
# CDROP_APPLE_DEVELOPMENT_IDENTITY 设为钥匙串内既有 Apple Development 证书的 SHA-1;构建前
|
||||
# 先验证该身份存在,再将其固定传给 xcodebuild,不允许以“自动签名”为由切换或新建证书。
|
||||
# -allowProvisioningUpdates 只用于登记设备、更新能力与 profile。模拟器构建不需这些。
|
||||
# 用法:just ios-device <设备UDID>(UDID 见 just ios-devices)。全程不使用 Xcode GUI。
|
||||
ios-device udid:
|
||||
[ -n "$CDROP_TEAM_ID" ] && [ -n "$CDROP_ASC_KEY_PATH" ] && [ -n "$CDROP_ASC_KEY_ID" ] && [ -n "$CDROP_ASC_ISSUER_ID" ] || { echo "缺 .env(CDROP_TEAM_ID / CDROP_ASC_KEY_PATH / CDROP_ASC_KEY_ID / CDROP_ASC_ISSUER_ID)——见 ios/CDrop/REALDEVICE.md"; exit 1; }
|
||||
[ -n "$CDROP_TEAM_ID" ] && [ -n "$CDROP_ASC_KEY_PATH" ] && [ -n "$CDROP_ASC_KEY_ID" ] && [ -n "$CDROP_ASC_ISSUER_ID" ] && [ -n "$CDROP_APPLE_DEVELOPMENT_IDENTITY" ] || { echo "缺 .env(CDROP_TEAM_ID / CDROP_ASC_KEY_PATH / CDROP_ASC_KEY_ID / CDROP_ASC_ISSUER_ID / CDROP_APPLE_DEVELOPMENT_IDENTITY)——见 ios/CDrop/REALDEVICE.md"; exit 1; }
|
||||
security find-identity -v -p codesigning | rg -F "$CDROP_APPLE_DEVELOPMENT_IDENTITY"
|
||||
just ios-fonts
|
||||
cd ios/CDrop && xcodegen generate
|
||||
cd ios/CDrop && xcodebuild -project CommilitiaDrop.xcodeproj -scheme CommilitiaDrop -configuration Debug -destination "platform=iOS,id={{udid}}" -derivedDataPath build/DD-device -allowProvisioningUpdates -authenticationKeyPath "$CDROP_ASC_KEY_PATH" -authenticationKeyID "$CDROP_ASC_KEY_ID" -authenticationKeyIssuerID "$CDROP_ASC_ISSUER_ID" DEVELOPMENT_TEAM="$CDROP_TEAM_ID" CODE_SIGN_STYLE=Automatic CODE_SIGN_IDENTITY="Apple Development" build
|
||||
cd ios/CDrop && xcodebuild -project CommilitiaDrop.xcodeproj -scheme CommilitiaDrop -configuration Debug -destination "platform=iOS,id={{udid}}" -derivedDataPath build/DD-device -allowProvisioningUpdates -authenticationKeyPath "$CDROP_ASC_KEY_PATH" -authenticationKeyID "$CDROP_ASC_KEY_ID" -authenticationKeyIssuerID "$CDROP_ASC_ISSUER_ID" DEVELOPMENT_TEAM="$CDROP_TEAM_ID" CODE_SIGN_STYLE=Automatic CODE_SIGN_IDENTITY="$CDROP_APPLE_DEVELOPMENT_IDENTITY" build
|
||||
xcrun devicectl device install app --device {{udid}} ios/CDrop/build/DD-device/Build/Products/Debug-iphoneos/CommilitiaDrop.app
|
||||
|
||||
# ---- deploy plumbing ----
|
||||
|
||||
Reference in New Issue
Block a user