You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Version: TPInAppReceipt 3.1.0 using SPM
Setup: Testing in sandbox env using IAP configuration file.
Crash: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value: file TPInAppReceipt/InAppReceipt+ASN1Decodable.swift, line 242
while !container.isAtEnd
{
do
{
var attributeContainer = try container.nestedUnkeyedContainer(for: ReceiptAttribute.template) as! ASN1UnkeyedDecodingContainerProtocol
let type: Int32 = try attributeContainer.decode(Int32.self)
let _ = try attributeContainer.skip(template: .universal(ASN1Identifier.Tag.integer)) // Consume
var valueContainer = try attributeContainer.nestedUnkeyedContainer(for: .universal(ASN1Identifier.Tag.octetString)) as! ASN1UnkeyedDecodingContainerProtocol
//let attribute = try container.decode(ReceiptAttribute.self)
switch type
{
case InAppReceiptField.quantity:
quantity = try valueContainer.decode(Int.self)
case InAppReceiptField.productIdentifier:
productIdentifier = try valueContainer.decode(String.self)
case InAppReceiptField.productType:
productType = Type(rawValue: try valueContainer.decode(Int32.self)) ?? .unknown
case InAppReceiptField.transactionIdentifier:
transactionIdentifier = try valueContainer.decode(String.self)
case InAppReceiptField.purchaseDate:
let purchaseDateString = try valueContainer.decode(String.self, template: .universal(ASN1Identifier.Tag.ia5String))
purchaseDate = purchaseDateString.rfc3339date()!
case InAppReceiptField.originalTransactionIdentifier:
originalTransactionIdentifier = try valueContainer.decode(String.self)
case InAppReceiptField.originalPurchaseDate:
let originalPurchaseDateString = try valueContainer.decode(String.self, template: .universal(ASN1Identifier.Tag.ia5String))
originalPurchaseDate = originalPurchaseDateString.rfc3339date()!
case InAppReceiptField.subscriptionExpirationDate:
let str = try valueContainer.decode(String.self, template: .universal(ASN1Identifier.Tag.ia5String))
let subscriptionExpirationDateString = str == "" ? nil : str
subscriptionExpirationDate = subscriptionExpirationDateString?.rfc3339date()
case InAppReceiptField.cancellationDate:
let str = try valueContainer.decode(String.self, template: .universal(ASN1Identifier.Tag.ia5String))
let cancellationDateString = str == "" ? nil : str
cancellationDate = cancellationDateString?.rfc3339date()
case InAppReceiptField.webOrderLineItemID:
webOrderLineItemID = try valueContainer.decode(Int.self)
case InAppReceiptField.subscriptionTrialPeriod:
subscriptionTrialPeriod = (try valueContainer.decode(Int32.self)) != 0
case InAppReceiptField.subscriptionIntroductoryPricePeriod:
subscriptionIntroductoryPricePeriod = (try valueContainer.decode(Int32.self)) != 0
case InAppReceiptField.promotionalOfferIdentifier:
promotionalOfferIdentifier = try valueContainer.decode(String.self)
default:
break
}
}
}
self.originalTransactionIdentifier = originalTransactionIdentifier
self.productIdentifier = productIdentifier
self.transactionIdentifier = transactionIdentifier
self.purchaseDate = purchaseDate
self.originalPurchaseDate = originalPurchaseDate // FATAL ERROR OCCURS HERE
}
This causes application to crash on all subsequent runs after purchasing the first IAP. Fatal error commented with "// FATAL ERROR OCCURS HERE" in the above snippet.
Will be rolling back to 3.0.2 until resolved. 3.0.2 does not exhibit this behavior.
The text was updated successfully, but these errors were encountered:
Version: TPInAppReceipt 3.1.0 using SPM
Setup: Testing in sandbox env using IAP configuration file.
Crash: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value: file TPInAppReceipt/InAppReceipt+ASN1Decodable.swift, line 242
This causes application to crash on all subsequent runs after purchasing the first IAP. Fatal error commented with "// FATAL ERROR OCCURS HERE" in the above snippet.
Will be rolling back to 3.0.2 until resolved. 3.0.2 does not exhibit this behavior.
The text was updated successfully, but these errors were encountered: