上架之後你想改關鍵字,App Store Connect 讓你打字,按儲存,失敗。訊息是「請稍後再試」。
我真的稍後再試了。試了很多次,中間去做別的事再回來試。因為那五個字讓我相信這是暫時性的問題。
它不是。
真相是 HTTP 409
翻開 network 面板才看到實際回應:
PATCH /iris/v1/appStoreVersionLocalizations/<id> → 409
{"code":"STATE_ERROR",
"detail":"Attribute 'keywords' cannot be edited at this time"}
已經上架的版本,關鍵字欄是鎖死的。要等你出下一個版本送審,才改得到。
不是忙,不是網路問題,不是稍後會好。是永遠不會,直到你出新版本。
副標題也一樣。App Info 頁會報「無法儲存繁體中文副標題,請稍後再試」——同樣誤導。
六個欄位,哪些改得動
| 欄位 | 上架後 | 字數上限 |
|---|---|---|
| promotionalText | ✅ 即時生效,不用送審 | 170 |
| keywords | ❌ 要等下個版本 | 100 |
| subtitle | ❌ 要等下個版本 | 30 |
| description | 跟版本 | 4000 |
| whatsNew | 跟版本 | 4000 |
| app 名稱 | 跟版本 | 30 |
170 字元,不用送審,隨時可改。要做限時活動、要反映新功能、要試不同說法,這是唯一改得動的地方。但它不進搜尋索引——所以它是寫給人看的,不是寫給演算法看的。
那個會連累其他欄位的陷阱
這個我踩得最冤枉。
我當時想一次過改兩樣:關鍵字,和推廣文字。同一個請求送出去。
結果是:關鍵字改不動 → 整個請求 409 → 連本來改得到的推廣文字,也一起儲存失敗。
我以為是推廣文字本身有問題,繞了一圈才想通。最後把關鍵字還原成原值,只留推廣文字,才儲存成功。
所以:一次只改一個欄位。一個改不動的欄位,會拖死整批。這個行為在介面上完全看不出來,因為介面只會告訴你「儲存失敗」。
實務上該怎麼安排
- 關鍵字和副標題,現在就寫定,放著 不要等到送審當天才臨時想。那個時候你只想快點送出去,不會有心情雕字。寫好放在一個檔案裡,下次 bump 版本直接抄。
- promotionalText 當成可以隨時調的那一格 它是你唯一能即時反應的地方。上架初期可以用它試不同說法,看哪個講法讓人願意下載。
- 改的時候逐欄分開送 尤其是用 API 的時候。批次更新看起來有效率,但一個欄位卡住就全部失敗,而錯誤訊息不會告訴你是哪一個。
還有一個很多人不知道的欄位
產品頁上的「語言」那一欄,不是從你的商店文案來的。
它看的是 app 套件裡宣告了哪些語言。如果你的 Info.plist 沒有填 CFBundleLocalizations,那一欄就只會顯示開發語言。
我的 app 介面有六種語言,包括繁體中文。但商店上寫著「EN 英文」——等於明白告訴中文使用者,這是一個英文 app。
這一欄同樣要等下個版本才會更新。但它是一行設定的事。
小結
上架不是終點,是你開始被搜尋的起點。而搜尋要用到的那兩個欄位——關鍵字和副標題——偏偏是上架後鎖死的。
先寫好,放著。下一次 bump 版本的時候,你會慶幸自己寫過。