iOSの場合。Ti.Platform.idの値は、NSUserDefaultsに保存されていない場合にのみ、CFUUIDCreateによって生成される。そしてNSUserDefaultsに保存される。(SDKのソースより)
そのため以下の状態の場合、端末を変更してもTi.Platform.idが変わらない。
- 端末OLDでアプリAを実行する。アプリA内でTi.Platform.idを取得している。
- 端末NEWを購入し、端末OLDのバックアップをリストアする。当然アプリAもリストアされる。
- 端末NEWでアプリAを実行する。ただしアプリA内のTi.Platform.idの値は、リストアされたNSUserDefaultの値を利用するため、端末OLDと同じ値になる。
実験してもこの結果だったので、たぶんこの動きで正しい。分かってしまえば対処できるけど、UDIDの代替としてはちょっと?という動きだった。