mirror of
https://github.com/kunkundi/crossdesk.git
synced 2026-10-31 02:49:35 +08:00
[release] prepare v1.5.0 release notes and iOS version
This commit is contained in:
+55
-13
@@ -311,6 +311,8 @@ jobs:
|
|||||||
name: Build on iOS (arm64)
|
name: Build on iOS (arm64)
|
||||||
runs-on: macos-26
|
runs-on: macos-26
|
||||||
timeout-minutes: 120
|
timeout-minutes: 120
|
||||||
|
outputs:
|
||||||
|
version: ${{ steps.ios_version.outputs.version }}
|
||||||
env:
|
env:
|
||||||
IOS_DEPLOYMENT_TARGET: "16.0"
|
IOS_DEPLOYMENT_TARGET: "16.0"
|
||||||
EXPECTED_IOS_SDK: "26.5"
|
EXPECTED_IOS_SDK: "26.5"
|
||||||
@@ -369,6 +371,26 @@ jobs:
|
|||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v5
|
||||||
|
|
||||||
|
- name: Read independent iOS version
|
||||||
|
id: ios_version
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
IOS_VERSION_BASE="$(xcodebuild \
|
||||||
|
-project apps/ios/CrossDeskMobile.xcodeproj \
|
||||||
|
-scheme CrossDeskMobile \
|
||||||
|
-configuration Release \
|
||||||
|
-destination 'generic/platform=iOS' \
|
||||||
|
-showBuildSettings CODE_SIGNING_ALLOWED=NO | \
|
||||||
|
awk '$1 == "MARKETING_VERSION" && $2 == "=" { print $3 }')"
|
||||||
|
if [[ ! "${IOS_VERSION_BASE}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||||
|
echo "Invalid iOS marketing version: ${IOS_VERSION_BASE}" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
VERSION_NUM="v${IOS_VERSION_BASE}-${VERSION_NUM##*-}"
|
||||||
|
echo "IOS_VERSION_BASE=${IOS_VERSION_BASE}" >> "${GITHUB_ENV}"
|
||||||
|
echo "VERSION_NUM=${VERSION_NUM}" >> "${GITHUB_ENV}"
|
||||||
|
echo "version=${VERSION_NUM}" >> "${GITHUB_OUTPUT}"
|
||||||
|
|
||||||
- name: Initialize submodules
|
- name: Initialize submodules
|
||||||
run: git submodule update --init --recursive
|
run: git submodule update --init --recursive
|
||||||
|
|
||||||
@@ -439,6 +461,11 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
xcrun lipo "${EXECUTABLE_PATH}" -verify_arch arm64
|
xcrun lipo "${EXECUTABLE_PATH}" -verify_arch arm64
|
||||||
|
APP_VERSION=$(/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' "${INFO_PLIST}")
|
||||||
|
if [[ "${APP_VERSION}" != "${IOS_VERSION_BASE}" ]]; then
|
||||||
|
echo "Unexpected iOS app version: expected ${IOS_VERSION_BASE}, got ${APP_VERSION}" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
MINIMUM_OS=$(/usr/libexec/PlistBuddy -c 'Print :MinimumOSVersion' "${INFO_PLIST}")
|
MINIMUM_OS=$(/usr/libexec/PlistBuddy -c 'Print :MinimumOSVersion' "${INFO_PLIST}")
|
||||||
if [[ "${MINIMUM_OS}" != "${IOS_DEPLOYMENT_TARGET}" ]]; then
|
if [[ "${MINIMUM_OS}" != "${IOS_DEPLOYMENT_TARGET}" ]]; then
|
||||||
echo "Unexpected minimum iOS version: expected ${IOS_DEPLOYMENT_TARGET}, got ${MINIMUM_OS}" >&2
|
echo "Unexpected minimum iOS version: expected ${IOS_DEPLOYMENT_TARGET}, got ${MINIMUM_OS}" >&2
|
||||||
@@ -749,6 +776,25 @@ jobs:
|
|||||||
echo "BUILD_DATE_ISO=${BUILD_DATE_ISO}" >> $GITHUB_OUTPUT
|
echo "BUILD_DATE_ISO=${BUILD_DATE_ISO}" >> $GITHUB_OUTPUT
|
||||||
echo "PATCH_NUMBER=${PATCH_NUMBER}" >> $GITHUB_OUTPUT
|
echo "PATCH_NUMBER=${PATCH_NUMBER}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Prepare release notes
|
||||||
|
env:
|
||||||
|
RELEASE_TAG: ${{ steps.version.outputs.VERSION_WITH_V }}
|
||||||
|
VERSION_BASE: ${{ steps.version.outputs.VERSION_BASE }}
|
||||||
|
run: |
|
||||||
|
if [[ -f "docs/releases/${RELEASE_TAG}.md" ]]; then
|
||||||
|
cp "docs/releases/${RELEASE_TAG}.md" release-notes.md
|
||||||
|
elif [[ -f "docs/releases/v${VERSION_BASE}.md" ]]; then
|
||||||
|
cp "docs/releases/v${VERSION_BASE}.md" release-notes.md
|
||||||
|
else
|
||||||
|
cat > release-notes.md << 'EOF'
|
||||||
|
Binary release only. Source code is not included.
|
||||||
|
|
||||||
|
## Code signing policy
|
||||||
|
|
||||||
|
Free code signing provided by [SignPath.io](https://signpath.io/), certificate by [SignPath Foundation](https://signpath.org/).
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Rename artifacts
|
- name: Rename artifacts
|
||||||
run: |
|
run: |
|
||||||
mkdir -p release
|
mkdir -p release
|
||||||
@@ -756,7 +802,7 @@ jobs:
|
|||||||
cp artifacts/crossdesk-macos-arm64-${{ steps.version.outputs.VERSION_WITH_V }}/* release/crossdesk-macos-arm64-${{ steps.version.outputs.VERSION_WITH_V }}.pkg
|
cp artifacts/crossdesk-macos-arm64-${{ steps.version.outputs.VERSION_WITH_V }}/* release/crossdesk-macos-arm64-${{ steps.version.outputs.VERSION_WITH_V }}.pkg
|
||||||
cp artifacts/crossdesk-linux-amd64-${{ steps.version.outputs.VERSION_WITH_V }}/* release/crossdesk-linux-amd64-${{ steps.version.outputs.VERSION_WITH_V }}.deb
|
cp artifacts/crossdesk-linux-amd64-${{ steps.version.outputs.VERSION_WITH_V }}/* release/crossdesk-linux-amd64-${{ steps.version.outputs.VERSION_WITH_V }}.deb
|
||||||
cp artifacts/crossdesk-linux-arm64-${{ steps.version.outputs.VERSION_WITH_V }}/* release/crossdesk-linux-arm64-${{ steps.version.outputs.VERSION_WITH_V }}.deb
|
cp artifacts/crossdesk-linux-arm64-${{ steps.version.outputs.VERSION_WITH_V }}/* release/crossdesk-linux-arm64-${{ steps.version.outputs.VERSION_WITH_V }}.deb
|
||||||
cp artifacts/crossdesk-ios-arm64-unsigned-${{ steps.version.outputs.VERSION_WITH_V }}/* release/crossdesk-ios-arm64-unsigned-${{ steps.version.outputs.VERSION_WITH_V }}.zip
|
cp artifacts/crossdesk-ios-arm64-unsigned-${{ needs.build-ios.outputs.version }}/* release/crossdesk-ios-arm64-unsigned-${{ needs.build-ios.outputs.version }}.zip
|
||||||
cp artifacts/crossdesk-win-x64-${{ steps.version.outputs.VERSION_WITH_V }}/* release/crossdesk-win-x64-${{ steps.version.outputs.VERSION_WITH_V }}.exe
|
cp artifacts/crossdesk-win-x64-${{ steps.version.outputs.VERSION_WITH_V }}/* release/crossdesk-win-x64-${{ steps.version.outputs.VERSION_WITH_V }}.exe
|
||||||
cp artifacts/crossdesk-win-x64-portable-${{ steps.version.outputs.VERSION_WITH_V }}/* release/crossdesk-win-x64-portable-${{ steps.version.outputs.VERSION_WITH_V }}.zip
|
cp artifacts/crossdesk-win-x64-portable-${{ steps.version.outputs.VERSION_WITH_V }}/* release/crossdesk-win-x64-portable-${{ steps.version.outputs.VERSION_WITH_V }}.zip
|
||||||
|
|
||||||
@@ -767,17 +813,13 @@ jobs:
|
|||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
tag_name: ${{ steps.version.outputs.VERSION_WITH_V }}
|
tag_name: ${{ steps.version.outputs.VERSION_WITH_V }}
|
||||||
|
target_commitish: ${{ github.sha }}
|
||||||
name: Release ${{ steps.version.outputs.VERSION_WITH_V }}
|
name: Release ${{ steps.version.outputs.VERSION_WITH_V }}
|
||||||
draft: false
|
draft: false
|
||||||
prerelease: false
|
prerelease: false
|
||||||
files: release/*
|
files: release/*
|
||||||
generate_release_notes: false
|
generate_release_notes: false
|
||||||
body: |
|
body_path: release-notes.md
|
||||||
Binary release only. Source code is not included.
|
|
||||||
|
|
||||||
## Code signing policy
|
|
||||||
|
|
||||||
Free code signing provided by [SignPath.io](https://signpath.io/), certificate by [SignPath Foundation](https://signpath.org/).
|
|
||||||
|
|
||||||
- name: Create or update 'latest' tag
|
- name: Create or update 'latest' tag
|
||||||
run: |
|
run: |
|
||||||
@@ -795,12 +837,7 @@ jobs:
|
|||||||
prerelease: false
|
prerelease: false
|
||||||
files: release/*
|
files: release/*
|
||||||
generate_release_notes: false
|
generate_release_notes: false
|
||||||
body: |
|
body_path: release-notes.md
|
||||||
Binary release only. Source code is not included.
|
|
||||||
|
|
||||||
## Code signing policy
|
|
||||||
|
|
||||||
Free code signing provided by [SignPath.io](https://signpath.io/), certificate by [SignPath Foundation](https://signpath.org/).
|
|
||||||
|
|
||||||
- name: Upload artifacts to server
|
- name: Upload artifacts to server
|
||||||
uses: burnett01/rsync-deployments@5.2
|
uses: burnett01/rsync-deployments@5.2
|
||||||
@@ -851,6 +888,11 @@ jobs:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
jq --arg release_name "Release ${{ steps.version.outputs.VERSION_WITH_V }}" \
|
||||||
|
--rawfile release_notes release-notes.md \
|
||||||
|
'.releaseName = $release_name | .releaseNotes = $release_notes' \
|
||||||
|
version.json > version-with-notes.json
|
||||||
|
mv version-with-notes.json version.json
|
||||||
cat version.json
|
cat version.json
|
||||||
|
|
||||||
- name: Upload version.json to server
|
- name: Upload version.json to server
|
||||||
|
|||||||
@@ -265,7 +265,7 @@
|
|||||||
ARCHS = arm64;
|
ARCHS = arm64;
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 2;
|
||||||
DEVELOPMENT_TEAM = 8DNC3SZ86S;
|
DEVELOPMENT_TEAM = 8DNC3SZ86S;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = NO;
|
ENABLE_USER_SCRIPT_SANDBOXING = NO;
|
||||||
@@ -277,7 +277,7 @@
|
|||||||
);
|
);
|
||||||
INFOPLIST_FILE = CrossDeskMobile/Info.plist;
|
INFOPLIST_FILE = CrossDeskMobile/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
|
||||||
MARKETING_VERSION = 1.0;
|
MARKETING_VERSION = 0.0.1;
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Vendor/iphoneos/$(CONFIGURATION)/libCrossDeskMiniRTC.a",
|
"$(PROJECT_DIR)/Vendor/iphoneos/$(CONFIGURATION)/libCrossDeskMiniRTC.a",
|
||||||
@@ -314,7 +314,7 @@
|
|||||||
ARCHS = arm64;
|
ARCHS = arm64;
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 2;
|
||||||
DEVELOPMENT_TEAM = 8DNC3SZ86S;
|
DEVELOPMENT_TEAM = 8DNC3SZ86S;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = NO;
|
ENABLE_USER_SCRIPT_SANDBOXING = NO;
|
||||||
@@ -326,7 +326,7 @@
|
|||||||
);
|
);
|
||||||
INFOPLIST_FILE = CrossDeskMobile/Info.plist;
|
INFOPLIST_FILE = CrossDeskMobile/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
|
||||||
MARKETING_VERSION = 1.0;
|
MARKETING_VERSION = 0.0.1;
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Vendor/iphoneos/$(CONFIGURATION)/libCrossDeskMiniRTC.a",
|
"$(PROJECT_DIR)/Vendor/iphoneos/$(CONFIGURATION)/libCrossDeskMiniRTC.a",
|
||||||
|
|||||||
@@ -17,9 +17,9 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>1.0</string>
|
<string>$(MARKETING_VERSION)</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>2</string>
|
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||||
<key>LSRequiresIPhoneOS</key>
|
<key>LSRequiresIPhoneOS</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>NSLocalNetworkUsageDescription</key>
|
<key>NSLocalNetworkUsageDescription</key>
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# **更新内容**
|
||||||
|
|
||||||
|
1. 新增原生iOS/iPadOS客户端v0.0.1,支持远程画面与音频、触控鼠标和键盘输入、多显示器切换、双向文件传输及接收远端文本剪贴板。
|
||||||
|
2. 完善iOS远程操作体验,提供相对位置与绝对位置鼠标模式、捏合缩放及悬浮控制菜单,支持查看连接状态、P2P/中继模式、分辨率与码率;修复切回前台后画面无法恢复、相对鼠标跳动及灵动岛遮挡控件等问题。
|
||||||
|
3. 新增帧率优先、画质优先和平衡三种画面偏好,优化带宽变化时的分辨率、帧率与码率调节,提升远程桌面的清晰度和流畅度。
|
||||||
|
4. 优化Windows与macOS原生视频采集、硬件编码和渲染流程,减少画面拷贝;Linux新增CUDA/OpenGL视频渲染,提升硬件解码画面的显示效率。
|
||||||
|
5. 优化P2P连接建立与UPnP支持,支持连接从中继升级为P2P,并改进ICE连接、视频恢复及音视频时间戳处理,提升弱网和网络变化时的连接稳定性。
|
||||||
|
6. 修复Windows锁屏界面无法远程控制,以及部分设备因OpenGL初始化失败导致启动崩溃的问题,优化锁屏画面采集与恢复。
|
||||||
|
7. 修复桌面端与iOS端设备在线状态更新不及时、桌面端启动后托盘图标未显示的问题,并将连接清理移出界面线程,减少断开连接时的卡顿。
|
||||||
|
8. 完善iOS与桌面端跨平台构建和打包流程,更新界面截图、构建指南、自托管说明及常见问题文档。
|
||||||
|
|
||||||
|
PC客户端版本为v1.5.0,iOS/iPadOS客户端使用独立版本号,本次为v0.0.1。iOS/iPadOS客户端要求iOS 16.0及以上版本和arm64真机,提供的构建包为未签名应用,需要自行签名后安装;目前仅支持作为控制端连接电脑。
|
||||||
Reference in New Issue
Block a user