mirror of
https://github.com/xweiba/location-spoofer.git
synced 2026-09-21 22:30:46 +08:00
chore: prepare v1.0.4 release
This commit is contained in:
+1
-1
@@ -12,7 +12,7 @@ responses in a controlled test environment.
|
|||||||
[](project.yml)
|
[](project.yml)
|
||||||
[](project.yml)
|
[](project.yml)
|
||||||
[](Core/go.mod)
|
[](Core/go.mod)
|
||||||
[](docs/CHANGELOG.md)
|
[](docs/CHANGELOG.md)
|
||||||
|
|
||||||
[Features](#feature-overview) ·
|
[Features](#feature-overview) ·
|
||||||
[How It Works](#how-it-works) ·
|
[How It Works](#how-it-works) ·
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
[](project.yml)
|
[](project.yml)
|
||||||
[](project.yml)
|
[](project.yml)
|
||||||
[](Core/go.mod)
|
[](Core/go.mod)
|
||||||
[](docs/CHANGELOG.md)
|
[](docs/CHANGELOG.md)
|
||||||
|
|
||||||
[功能概览](#功能概览) ·
|
[功能概览](#功能概览) ·
|
||||||
[工作原理](#工作原理) ·
|
[工作原理](#工作原理) ·
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ struct AppRemoteConfiguration: Decodable, Equatable {
|
|||||||
let communityPromptClients: [String]
|
let communityPromptClients: [String]
|
||||||
|
|
||||||
static let fallback = AppRemoteConfiguration(
|
static let fallback = AppRemoteConfiguration(
|
||||||
latestVersion: "1.0.3",
|
latestVersion: "1.0.4",
|
||||||
minimumSupportedVersion: "1.0.0",
|
minimumSupportedVersion: "1.0.0",
|
||||||
communityPromptClients: [
|
communityPromptClients: [
|
||||||
ThirdPartyProxyClient.surge.rawValue,
|
ThirdPartyProxyClient.surge.rawValue,
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ final class AppRemoteConfigurationTests: XCTestCase {
|
|||||||
func testFallbackMatchesCurrentProjectPolicy() {
|
func testFallbackMatchesCurrentProjectPolicy() {
|
||||||
let configuration = AppRemoteConfiguration.fallback
|
let configuration = AppRemoteConfiguration.fallback
|
||||||
|
|
||||||
XCTAssertEqual(configuration.latestVersion, "1.0.3")
|
XCTAssertEqual(configuration.latestVersion, "1.0.4")
|
||||||
XCTAssertEqual(configuration.minimumSupportedVersion, "1.0.0")
|
XCTAssertEqual(configuration.minimumSupportedVersion, "1.0.0")
|
||||||
XCTAssertFalse(configuration.requestsCommunityPrompt(for: .shadowrocket))
|
XCTAssertFalse(configuration.requestsCommunityPrompt(for: .shadowrocket))
|
||||||
for client in ThirdPartyProxyClient.allCases where client != .shadowrocket {
|
for client in ThirdPartyProxyClient.allCases where client != .shadowrocket {
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ test -s "$ROOT/docs/onboarding-screenshots/shadowrocket/shadowrocket-module-impo
|
|||||||
grep -q 'presentSuccessfulOperationTip(.activation)' "$ROOT/App/MapHomeView.swift" || fail "third-party save must present the activation tip"
|
grep -q 'presentSuccessfulOperationTip(.activation)' "$ROOT/App/MapHomeView.swift" || fail "third-party save must present the activation tip"
|
||||||
grep -q 'presentSuccessfulOperationTip(.deactivation)' "$ROOT/App/MapHomeView.swift" || fail "third-party clear must present the deactivation tip"
|
grep -q 'presentSuccessfulOperationTip(.deactivation)' "$ROOT/App/MapHomeView.swift" || fail "third-party clear must present the deactivation tip"
|
||||||
grep -q 'if spoofState == .active' "$ROOT/App/MapHomeView.swift" || fail "manual help must follow the shared spoof state"
|
grep -q 'if spoofState == .active' "$ROOT/App/MapHomeView.swift" || fail "manual help must follow the shared spoof state"
|
||||||
grep -q 'MARKETING_VERSION: "1.0.3"' "$ROOT/project.yml" || fail "marketing version must be 1.0.3"
|
grep -q 'MARKETING_VERSION: "1.0.4"' "$ROOT/project.yml" || fail "marketing version must be 1.0.4"
|
||||||
grep -q 'CURRENT_PROJECT_VERSION: "4"' "$ROOT/project.yml" || fail "build version must be 4"
|
grep -q 'CURRENT_PROJECT_VERSION: "5"' "$ROOT/project.yml" || fail "build version must be 5"
|
||||||
|
|
||||||
echo "PASS: third-party proxy mode contract"
|
echo "PASS: third-party proxy mode contract"
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import sys
|
|||||||
with open(sys.argv[1], encoding="utf-8") as handle:
|
with open(sys.argv[1], encoding="utf-8") as handle:
|
||||||
config = json.load(handle)
|
config = json.load(handle)
|
||||||
|
|
||||||
assert config["latestVersion"] == "1.0.3"
|
assert config["latestVersion"] == "1.0.4"
|
||||||
assert config["minimumSupportedVersion"] == "1.0.0"
|
assert config["minimumSupportedVersion"] == "1.0.0"
|
||||||
assert "shadowrocket" not in config["communityPromptClients"]
|
assert "shadowrocket" not in config["communityPromptClients"]
|
||||||
assert set(config["communityPromptClients"]) == {
|
assert set(config["communityPromptClients"]) == {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
## 已发布
|
## 已发布
|
||||||
|
|
||||||
|
- [v1.0.4](https://github.com/xweiba/location-spoofer/releases/tag/v1.0.4) — 2026-08-09
|
||||||
- [v1.0.3](https://github.com/xweiba/location-spoofer/releases/tag/v1.0.3) — 2026-08-09
|
- [v1.0.3](https://github.com/xweiba/location-spoofer/releases/tag/v1.0.3) — 2026-08-09
|
||||||
- [v1.0.2](https://github.com/xweiba/location-spoofer/releases/tag/v1.0.2) — 2026-08-07
|
- [v1.0.2](https://github.com/xweiba/location-spoofer/releases/tag/v1.0.2) — 2026-08-07
|
||||||
- [v1.0.1](https://github.com/xweiba/location-spoofer/releases/tag/v1.0.1) — 2026-08-06
|
- [v1.0.1](https://github.com/xweiba/location-spoofer/releases/tag/v1.0.1) — 2026-08-06
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
# v1.0.4
|
||||||
|
|
||||||
|
发布日期:2026-08-09
|
||||||
|
|
||||||
|
## 主要更新
|
||||||
|
|
||||||
|
- 增加结构化 ARPC 响应解析,修改定位数据后会正确更新 32 位 payload 长度。
|
||||||
|
- 完善 marker、synthetic 和 bare protobuf 响应兼容,保留原始封装前后缀及未知字段。
|
||||||
|
- 补充 CellTower 字段 22/24、ARPC 大 payload 和多响应格式回归测试。
|
||||||
|
|
||||||
|
## 文档与致谢
|
||||||
|
|
||||||
|
- 整理项目参考、社区贡献和友链结构。
|
||||||
|
- 补充相关定位服务研究项目致谢。
|
||||||
|
|
||||||
|
## 兼容性说明
|
||||||
|
|
||||||
|
- WiFi 和 CellTower 坐标替换逻辑保持不变。
|
||||||
|
- 无法识别的新响应封装会回退原有检测路径,不会截断响应。
|
||||||
|
- 本版本未写入语义尚未确认的运动状态字段。
|
||||||
|
|
||||||
|
## 自签安装
|
||||||
|
|
||||||
|
- Release 附件为未签名 IPA,安装前需要自行签名。
|
||||||
|
- 可使用免费 Apple ID 和 Impactor 完成签名安装,无需付费开发者账号。
|
||||||
|
- 签名时请保留 Bundle ID `com.paopaolabs.location-spoofer`、App Group `group.com.paopaolabs.location-spoofer` 及原有 entitlements。
|
||||||
|
- 免费 Apple ID 签名通常只有 7 天有效期,到期后需要重新签名安装。
|
||||||
|
|
||||||
|
<!-- commit-range: v1.0.3..v1.0.4 -->
|
||||||
+2
-2
@@ -8,8 +8,8 @@ options:
|
|||||||
settings:
|
settings:
|
||||||
base:
|
base:
|
||||||
SWIFT_VERSION: "5.9"
|
SWIFT_VERSION: "5.9"
|
||||||
MARKETING_VERSION: "1.0.3"
|
MARKETING_VERSION: "1.0.4"
|
||||||
CURRENT_PROJECT_VERSION: "4"
|
CURRENT_PROJECT_VERSION: "5"
|
||||||
CODE_SIGN_STYLE: Manual
|
CODE_SIGN_STYLE: Manual
|
||||||
CODE_SIGNING_ALLOWED: "NO"
|
CODE_SIGNING_ALLOWED: "NO"
|
||||||
CODE_SIGNING_REQUIRED: "NO"
|
CODE_SIGNING_REQUIRED: "NO"
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"latestVersion": "1.0.3",
|
"latestVersion": "1.0.4",
|
||||||
"minimumSupportedVersion": "1.0.0",
|
"minimumSupportedVersion": "1.0.0",
|
||||||
"communityPromptClients": ["surge", "quantumultX", "loon", "stash", "egern"]
|
"communityPromptClients": ["surge", "quantumultX", "loon", "stash", "egern"]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user