From 83b9d5c682b21d88133f24da0f94dd56bd79e687 Mon Sep 17 00:00:00 2001 From: 单军华 Date: Thu, 19 Jul 2018 13:38:55 +0800 Subject: [PATCH] change --- screendisplay/Pods/FCUUID/README.md | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 113 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/FCUUID/README.md b/screendisplay/Pods/FCUUID/README.md new file mode 100755 index 0000000..f827914 --- /dev/null +++ b/screendisplay/Pods/FCUUID/README.md @@ -0,0 +1,113 @@ +FCUUID    +=================== +iOS **UUID** library as alternative to the old good **UDID** and **identifierForVendor**. +This library provides the simplest API to obtain **universally unique identifiers with different levels of [persistence](#persistence)**. + +It's possible to retrieve the **UUIDs created for all devices of the same user**, in this way with a little bit of server-side help **it's possible manage guest accounts across multiple devices easily.** + +##Requirements & dependencies +- iOS >= 5.0 +- ARC enabled +- Key-value storage enabled *(target / Capabilities / iCloud / Key-value storage)* +- Security.framework +- [UICKeyChainStore](https://github.com/kishikawakatsumi/UICKeyChainStore) +- ***(optional)*** - Key-value storage enabled -> Target / Capabilities / iCloud / Key-value storage enabled if you want to **share** `uuidsOfUserDevices` values **across multiple devices using the same iCloud account**. +- ***(optional)*** - KeyChain sharing enabled (entitlements and provisioning profile) if you need to **share** the same `uuidForDevice` / `uuidsOfUserDevices` values **across multiple apps with the same bundle seed**. + +##Installation + +####CocoaPods: +`pod 'FCUUID'` + +####Manual install: +- Copy `FCUUID` folder to your project. +- Manual install [UICKeyChainStore](https://github.com/kishikawakatsumi/UICKeyChainStore) + +###Optional setup: +It is recommended to do the setup in `applicationDidFinishLaunchingWithOptions` method. +- Add an observer to the `FCUUIDsOfUserDevicesDidChangeNotification` to be notified about uuids of user devices changes. +- If necessary, **migrate from a previously used UUID or UDID** using one of the migrations methods listed in the API section (it's recommended to do migration before calling `uuidForDevice` or `uuidsForUserDevices` methods). Keep in mind that **migration works only if the existing value is a valid uuid and `uuidForDevice` has not been created yet**. +- Call any class method to enforce iCloud sync. + +##API +**Get different UUIDs** (each one with its own persistency level) + +```objective-c +//changes each time (no persistent) ++(NSString *)uuid; + +//changes each time (no persistent), but allows to keep in memory more temporary uuids ++(NSString *)uuidForKey:(id<NSCopying>)key; + +//changes each time the app gets launched (persistent to session) ++(NSString *)uuidForSession; + +//changes each time the app gets installed (persistent to installation) ++(NSString *)uuidForInstallation; + +//changes each time all the apps of the same vendor are uninstalled (this works exactly as identifierForVendor) ++(NSString *)uuidForVendor; + +//changes only on system reset, this is the best replacement to the good old udid (persistent to device) ++(NSString *)uuidForDevice; +//or +#import "UIDevice+FCUUID.h" +[[UIDevice currentDevice] uuid]; +``` +**Get the list of UUIDs of user devices** +```objective-c +//returns the list of all uuidForDevice of the same user, in this way it's possible manage guest accounts across multiple devices easily ++(NSArray *)uuidsOfUserDevices; +``` +**Migrate from a previously stored UUID / UDID** +Before migrating an existing value it's recommended to **debug it** by simply passing `commitMigration:NO` and logging the returned value. +When you will be ready for committing the migration, use `commitMigration:YES`. +After the migration, any future call to `uuidForDevice` will return the migrated value. +```objective-c +//these methods search for an existing UUID / UDID stored in the KeyChain or in UserDefaults for the given key / service / access-group ++(NSString *)uuidForDeviceMigratingValue:(NSString *)value commitMigration:(BOOL)commitMigration; ++(NSString *)uuidForDeviceMigratingValueForKey:(NSString *)key commitMigration:(BOOL)commitMigration; ++(NSString *)uuidForDeviceMigratingValueForKey:(NSString *)key service:(NSString *)service commitMigration:(BOOL)commitMigration; ++(NSString *)uuidForDeviceMigratingValueForKey:(NSString *)key service:(NSString *)service accessGroup:(NSString *)accessGroup commitMigration:(BOOL)commitMigration; +``` +**Check if value is a valid UUID** +```objective-c ++(BOOL)uuidValueIsValid:(NSString *)uuidValue; +``` + +##Persistence +- **`���`** *yes* +- `-` *no* +- **`*`** *read notes below* + +| PERSISTS | App memory | App relaunch | Reset Advertising Identifier | App reinstall | System reboot | System upgrade | System reset | +|-----------------------|:----------:|:------------:|:----------------------------:|:-------------:|:-------------:|:--------------:|:------------:| +| `uuid` | - | - | - | - | - | - | - | +| `uuidForKey:key` | **���** | - | - | - | - | - | - | +| `uuidForSession` | **���** | - | - | - | - | - | - | +| `uuidForInstallation` | **���** | **���** | **���** | - | **���** | - | - | +| `uuidForVendor` | **���** | **���** | - | **���*** | **���** | - | - | +| `uuidForDevice` | **���** | **���** | **���** | **���** | **���** | **���** | **���**** | + +**(persists only if the user have not uninstalled all apps of the same vendor)* + +***(persists only if the user restores a device backup which includes also keychain's data)* + +##FAQ +####How can I share the device uuid between two apps? +You must have **KeyChain sharing enabled** (entitlements and provisioning profile) and your apps identifiers must have the same bundle seed. + +####What happens if I call `uuidForDevice` on 2 different devices using same iCloud account and iCloud Keychain? +You will obtain 2 **different uuid(s)**, and if you call `uuidsOfUserDevices` you will obtain a list containing the uuids of both devices. + +####When I reboot / upgrade / reset my device system, will device uuid change? +Please check the **persistence** table above. + +##Support development + +[](https://pledgie.com/campaigns/32215) + +[](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=fabio%2ecaccamo%40gmail%2ecom&lc=IT&item_name=Fabio%20Caccamo%20%2d%20Open%20Source%20Projects&item_number=FCUUID¤cy_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted) + +##License +Released under [MIT License](LICENSE). -- Gitblit v1.8.0