作者roxx (兩斤阿吉)
看板iPhone
標題Re: [問題] ios的app如何移除乾淨?
時間Sun Apr 13 22:27:49 2014
※ 引述《diablos ( )》之銘言:
: 今天嘗試用2個不同apple id要做app內購的動作,
: A帳號是第一次下載安裝app, 並成功內購, 這筆交易有出現在帳單上.
: 之後先移除此app, 換用B帳號登入app store, 重新下載相同的app,
: 卻發現內購選項不見了,
: 執行的app看似是有內購功能的進階版狀態, 而非免費版狀態.
: 但實際上B帳號是沒成功內購此app的, 登入itunes去看帳單就可得知沒這筆交易.
: 若用別台iphone或ipad來登入B帳號安裝此app, 就會是沒有成功內購的狀態.
: 該如何把1台裝置下, 不同apple id安裝後所殘留的授權key清除乾淨?
: 難道只有系統重置的方法嗎?
: Android app可在"應用程式"裡找到欲移除之app,
: 然後按"清除數據", 把app的設定等數據清掉.
: 不過也不一定有真的完全移除, 還是會看到殘留的資料夾檔案在記憶卡中.
: 不知ios app要如何乾淨移除?
: 謝謝
這是因為該隻 App 把內購的資料存在 Keychain 中
每個 App 有它可以存取的 Keychain 權限
且 Keychain 是跟 iOS 作業系統一起存在的
不會因為你移除該隻 App 而不見
上篇推文中有人提到你可以把它想成 Windows 的登錄檔,但是多了很多權限的限制
所以除了系統重置,我不知道怎麼清除 Keychain
以上是一個 iOS 軟體工程師的發現,也許適用 Navier 的狀況
有興趣的可以參考
沒有縮網址:
https://developer.apple.com/library/ios/documentation/security/conceptual/
keychainServConcepts/iPhoneTasks/iPhoneTasks.html
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.172.106
※ 文章網址: http://webptt.com/m.aspx?n=bbs/iPhone/M.1397399272.A.603.html
1F:推 diablos:對 沒錯 我猜就是像windows登錄檔的意思 但還是有人認為 04/13 22:31
2F:→ diablos:ios不會殘留被移除的資料在裝置裡 此app倒是證明了會殘留 04/13 22:33
3F:→ diablos:這跟windows程式 過試用期後 若不購買是不能使用 因登錄檔 04/13 22:40
4F:→ diablos:已存於裝置 除非找到機碼 將其刪除 或電腦重灌(=ios重置) 04/13 22:43
5F:推 scottiting:重置有效嗎?還是要換裝置才有效? 04/13 23:10
6F:推 scottiting:這篇回復的應該沒錯 keychain某方面是個UDID的替代管道 04/13 23:23
7F:→ scottiting:就是提供開發者端"認裝置"的一個方法 只是重置後會洗掉 04/13 23:24
8F:→ scottiting:所以應該重置和換裝置都可以讓開發者認為是新的裝置 04/13 23:24
9F:→ diablos:我猜系統重置或安裝在別台裝置 才能出現內購選項 04/13 23:48
10F:→ diablos:我舉例windows程式 只要能找出試用期的登錄檔機碼 即使不 04/13 23:49
11F:→ diablos:用電腦還原或重灌 依舊可在同裝置無限次試用 但你找不到 04/13 23:51
12F:推 lordmi:我看了一下apple的文件,看來它被保存在這邊免於被砍: 04/13 23:51
13F:→ lordmi:/private/var/Keychains 04/13 23:51
14F:→ diablos:也刪不掉Navier的認證資料 請人實驗把ios重置為出廠狀態 04/13 23:53
15F:→ lordmi:不過吸出來的資料仍然是被唯一硬體加過密的,所以別用明文 04/13 23:53
16F:→ diablos:就不會有人堅持ios是不可能殘留垃圾檔的阿 Haha... 04/13 23:54
17F:→ lordmi:應該就沒有太大問題。至於刪除也只有app自身能做到 04/13 23:54
18F:→ lordmi:你遇到的狀況是設計者寫作上的觀念錯誤,跟Keychain 04/13 23:56
19F:→ lordmi:是不是垃圾無關,就只是人為錯誤(本來該刪掉的) 04/13 23:57
20F:推 abian:謝謝提示...xd keychain-2.db裡面的確有二組該app的記錄 04/14 00:02
21F:→ abian:一個pdmn值顯示ck (kSecAttrAccessibleAfterFirstUnlock) 04/14 00:03
22F:→ abian:一個顯示ak (kSecAttrAccessibleWhenUnlocked) 04/14 00:03
23F:→ diablos:我有說這是Navier的bug了阿 :) 而app沒設計成移除時刪除所 04/14 00:04
24F:推 lordmi:順便一提這apple的api文件庫排版我根本看不懂在寫啥鬼 04/14 00:04
25F:→ abian:iCleaner不會動這個檔,所以怎麼刪不刪不到 @@ 04/14 00:04
27F:→ abian:理論上刪除那二行後,購物車應該就會跑出來了? 04/14 00:05
28F:→ abian:贏要衝,輸要縮!! 04/14 00:06
29F:→ lordmi:然後用關鍵字去搜中文,發現對岸從2011就解的一清二楚..(抖 04/14 00:06
30F:→ diablos:有data 而會有殘留 表示最終還是要靠app designer有寫好啊 04/14 00:06
31F:推 abian:算了不試了,前不久才將iPad搞爛好不容易救回... 04/14 00:08
32F:→ abian:我俗辣了 囧> 04/14 00:08
33F:推 lordmi:相信我,被iCleaner搞爛過不該清的目錄你不是頭一人... 04/14 00:11
34F:→ lordmi:還好那時候iOS6沒關認證能重刷,現在就哭哭了 04/14 00:11
35F:噓 scottiting:不好意思 我覺得原po很堅持垃圾檔的觀念真的要糾正一下 04/14 03:34
36F:→ scottiting:keychain並不是因為安裝這個app才長出來的檔案 04/14 03:35
37F:→ scottiting:所以你把這個app刪掉當然也不可以要求它也要丟掉 04/14 03:35
38F:→ scottiting:充其量就是一個log 紀錄的概念 04/14 03:35
39F:→ scottiting:這和 "因為安裝了某app而生成了某資料夾某檔案 刪不掉" 04/14 03:36
40F:→ scottiting:是不一樣的 04/14 03:36
41F:推 scottiting:補推 這篇原po sorry 04/14 03:38
42F:→ scottiting:什麼叫垃圾檔? 就是這個app帶來的 並且只限於這個app用 04/14 03:39
43F:→ scottiting:在app本體刪除後 手動刪掉它不會有任何影響 才叫"垃圾" 04/14 03:40
44F:推 kcadobe:推一下樓上 04/14 12:42
45F:→ royhsia:Minion rush的狀況可以用 iFile 用SQL editor去開keychain 04/14 14:00
46F:→ royhsia:用指令把Minion Rush 增加的那幾欄刪除並存檔,重開機後 04/14 14:00
47F:→ royhsia:就會被認為是全新的裝置了。 04/14 14:01
48F:推 BlackSeven:推scottiting 和 royhsia 04/14 15:26