インスタンスプロパティ


deviceVerification


取引がデバイスに属しているかどうかを検証するためにあなたが使用するデバイス検証値。


iOS 15.0+ iPadOS 15.0+ macOS 12.0+

tvOS 15.0+ VisionOS 1.0+ WatchOS 8.0+

let deviceVerification: Data




議論


StoreKit が検証済みの取引を返す場合はいつでも、その取引はデバイスに対して有効です。あなた独自の検証を実行するには、以下のようにデバイス検証のハッシュを計算します。


  1. deviceVerificationNonce の小文字 UUID 文字列表現を取得します。

  2. deviceVerificationID の小文字 UUID 文字列表現を付け加えます。

  3. 結合された文字列の ASCII 表現の SHA-384 のハッシュを計算します。

あなたが計算した値を取引の deviceVerification 値と比較します。値が一致する場合、取引はデバイスに対して有効です。それ以外の場合、検証は失敗し、取引はデバイスに対して有効ではありません。以下の例は、取引の検証を示しています。


  1. guard let deviceVerificationUUID = AppStore.deviceVerificationID else {
  2. print("Device Verification ID isn't available.")
  3. return
  4. }
  5. // Assemble the values to hash.
  6. let deviceVerificationIDString = deviceVerificationUUID.uuidString.lowercased()
  7. let nonceString = transaction.deviceVerificationNonce.uuidString.lowercased()
  8. let hashTargetString = nonceString.appending(deviceVerificationIDString)
  9. // Compute the hash.
  10. let hashTargetData = Data(hashTargetString.utf8)
  11. let digest = SHA384.hash(data: hashTargetData)
  12. let digestData = Data(digest)
  13. if digestData == transaction.deviceVerification {
  14. print("Transaction is valid for this device.")
  15. } else {
  16. print("Transaction isn't valid for this device.")
  17. }




以下も見よ


取引の検証


let deviceVerificationNonce: UUID

デバイス検証値を計算するための UUID。


let signedDate: Date

App Store が JWS 取引に署名した日付。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ