Instance Method
destroy(_:)
銷毀 SDK(離開房間 + 清除 delegates + 停止 core loop + 銷毀 C 實例), 再依 options 刪除 SDK 寫到硬碟的資料
@MainActor func destroy(_ options: DestroyOptions = .default) asyncDiscussion
有執行中的 instance:走完整銷毀流程,C 層銷毀之後才刪除(C 層存活時會自動存檔寫回)
沒有 instance(例如存檔損壞、授權過期導致 initialize 失敗):跳過整段銷毀流程, 只做
options指定的刪除 —— 銷毀流程會碰已失效的 C handle,沒有 instance 時執行有閃退風險
刪除失敗只寫 log、不丟錯。預設 .default 什麼都不刪。
v0.14.0:內部會自動解除 frame crypto(等同呼叫 clearFrameCryptor())—— 有包版 setFrameCryptor(_:) 的 cryptor 物件會被自動 release,故銷毀前不需手動 clear。 ⚠️ 直通版 setFrameCrypto(...) 使用者自己 retain 的 userData 不在此範圍,仍須自行 release。