Guest account
Android
Since Android unique identifiers are generally associated with sensitive data, it is recommended to follow best practices for using Android identifiers to identify your player.
Android Universal Unique Identifier (UUID), is a 128-bit value that is considered unique in the same space-time.The Player Network identifies the player with the OpenID, which corresponds to the Android GuestID generated from the Android UUID.Therefore, any change in the GuestID will also cause a corresponding change in the OpenID.
With the following generation logic, the Android GuestID generation code is:UUID.randomUUID().toString();.

Lost Visitor Fact Sheet
If a player uninstalls and reinstalls the game or deletes the application data, their GuestID will be lost.In addition, if the player resets the device or restores the factory settings, the GuestID will also be lost.
In order to avoid the above, the Game shall recommend the Player to bind the Visitor Account with LEVEL INFINITE PASS or other third party channel accounts.
iOS
The Supplier Identifier (IDFV) is a unique identifier for the supplier.All applications developed by the same vendor on the same device will share the same IDFV.However, IDFV will not be the same for applications developed by different vendors on the same device, or for applications developed by the same vendor on different devices.
Player Network uses IDFV as an iOS GuestID to generate OpenIDs so players can experience the game without creating an account.For more information on generating IDFVs for Apple, see identifierForVendor.
Keychain Storage
While IDFV does not change when an application (or other applications from the same vendor) is installed on the device, it may change in the following scenarios:
- The device is reactivated as a new device after a system upgrade or downgrade.
- The device resets the device data after restoring the factory settings.
- The user reinstalls one or more applications after deleting all applications from the provider.
- Install the test version on your device using Xcode, or use an ad-hoc distribution to install the app.
Saving the iOS GuestID to a keychain ensures that the player will continue to have the same GuestID even in the scenario described above.Keychain is a system level SQLite database located at /private/var/Keychains/keychain-3.db that stores sensitive information such as usernames, passwords, network passwords, and authentication tokens for different applications.Each keychain entry contains a message and its attributes, such as a password and its attributes.
Permission groups are used to securely share keychain entries between applications without additional user permissions.Simply turn on keychain sharing within Xcode and keychain entries can be shared between apps from the same keychain permission group.There is only one permission group for the keychain item, although the app holds at least one private permission group named after its App ID (a Bundle ID prefixed by the Apple-generated Team ID) and any number of keychain permission groups.The name of a Keychain permission group is an Apple-generated Team ID followed by a generic string, usually in the form of a reverse DNS domain similar to the Bundle ID.

If the application does not specify a permission group for keychain entries and the keychain sharing feature is enabled, the first permission group in the application configuration list will be used by default.However, if keychain sharing is not enabled, or the app does not have any keychain permission groups, a private permission group named after the App ID is used by default.
Therefore, if app A saves data without keychain sharing turned on, and app B has keychain sharing turned on, app B can add app A's App ID to its own privilege group in order to access the data saved by app A.
It is recommended that the private permission group named after the App ID be set as the first access group.This avoids data loss if permission groups are deleted during version upgrades.
Application Transfer
Developers can transfer apps they own to another App Store Connect account when they sell the app, are reassigned to another organization, or other similar event.After an app is transferred, the app can still be found in the App Store or Mac App Store without affecting previously accumulated ratings and reviews, and users will continue to receive future updates.
For more information, see App Transfer Overview.
When an app is transferred, the associated App ID will also change.Since different developer accounts have different Team IDs, the transferred App ID will be prefixed with the new Team ID.If the app has stored data in the keychain prior to the transfer, the developer will receive an alert about Potential Loss of Keychain Access when posting an update on the App Store using a new developer account.This means that after the update, the app will not be able to access the data in the keychain associated with the App ID prefixed with the previous Team ID.
- The Bundle ID of the application will not change after the transfer.If the App ID before the transfer is a wildcard App ID, it will be transformed into a display App ID that exactly matches the Bundle ID after the transfer.
- The transferred app cannot continue to access the keychain associated with the former developer's App ID prefix, see A one-time loss in keychain data will occur if you switch your App ID prefix for details.
- Keychain permissions are only lost when the App Store publishes an app update.
The impact of app transfers on lost visitor accounts
If the app does not have keychain sharing enabled, app transfers have no effect on visitor accounts.However, if the app has keychain sharing turned on, the likelihood of GuestID loss is very high.
If a developer updates an application that has GuestIDs stored in a keychain after the application has been transferred, the GuestIDs will be lost.However, since Player Network uses the IDFV as the GuestID to generate the OpenID, if the new IDFV is the same as the previous one, the GuestID will remain the same as the one previously stored in the keychain.Therefore, the loss or retention of a visitor account depends on whether the IDFV value used as the visitor login changes from version to version.
The following table illustrates the different impacts of app transfers on visitor accounts:
| Have you uninstalled the old version? | New version installation method | Is the visitor's account lost | Remark |
|---|---|---|---|
| unloaded | Uninstall/Install | loss | IDFV will change |
| unloaded | App Store Upgrade | loss | IDFV will change |
| uninstalled | App Store Upgrade | reservations | IDFV No change |
- There is no indication in the table of any system upgrades or system restores that may result in the loss of a visitor's account.
- The above table does not take into account whether other applications issued by the same vendor are installed on the device.