C1.source/Apptag/Info.plist
@@ -32,7 +32,7 @@ </dict> </array> <key>CFBundleVersion</key> <string>20260707.1506</string> <string>20260707.1526</string> <key>LSApplicationCategoryType</key> <string>public.app-category.utilities</string> <key>LSMinimumSystemVersion</key> C1.source/Apptag/TagLauncher-AppStore.entitlements
New file @@ -0,0 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.application-identifier</key> <string>CR3J54M8BQ.com.taglauncher.app</string> <key>com.apple.developer.team-identifier</key> <string>CR3J54M8BQ</string> <key>com.apple.security.app-sandbox</key> <true/> <key>com.apple.security.files.user-selected.read-write</key> <true/> <key>keychain-access-groups</key> <array> <string>CR3J54M8BQ.com.taglauncher.app</string> </array> </dict> </plist> C1.source/CHANGELOG.md
@@ -6,7 +6,7 @@ - 设置页顶部固定 Pro 状态 / 引导行移除外层圆角矩形背景和描边,保留原位置、身份文案、购买和恢复购买入口 - 扩展 Pro 门禁 QA,防止该固定 Pro 行回退为带外框样式 - 版本号更新为 `8.3.6`,Build 更新为 `20260707.1506` - 版本号更新为 `8.3.6`,Build 更新为 `20260707.1526` ## [8.3.5] — 2026-07-02 C1.source/Scripts/macos14_build_metadata_qa.sh
@@ -31,6 +31,23 @@ fail "main executable is not readable/executable by non-root users: $EXECUTABLE" fi SIGNED_ENTITLEMENTS="$(mktemp -t taglauncher-signed-entitlements.XXXXXX)" PROFILE_PLIST="$(mktemp -t taglauncher-profile.XXXXXX)" cleanup() { rm -f "$SIGNED_ENTITLEMENTS" "$PROFILE_PLIST" } trap cleanup EXIT codesign -d --entitlements :- "$APP_BUNDLE" > "$SIGNED_ENTITLEMENTS" 2>/dev/null || fail "unable to read signed entitlements from $APP_BUNDLE" if [[ -f "$APP_BUNDLE/Contents/embedded.provisionprofile" ]]; then security cms -D -i "$APP_BUNDLE/Contents/embedded.provisionprofile" > "$PROFILE_PLIST" profile_application_identifier="$(/usr/libexec/PlistBuddy -c 'Print :Entitlements:com.apple.application-identifier' "$PROFILE_PLIST" 2>/dev/null || true)" if [[ -n "$profile_application_identifier" ]]; then signed_application_identifier="$(/usr/libexec/PlistBuddy -c 'Print :com.apple.application-identifier' "$SIGNED_ENTITLEMENTS" 2>/dev/null || true)" [[ "$signed_application_identifier" == "$profile_application_identifier" ]] || fail "signed application identifier '$signed_application_identifier' does not match provisioning profile '$profile_application_identifier'" fi fi actual_minimum_system="$(/usr/libexec/PlistBuddy -c 'Print :LSMinimumSystemVersion' "$INFO_PLIST")" if [[ "$actual_minimum_system" != "$EXPECTED_MINIMUM_SYSTEM" ]]; then fail "LSMinimumSystemVersion expected $EXPECTED_MINIMUM_SYSTEM, got $actual_minimum_system" C1.source/build.sh
@@ -106,11 +106,16 @@ # Set CODESIGN_IDENTITY to your "Apple Distribution" or "Mac Developer" cert name. # Example: CODESIGN_IDENTITY="Apple Distribution: Your Name (TEAMID)" CODESIGN_IDENTITY="${CODESIGN_IDENTITY:-}" ENTITLEMENTS="$SWIFT_DIR/TagLauncher.entitlements" BASE_ENTITLEMENTS="$SWIFT_DIR/TagLauncher.entitlements" APP_STORE_ENTITLEMENTS="${APP_STORE_ENTITLEMENTS:-$SWIFT_DIR/TagLauncher-AppStore.entitlements}" ENTITLEMENTS="$BASE_ENTITLEMENTS" APP_STORE_MODE=false if [ -n "${APP_STORE:-}" ] && [ "$APP_STORE" = "1" ]; then APP_STORE_MODE=true if [ -f "$APP_STORE_ENTITLEMENTS" ]; then ENTITLEMENTS="$APP_STORE_ENTITLEMENTS" fi if [ -z "$CODESIGN_IDENTITY" ]; then echo "⚠️ APP_STORE=1 but CODESIGN_IDENTITY not set. Will ad-hoc sign with entitlements." fi C2.builds/AppStore-8.3.6-20260707.1526/Archive/TagLauncher-8.3.6-build20260707.1526.dmgBinary files differ
C2.builds/AppStore-8.3.6-20260707.1526/SHA256SUMS.txt
New file @@ -0,0 +1,2 @@ bbb1b38705fad34dd28f39f222984035d2b9b8266afd579c7c9e1c5626a20df0 Archive/TagLauncher-8.3.6-build20260707.1526.dmg 707d14e0545af85d4c26205e7f7a295ab10bf94232244ed6283937c51d969079 Upload/TagLauncher-8.3.6-build20260707.1526.pkg C2.builds/AppStore-8.3.6-20260707.1526/Upload/TagLauncher-8.3.6-build20260707.1526.pkgBinary files differ
K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1506/UPLOAD_SUCCEEDED_WITH_TESTFLIGHT_WARNING.md
New file @@ -0,0 +1,36 @@ # Upload Succeeded With TestFlight Warning - Superseded Date: 2026-07-07 Build: `8.3.6 (20260707.1506)` ## Result Transporter delivered this package, but Apple reported warning `90886`: ```text Cannot be used with TestFlight because the signature for the bundle at “TagLauncher.app” is missing an application identifier but has an application identifier in the provisioning profile for the bundle. ``` ## Root Cause The embedded provisioning profile contains: ```text com.apple.application-identifier = CR3J54M8BQ.com.taglauncher.app ``` But the signed app entitlements only contained sandbox and user-selected file access entitlements. The app signature did not include the matching application identifier. ## Replacement Use the rebuilt package instead: ```text ../AppStore-8.3.6-20260707.1526/Upload/TagLauncher-8.3.6-build20260707.1526.pkg ``` Replacement SHA256: ```text 707d14e0545af85d4c26205e7f7a295ab10bf94232244ed6283937c51d969079 ``` K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1526/Archive/TagLauncher-8.3.6-build20260707.1526.dmgBinary files differ
K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1526/PKG_PREFLIGHT_REPORT.md
New file @@ -0,0 +1,76 @@ # TagLauncher 8.3.6 App Store PKG Preflight Date: 2026-07-07 Version: 8.3.6 Build: 20260707.1526 ## Package - Upload package: `Upload/TagLauncher-8.3.6-build20260707.1526.pkg` - Local rollback DMG: `Archive/TagLauncher-8.3.6-build20260707.1526.dmg` - Replaces warning build: `AppStore-8.3.6-20260707.1506/Upload/TagLauncher-8.3.6-build20260707.1506.pkg` ## Signing - App signing identity: `3rd Party Mac Developer Application: Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)` - Installer signing identity: `3rd Party Mac Developer Installer: Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)` - Embedded provisioning profile: `TagLauncher Mac App Store 20260707` - Provisioning profile UUID: `3ee49163-ef5c-4467-8971-f93cc1fc6b6d` ## Entitlement Match Gate Signed app entitlements: - `com.apple.application-identifier`: `CR3J54M8BQ.com.taglauncher.app` - `com.apple.developer.team-identifier`: `CR3J54M8BQ` - `com.apple.security.app-sandbox`: `true` - `com.apple.security.files.user-selected.read-write`: `true` Embedded provisioning profile entitlements: - `com.apple.application-identifier`: `CR3J54M8BQ.com.taglauncher.app` - `com.apple.developer.team-identifier`: `CR3J54M8BQ` Result: - PASS: signed app application identifier matches embedded provisioning profile. - PASS: signed app Team ID matches embedded provisioning profile. ## Payload Metadata - `CFBundleShortVersionString`: `8.3.6` - `CFBundleVersion`: `20260707.1526` - Bundle ID: `com.taglauncher.app` - Team ID: `CR3J54M8BQ` ## Permission Gate Expanded package payload check: ```bash find "$APP" \( -type d ! -perm -005 -o -type f ! -perm -004 \) -ls ``` Result: - PASS: no app bundle directories are restricted from non-root search/read access. - PASS: no app bundle files are restricted from non-root read access. ## Verification Commands completed successfully: ```bash pkgutil --check-signature Upload/TagLauncher-8.3.6-build20260707.1526.pkg pkgutil --expand-full Upload/TagLauncher-8.3.6-build20260707.1526.pkg /tmp/taglauncher-836-1526-pkg-preflight/expanded codesign --verify --deep --strict --verbose=2 /tmp/taglauncher-836-1526-pkg-preflight/expanded/com.taglauncher.app.pkg/Payload/TagLauncher.app hdiutil verify Archive/TagLauncher-8.3.6-build20260707.1526.dmg shasum -a 256 -c SHA256SUMS.txt ``` ## Hashes ```text bbb1b38705fad34dd28f39f222984035d2b9b8266afd579c7c9e1c5626a20df0 Archive/TagLauncher-8.3.6-build20260707.1526.dmg 707d14e0545af85d4c26205e7f7a295ab10bf94232244ed6283937c51d969079 Upload/TagLauncher-8.3.6-build20260707.1526.pkg ``` K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1526/QA/taglauncher-8.3.6-settings-about-no-pro-header-frame.png
K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1526/QA_RELEASE_EVIDENCE.md
New file @@ -0,0 +1,62 @@ # TagLauncher 8.3.6 QA Release Evidence Date: 2026-07-07 Build: `8.3.6 (20260707.1526)` ## User-Facing Requirement The Settings fixed Pro status / guidance row must not have an outer rounded rectangle frame. ## Transporter Warning Fix Build `20260707.1506` uploaded successfully but received Apple warning `90886`: ```text Cannot be used with TestFlight because the signature for the bundle at “TagLauncher.app” is missing an application identifier but has an application identifier in the provisioning profile for the bundle. ``` Build `20260707.1526` signs the app with `Apptag/TagLauncher-AppStore.entitlements`, including `CR3J54M8BQ.com.taglauncher.app`, and the QA script now checks this against the embedded provisioning profile. ## Visual Smoke Evidence screenshot: - `QA/taglauncher-8.3.6-settings-about-no-pro-header-frame.png` Result: - PASS: fixed Pro status / guidance row remains in the same position. - PASS: row has no outer rounded rectangle background or border. ## Automated / Static QA Passed: ```bash bash Scripts/pro_feature_gate_qa.sh bash Scripts/pro_localization_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 pkgutil --check-signature Upload/TagLauncher-8.3.6-build20260707.1526.pkg hdiutil verify Archive/TagLauncher-8.3.6-build20260707.1526.dmg shasum -a 256 -c SHA256SUMS.txt ``` Package payload preflight: - PASS: no root-only readable app bundle directories/files in the expanded package payload. - PASS: expanded payload app code signature verifies. - PASS: signed entitlements application identifier matches embedded provisioning profile. - PASS: embedded provisioning profile matches Team ID `CR3J54M8BQ`. Non-PASS items inherited from the previous 8.3.6 gate: - `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 - App Store upload package: PASS. - Use `Upload/TagLauncher-8.3.6-build20260707.1526.pkg` for App Store Connect. - Do not upload the superseded `20260707.1242` or `20260707.1506` packages. K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1526/RELEASE_MANIFEST.md
New file @@ -0,0 +1,66 @@ # TagLauncher 8.3.6 Release Manifest Date: 2026-07-07 ## Version - Version: `8.3.6` - Build: `20260707.1526` - Supersedes build `20260707.1506`, which uploaded successfully but produced TestFlight warning `90886`. - Branch: `codex/slim-migration-taglauncher2` ## Reason For Rebuild Transporter accepted `20260707.1506` but reported: ```text Cannot be used with TestFlight because the signature for the bundle at “TagLauncher.app” is missing an application identifier but has an application identifier in the provisioning profile for the bundle. (90886) ``` Root cause: manual codesign used `TagLauncher.entitlements`, which did not include `com.apple.application-identifier` or `com.apple.developer.team-identifier`. The embedded provisioning profile includes `CR3J54M8BQ.com.taglauncher.app`, so Apple expects the same application identifier in the signed app entitlements. Fix: - Added `Apptag/TagLauncher-AppStore.entitlements`. - Signed App Store builds with: - `com.apple.application-identifier = CR3J54M8BQ.com.taglauncher.app` - `com.apple.developer.team-identifier = CR3J54M8BQ` - sandbox and user-selected file read/write entitlements. - Extended `Scripts/macos14_build_metadata_qa.sh` to compare signed application identifier against the embedded provisioning profile when a profile is present. ## Artifacts - App Store upload package: `Upload/TagLauncher-8.3.6-build20260707.1526.pkg` - Local rollback DMG: `Archive/TagLauncher-8.3.6-build20260707.1526.dmg` - Visual QA screenshot: `QA/taglauncher-8.3.6-settings-about-no-pro-header-frame.png` - Hash file: `SHA256SUMS.txt` ## Verification Summary Passed: - `bash Scripts/pro_feature_gate_qa.sh` - `bash Scripts/pro_localization_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` - signed entitlements include `CR3J54M8BQ.com.taglauncher.app` - embedded provisioning profile includes `CR3J54M8BQ.com.taglauncher.app` - expanded package payload permission check: no root-only readable app bundle directories/files - expanded package payload `codesign --verify --deep --strict --verbose=2` - `pkgutil --check-signature Upload/TagLauncher-8.3.6-build20260707.1526.pkg` - `hdiutil verify Archive/TagLauncher-8.3.6-build20260707.1526.dmg` - `shasum -a 256 -c SHA256SUMS.txt` Non-PASS items inherited from the previous 8.3.6 gate: - `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. ## Hashes ```text bbb1b38705fad34dd28f39f222984035d2b9b8266afd579c7c9e1c5626a20df0 Archive/TagLauncher-8.3.6-build20260707.1526.dmg 707d14e0545af85d4c26205e7f7a295ab10bf94232244ed6283937c51d969079 Upload/TagLauncher-8.3.6-build20260707.1526.pkg c49127307de06d4be71536502bfdaece185bd0196a668f74e9c7fb55d60a6f8f QA/taglauncher-8.3.6-settings-about-no-pro-header-frame.png ``` K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1526/SHA256SUMS.txt
New file @@ -0,0 +1,3 @@ bbb1b38705fad34dd28f39f222984035d2b9b8266afd579c7c9e1c5626a20df0 Archive/TagLauncher-8.3.6-build20260707.1526.dmg 707d14e0545af85d4c26205e7f7a295ab10bf94232244ed6283937c51d969079 Upload/TagLauncher-8.3.6-build20260707.1526.pkg c49127307de06d4be71536502bfdaece185bd0196a668f74e9c7fb55d60a6f8f QA/taglauncher-8.3.6-settings-about-no-pro-header-frame.png K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1526/Upload/TagLauncher-8.3.6-build20260707.1526.pkgBinary files differ