本檔案名稱沿用自 v1.0 首次提審,v1.1/v1.2 各輪持續沿用同一份清單追蹤,不另開新檔。 最後更新請見
git log -- V1_RELEASE_CHECKLIST.md(不手動維護日期戳,這份清單常是逐項 勾選/補註記,容易改了內容卻忘記同步頂部日期,比照CLAUDE.md「最新 commit」慣例改指 git log)。
目標上線日:2026 年 8 月 18 日
目前送審版本:1.2 (Build 3)
docs/KNOWN_ISSUES.md)Info.plist 的 LSApplicationCategoryType:已改為 public.app-category.healthcare-fitness,ASC Category 欄位同步更新,真機驗證修復生效(2026-07-25)xcodebuild test)— 2026-07-17 驗證DiveLogImporter.swift 89.1%(2026-07-17)00_Import_test_scenes/ITS_01/05DiveImportKit 的錯誤訊息內容部分仍為中文技術性描述,非本次範圍,見 _JD2-family/reports/R-2026-07-25-DiveImportKit錯誤訊息未本地化.mdAdBannerView 載入失敗自動收合高度)DiveLogDetailView/DiveLogListView 兩處先前遺漏的獨立硬編碼 bug;詳見 V1_2_BACKLOG.md #18/#20/#23Color.accessibleSecondary,本輪新增欄位(配重/氣瓶壓力)走既有 DetailRow/系統 Form 背景,未發現新退化.help() 沒有 .accessibilityLabel() 的工具列按鈕(MainTabView.swift),已補齊.contentShape;其餘小尺寸 frame 皆為裝飾性非互動元素xcrun simctl ui content_size accessibility-extra-extra-extra-large):字級本身確實會縮放(延續 2026-06-01 結論),但抓到程式碼複查看不出來的真違規——3 處「圖示+數值+單位+標籤」3 欄橫排卡片(日誌列表統計列、詳情頁主要數據、地圖潛點卡片)在 AX5 極限字級下視覺重疊/裁切,minimumScaleFactor 保護不住。已修:3 處皆改成 dynamicTypeSize.isAccessibilitySize 時改直式排列,模擬器截圖覆測確認正常WCAG_2.1_AA_AUDIT_CHECKLIST.md(附錄 2 已更新為模擬器實測結果,非純程式碼複查)DetailRow 英文殘留、Entry Time 唸英文、Save 鍵無提示、「潛水剖面圖」誤譯 4 項回歸驗證)。地圖流程未通過——VoiceOver 下無法縮放/平移/展開聚合/選其他 pin,判斷為 MapKit 固有限制,非本輪退化,見附錄 4/5,暫列已知限制,日誌列表可作為視障使用者瀏覽潛點的替代路徑com.jd2logbook.JD2-Logbook(project.pbxproj),v1.0 已用同一 Bundle ID 送審且 macOS 已通過審核,確認有效註冊DEVELOPMENT_TEAM = 77UHM3NN7J(HUA SHENG Huang)、CODE_SIGN_STYLE = Automatic;2026-07-27 PM 確認 Archive 已成功跑過並安裝到 iPhone 16 實機,簽署鏈正常MARKETING_VERSION/CURRENT_PROJECT_VERSION 已更新,iOS + macOS build 通過docs/APPSTORE_COPY.md 最終版套用至 iOS + macOS 兩平台三語頁面dive log,scuba,logbook,Shearwater,UDDF,Garmin,Suunto,Subsurface,nitrox,dive computer,freediving,underwater 已換成 Shearwater),iOS + macOS 兩平台皆已套用Assets.xcassets/AppIcon.appiconset 已有 light/dark/tinted/mac 四組 1024px(2026-06-06 建立,v1.0 已用此圖示送審且通過),V1_2_BACKLOG.md #2 PM 已明確決定「icon 全盤 review 延後到下一版,非本輪阻塞項」,此輪維持現狀即可https://kwh66tw-art.github.io/JoyDive/logbook/privacy,2026-07-28 於 ASC App Privacy 頁面現場確認存在且正確docs/reports/R-2026-07-28-iOS送審駁回二次核查與修正.mdV1_1_BACKLOG.md #9/#10)DiveLogImporter.swift 89.1%)showBackupSection = false),下一版驗證後開放,見 V1_2_BACKLOG.md #11V1_2_BACKLOG.md #2showWarningEvents = false),呈現方式待改版再定案,見 V1_2_BACKLOG.md #3🔴 首要任務(2026-07-29 使用者指示):App Store 關鍵字策略全面失敗,
重新聚焦「潛水日誌」相關搜尋詞——v1.2 上架後實測發現,App Store 搜尋
除非直接打「JD2」「JoyDive」等品牌詞,否則完全找不到本產品。根因:目前
關鍵字 docs/APPSTORE_COPY.md(三語共用同一組)——
dive log,scuba,logbook,Shearwater,UDDF,Garmin,Suunto,Subsurface,nitrox,
dive computer,freediving ——被特定電腦錶品牌名稱(Shearwater/UDDF/
Garmin/Suunto/Subsurface)佔掉大半版位,這些是只有已經知道自己在找
什麼的技術潛水玩家才會搜尋的詞,一般用戶搜尋「潛水日誌」「dive log」
「scuba diving app」這類通用意圖詞的動線完全沒有覆蓋到。下次改版
送審前列為首要任務:關鍵字策略要以「潛水日誌/dive log」核心意圖詞
為主軸重新設計,品牌名稱格式相容性可以留在 Description 內文提及,
不該佔用寶貴的 100 字元 Keywords 欄位。三語(EN/繁中/日文)Keywords
欄位需要各自依語言搜尋習慣重新規劃,不能像這次一樣三語共用同一組
英文詞。
匯入結果動態數量字串的 Vary-by-Plural 修復(ImportWizardView.swift
"%lld dive%@ imported"/"%lld skipped (duplicates)")——這是現在就
能看到的顯示 bug:18 種語言裡 count≠1 時畫面會混進一個字面英文 “s”
(手動判斷單複數後綴的寫法對非英語式複數規則完全沒有對應機制),不是
單純的翻譯精緻度問題。已有完整技術方案:_JD2-family/
F-09-PLURAL_LOCALIZATION_GUIDE.md §3「兩個 App 的技術路徑不同」——
Logbook 因為用自訂 AppLanguageManager.localized()+String(format:)
支援 App 內建語言切換器,繞過 Apple 原生 stringsdict 解析機制,需要
改用 String(localized:locale:)(明確傳 languageManager.locale)並在
模擬器切換至少 en/hr/ja 三種語言實測,確認沒有破壞四段式語言切換機制。
ultra 端同款字串已修復(commit a689836)可參考做法差異。
使用者明確指示:v1.2 審核通過後、下次改版前找時間處理,本輪不動。