Ariver
2026-07-07 ae7fcc35862edb366ed7775d3dc7e93e53e59290
release: rebuild 8.3.6 app store entitlements
4 files modified
12 files added
291 ■■■■■ changed files
C1.source/Apptag/Info.plist 2 ●●● patch | view | raw | blame | history
C1.source/Apptag/TagLauncher-AppStore.entitlements 18 ●●●●● patch | view | raw | blame | history
C1.source/CHANGELOG.md 2 ●●● patch | view | raw | blame | history
C1.source/Scripts/macos14_build_metadata_qa.sh 17 ●●●●● patch | view | raw | blame | history
C1.source/build.sh 7 ●●●● patch | view | raw | blame | history
C2.builds/AppStore-8.3.6-20260707.1526/Archive/TagLauncher-8.3.6-build20260707.1526.dmg patch | view | raw | blame | history
C2.builds/AppStore-8.3.6-20260707.1526/SHA256SUMS.txt 2 ●●●●● patch | view | raw | blame | history
C2.builds/AppStore-8.3.6-20260707.1526/Upload/TagLauncher-8.3.6-build20260707.1526.pkg patch | view | raw | blame | history
K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1506/UPLOAD_SUCCEEDED_WITH_TESTFLIGHT_WARNING.md 36 ●●●●● patch | view | raw | blame | history
K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1526/Archive/TagLauncher-8.3.6-build20260707.1526.dmg patch | view | raw | blame | history
K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1526/PKG_PREFLIGHT_REPORT.md 76 ●●●●● patch | view | raw | blame | history
K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1526/QA/taglauncher-8.3.6-settings-about-no-pro-header-frame.png patch | view | raw | blame | history
K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1526/QA_RELEASE_EVIDENCE.md 62 ●●●●● patch | view | raw | blame | history
K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1526/RELEASE_MANIFEST.md 66 ●●●●● patch | view | raw | blame | history
K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1526/SHA256SUMS.txt 3 ●●●●● patch | view | raw | blame | history
K3.运营与发布资料/Release/AppStore-8.3.6-20260707.1526/Upload/TagLauncher-8.3.6-build20260707.1526.pkg patch | view | raw | blame | history
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.dmg
Binary 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.pkg
Binary 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.dmg
Binary 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.pkg
Binary files differ