1
個人頁 → 匿名 profile tab(無 lv2 身份引導)
AnonymousIdentityStatusListView+ViewModel:146 / AnonymousIdentityCardView:103
9:41
建立第一個匿名身份!
校系匿名身份NEW
建立後可在校版發文
職業匿名身份
建立後可在職場版發文
一般匿名身份
建立後可匿名發文
文章
回應
建立身份後即可發文
View 觸發 + 點卡片觸發
VIEW載入完 identities 且有可建立卡片
payload
position = self_profile
creatableIdentities = 可建立 type 清單
selectedIdentity = nil
TAP.create 卡片
payload
position = self_profile
creatableIdentities = nil
selectedIdentity = 點到的 type
2
個人頁 → ProfileSelectionView(橫向 profile 切換列)
ProfileTabController+ProfileSelectionView:177 / ProfileTabController:317
9:41
小明
阿正
+
新增
主要內容區(profile 詳情、列表)
snapshot 含 .addProfile → View 觸發
點「新增」→ Tap 觸發
VIEWprofile 列表 snapshot 包含 .addProfile
payload
position = self_profile_identity
creatableIdentities = ["persona"]
selectedIdentity = nil
TAP點橫向列尾的「+ 新增 profile」cell
payload
position = self_profile_identity
creatableIdentities = nil
selectedIdentity = persona
3
註冊流程 — promptRegisterPersonaIdentity alert
FlowSequences+RegisterPersonaIdentity:56 / 69
9:41
建立你的第一個身份
建立後就能開始發文、留言,
一起加入 Dcard 的話題討論
取消
建立
Alert 出現 → View 觸發
點「建立」→ Tap 觸發
VIEWprompt alert 出現
payload
position = 上層傳入的 source
creatableIdentities = ["IDENTITY_NICKNAME"] ⚠️
selectedIdentity = nil
TAP點 alert 的「建立」按鈕
payload
position = 同上
creatableIdentities = nil
selectedIdentity = IDENTITY_NICKNAME ⚠️
⚠️ 用字串字面值 IDENTITY_NICKNAME,跟其他 source 用的 persona rawValue 不一致
4
Jot 編輯器 → 身份選擇 sheet
JotEditorUtils+IdentitySelectionSheet:62 / 77
9:41
選擇要使用的身份
小明
@xiaoming · 已使用 3 次
阿正
@azheng
新增身份
+
建立新 persona
Sheet 出現含「新增 persona」→ View
點「建立新 persona」cell → Tap
VIEWsheet 含「新增 persona」section
payload
position = 上層傳入的 source
creatableIdentities = ["persona"]
selectedIdentity = nil
TAP點 sheet 中的「新增 persona」cell
payload
position = 同上
creatableIdentities = nil
selectedIdentity = persona
觸發前提:Member.canCreateAnotherPersona == true
5
發文編輯器 → 身份選擇 sheet
AuthorIdentitySelectionViewController:258 / 348 / 366
9:41
選擇發文身份
小明
一般匿名身份
校系匿名身份
需完成驗證
職業匿名身份
需完成驗證
+
建立新 persona
3 種觸發路徑(見右)
VIEWsheet 載入完且有 claimable / 可建 persona
payload
position = 上層 source
creatableIdentities = claimable types + 可選 persona
selectedIdentity = nil
TAP點 claimable identity 列(如校系驗證入口)
payload
creatableIdentities = nil   selectedIdentity = identity type
TAP點「建立新 persona」cell
payload
creatableIdentities = nil   selectedIdentity = persona
6
自訂匿名頭像 → 套用時 server 回無身份錯誤
AnonymousAvatarPickerViewController:521
9:41
選擇匿名頭像
取得匿名身份
套用此頭像需先建立匿名身份,
是否前往驗證?
取消
立即驗證
套用 → server 回無身份錯誤
→ 純提示曝光(無 Tap 事件)
SPECIAL套用匿名頭像但 server 回 anonymousAvatarWithoutIdentity 錯誤
payload
position = edit_anonymous_avatar_identity_created_hint
creatableIdentities = nil
selectedIdentity = nil
⚠️ 唯一一個 creatableIdentitiesselectedIdentity 同時為 nil 的場景 — 純引導 alert 曝光,靠 position 識別
注意:alert 出現後若用戶點「立即驗證」,不會再打 identityCreatedPromptViewed(會進 registerIdentityEntry flow)