From 464905b597a98bc09b269936c2b35a27ec46fdce Mon Sep 17 00:00:00 2001 From: Ariver <shanghai3168@gmail.com> Date: Tue, 07 Jul 2026 12:57:56 +0800 Subject: [PATCH] docs: record 8.3.6 release gate evidence --- K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1242/APP_STORE_UPLOAD_BLOCKER.md | 79 +++++++++++++++++++ K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1242/Upload/README.md | 5 + C2.builds/AppStore-8.3.6-20260707.1242/SHA256SUMS.txt | 1 K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1242/QA/taglauncher-8.3.6-settings-about-no-pro-header-frame.png | 0 K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1242/QA_RELEASE_EVIDENCE.md | 61 +++++++++++++++ K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1242/RELEASE_MANIFEST.md | 60 +++++++++++++++ K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1242/Archive/TagLauncher-8.3.6-build20260707.1242.dmg | 0 C2.builds/AppStore-8.3.6-20260707.1242/Archive/TagLauncher-8.3.6-build20260707.1242.dmg | 0 K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1242/SHA256SUMS.txt | 2 9 files changed, 208 insertions(+), 0 deletions(-) diff --git a/C2.builds/AppStore-8.3.6-20260707.1242/Archive/TagLauncher-8.3.6-build20260707.1242.dmg b/C2.builds/AppStore-8.3.6-20260707.1242/Archive/TagLauncher-8.3.6-build20260707.1242.dmg new file mode 100644 index 0000000..e7f83db --- /dev/null +++ b/C2.builds/AppStore-8.3.6-20260707.1242/Archive/TagLauncher-8.3.6-build20260707.1242.dmg Binary files differ diff --git a/C2.builds/AppStore-8.3.6-20260707.1242/SHA256SUMS.txt b/C2.builds/AppStore-8.3.6-20260707.1242/SHA256SUMS.txt new file mode 100644 index 0000000..d196c0b --- /dev/null +++ b/C2.builds/AppStore-8.3.6-20260707.1242/SHA256SUMS.txt @@ -0,0 +1 @@ +6b899e1961ac203a777f7d285eaaed0fb14e5c4a4e9cec6500f779cda7a3333e Archive/TagLauncher-8.3.6-build20260707.1242.dmg diff --git "a/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/APP_STORE_UPLOAD_BLOCKER.md" "b/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/APP_STORE_UPLOAD_BLOCKER.md" new file mode 100644 index 0000000..9f21af3 --- /dev/null +++ "b/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/APP_STORE_UPLOAD_BLOCKER.md" @@ -0,0 +1,79 @@ +# TagLauncher 8.3.6 App Store Upload Blocker + +Date: 2026-07-07 + +## Blocker + +The App Store Connect upload `.pkg` cannot be generated on this Mac because the required company signing identities and provisioning profile are not available locally. + +Required for upload: + +- `3rd Party Mac Developer Application: Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)` +- `3rd Party Mac Developer Installer: Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)` +- Mac App Store provisioning profile for `CR3J54M8BQ.com.taglauncher.app` + +Observed local keychain identities: + +```text +PrivateVoice Local Code Signing +Apple Development: junfeng zhang (9MYR6D5R5U) +``` + +Observed provisioning profile directory: + +```text +~/Library/MobileDevice/Provisioning Profiles +``` + +No local `.provisionprofile` files were found there during this release gate. + +## Important Constraint + +Do not sign the App Store upload package with `Apple Development: junfeng zhang (9MYR6D5R5U)` or any personal development identity. That would produce the wrong distribution artifact and is not acceptable for ASC submission. + +## Completed Anyway + +- Source code is frozen at `d76f5d61a7463dee1600d6b40eb85cabfa75a914`. +- Version/build metadata is `8.3.6 (20260707.1242)`. +- Local ad-hoc QA app and local rollback DMG were generated and verified. + +## Resume Condition + +After the company certificates and provisioning profile are installed, regenerate the App Store upload package from the frozen source commit using the company identities, then run PKG preflight: + +```bash +cd /Users/ar/Projects/Taglauncher/03-O/C1.source +APP_STORE=1 \ +APP_BUILD=20260707.1242 \ +CODESIGN_IDENTITY="3rd Party Mac Developer Application: Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)" \ +bash build.sh +``` + +Before final App Store signing, the Mac App Store provisioning profile for `CR3J54M8BQ.com.taglauncher.app` must be embedded into the app bundle and the app must then be signed with the company application identity. The current `build.sh` does not automatically embed a provisioning profile, so the resume step must either update the script to do this or perform the profile copy before the final codesign: + +```bash +cp "/path/to/TagLauncher Mac App Store.provisionprofile" \ + build/TagLauncher.app/Contents/embedded.provisionprofile + +codesign --force --deep \ + --sign "3rd Party Mac Developer Application: Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)" \ + --entitlements Apptag/TagLauncher.entitlements \ + build/TagLauncher.app +``` + +Then create the ASC upload package with the company installer identity: + +```bash +productbuild \ + --component build/TagLauncher.app /Applications \ + --sign "3rd Party Mac Developer Installer: Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)" \ + /Users/ar/Projects/Taglauncher/03-O/K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1242/Upload/TagLauncher-8.3.6-build20260707.1242.pkg +``` + +Required preflight after package generation: + +```bash +pkgutil --check-signature /Users/ar/Projects/Taglauncher/03-O/K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1242/Upload/TagLauncher-8.3.6-build20260707.1242.pkg +pkgutil --expand-full /Users/ar/Projects/Taglauncher/03-O/K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1242/Upload/TagLauncher-8.3.6-build20260707.1242.pkg /Users/ar/Projects/Taglauncher/03-O/K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1242/Preflight/expanded +codesign --verify --deep --strict --verbose=2 /Users/ar/Projects/Taglauncher/03-O/K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1242/Preflight/expanded/com.taglauncher.app.pkg/Payload/TagLauncher.app +``` diff --git "a/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/Archive/TagLauncher-8.3.6-build20260707.1242.dmg" "b/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/Archive/TagLauncher-8.3.6-build20260707.1242.dmg" new file mode 100644 index 0000000..e7f83db --- /dev/null +++ "b/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/Archive/TagLauncher-8.3.6-build20260707.1242.dmg" Binary files differ diff --git "a/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/QA/taglauncher-8.3.6-settings-about-no-pro-header-frame.png" "b/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/QA/taglauncher-8.3.6-settings-about-no-pro-header-frame.png" new file mode 100644 index 0000000..4bd6bc8 --- /dev/null +++ "b/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/QA/taglauncher-8.3.6-settings-about-no-pro-header-frame.png" Binary files differ diff --git "a/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/QA_RELEASE_EVIDENCE.md" "b/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/QA_RELEASE_EVIDENCE.md" new file mode 100644 index 0000000..271f1c6 --- /dev/null +++ "b/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/QA_RELEASE_EVIDENCE.md" @@ -0,0 +1,61 @@ +# TagLauncher 8.3.6 QA Release Evidence + +Date: 2026-07-07 +Build: `8.3.6 (20260707.1242)` +Source freeze commit: `d76f5d61a7463dee1600d6b40eb85cabfa75a914` + +## User-Facing Requirement + +The Settings fixed Pro status / guidance row must no longer have an outer rounded rectangle frame. + +## Visual Smoke + +Evidence screenshot: + +- `QA/taglauncher-8.3.6-settings-about-no-pro-header-frame.png` + +Result: + +- PASS: the Settings window opens from the built app. +- PASS: the About tab shows the fixed Pro status row in the same position. +- PASS: the row has no outer rounded rectangle background or border. +- PASS: identity text, unlock button, restore purchase button, tab layout, and app version display remain visible. + +## Automated / Static QA + +Passed: + +```bash +bash Scripts/pro_feature_gate_qa.sh +bash Scripts/pro_localization_qa.sh +bash Scripts/pro_theme_preview_countdown_qa.sh +bash Scripts/macos14_availability_typecheck_qa.sh +bash Scripts/pro_custom_hotkeys_qa.sh +bash Scripts/pro_display_mode_preview_qa.sh +bash Scripts/pro_custom_container_quota_qa.sh +bash Scripts/quick_search_launch_contract_qa.sh +bash Scripts/windowserver_event_safety_qa.sh +bash Scripts/theme_settings_qa.sh +bash Scripts/settings_language_title_qa.sh +bash Scripts/app_ordering_data_qa.sh +bash Scripts/pro_notes_quota_qa.sh +bash Scripts/pro_tag_custom_color_qa.sh +bash Scripts/appgrid_startup_loading_qa.sh +bash Scripts/quick_search_system_app_qa.sh +bash Scripts/url_scheme_activation_qa.sh +bash Scripts/usage_tips_qa.sh +bash Scripts/tag_editor_mouse_event_qa.sh +bash Scripts/macos14_build_metadata_qa.sh build/TagLauncher.app +codesign --verify --deep --strict --verbose=2 build/TagLauncher.app +hdiutil verify build/TagLauncher.dmg +``` + +Non-PASS items: + +- `bash Scripts/quick_search_app_name_qa.sh`: script returned `SKIP Sunlogin wrapper app not installed at /Applications/贝锐向日葵被控.app`. +- `bash Scripts/window_logic_qa.sh`: script returned `FAIL: cliclick is required for window-position click checks.` + +## Release Gate Conclusion + +- Local QA app / DMG: PASS for the scoped UI change. +- App Store upload package: BLOCKED by missing company signing materials; see `APP_STORE_UPLOAD_BLOCKER.md`. diff --git "a/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/RELEASE_MANIFEST.md" "b/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/RELEASE_MANIFEST.md" new file mode 100644 index 0000000..2e55404 --- /dev/null +++ "b/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/RELEASE_MANIFEST.md" @@ -0,0 +1,60 @@ +# TagLauncher 8.3.6 Release Manifest + +Date: 2026-07-07 + +## Version + +- Version: `8.3.6` +- Build: `20260707.1242` +- Source freeze commit: `d76f5d61a7463dee1600d6b40eb85cabfa75a914` +- Branch: `codex/slim-migration-taglauncher2` +- CODEGRAPH: checked and updated for the Settings fixed Pro header visual contract and Pro feature QA coverage. +- codebase-memory: not applicable for this release gate; current project handoff uses `CODEGRAPH.md` as the maintained engineering map. + +## Release Scope + +- Removed the outer rounded rectangle background and border from the fixed Pro status / guidance row under the Settings tab bar. +- Kept all Pro entitlement, purchase, restore, tab placement, and localization behavior unchanged. +- Fixed two build-gate blockers found during release validation: + - Split `ContentView.body` observer chains to avoid Swift compiler type-check timeout. + - Removed invalid `AppTransaction.revocationDate` access; `AppTransaction` in the current StoreKit SDK exposes original app purchase metadata but no revocation date. + +## Artifacts + +- Local QA DMG: `Archive/TagLauncher-8.3.6-build20260707.1242.dmg` +- Visual QA screenshot: `QA/taglauncher-8.3.6-settings-about-no-pro-header-frame.png` +- Hash file: `SHA256SUMS.txt` +- App Store upload package: blocked; see `APP_STORE_UPLOAD_BLOCKER.md` + +## Build Commands + +```bash +cd /Users/ar/Projects/Taglauncher/03-O/C1.source +APP_BUILD=20260707.1242 bash build.sh +bash make_dmg.sh +``` + +## Verification Summary + +Passed: + +- `bash Scripts/pro_feature_gate_qa.sh` +- `bash Scripts/pro_localization_qa.sh` +- `bash Scripts/pro_theme_preview_countdown_qa.sh` +- `bash Scripts/macos14_availability_typecheck_qa.sh` +- `bash Scripts/macos14_build_metadata_qa.sh build/TagLauncher.app` +- `codesign --verify --deep --strict --verbose=2 build/TagLauncher.app` +- `hdiutil verify build/TagLauncher.dmg` + +Partial / blocked: + +- `bash Scripts/quick_search_app_name_qa.sh`: skipped because the Sunlogin wrapper fixture app is not installed on this Mac. +- `bash Scripts/window_logic_qa.sh`: blocked because `cliclick` is not installed. +- App Store `.pkg`: blocked because the company Mac App Store signing identities and provisioning profile are not present locally. + +## Hashes + +```text +6b899e1961ac203a777f7d285eaaed0fb14e5c4a4e9cec6500f779cda7a3333e Archive/TagLauncher-8.3.6-build20260707.1242.dmg +c49127307de06d4be71536502bfdaece185bd0196a668f74e9c7fb55d60a6f8f QA/taglauncher-8.3.6-settings-about-no-pro-header-frame.png +``` diff --git "a/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/SHA256SUMS.txt" "b/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/SHA256SUMS.txt" new file mode 100644 index 0000000..4c82266 --- /dev/null +++ "b/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/SHA256SUMS.txt" @@ -0,0 +1,2 @@ +6b899e1961ac203a777f7d285eaaed0fb14e5c4a4e9cec6500f779cda7a3333e Archive/TagLauncher-8.3.6-build20260707.1242.dmg +c49127307de06d4be71536502bfdaece185bd0196a668f74e9c7fb55d60a6f8f QA/taglauncher-8.3.6-settings-about-no-pro-header-frame.png diff --git "a/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/Upload/README.md" "b/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/Upload/README.md" new file mode 100644 index 0000000..77fb42f --- /dev/null +++ "b/K3.\350\277\220\350\220\245\344\270\216\345\217\221\345\270\203\350\265\204\346\226\231/Release/AppStore-8.3.6-20260707.1242/Upload/README.md" @@ -0,0 +1,5 @@ +# Upload + +No App Store Connect `.pkg` is present in this directory. + +Reason: the required company Mac App Store signing identities and provisioning profile for `Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)` are not installed on this Mac. Do not place a package signed with a personal Apple Development identity here. -- Gitblit v1.9.3