Код: Выделить всё
@available(iOS 17.2, *)
func testPurchase_PromotionalOffer() async throws {
// Arrange
testSession.clearTransactions()
testSession.resetToDefaultState()
let productID = "subscription_1"
let option = Product.PurchaseOption.promotionalOffer(id: "promotional_1")
// Act
try await testSession.buyProduct(identifier: productID, options: [option])
// Assert
let currentTransactions = await StorekitOfferingsManager.fetchCurrentTransactions()
let wasTransactionFound = currentTransactions.contains { transaction in
return transaction.productID == productID && (transaction.offerType == .promotional || transaction.offer?.type == .promotional)
}
XCTAssert(wasTransactionFound, "Promotional Offer transaction not found")
}
static func fetchCurrentTransactions() async -> Set {
var activeTransactions: Set = []
for await entitlement in Transaction.currentEntitlements {
if let transaction = try? entitlement.payloadValue {
activeTransactions.insert(transaction)
}
}
return activeTransactions
}
< /code>
Тем не менее, эта функция тестирования не сбои, всегда. < /p>
Какой правильный способ их проверить? >
[*] product.purchaseoption.promotionaloffer(id:)
product.purchaseOption.codeoffer(ReferenceName P> Нужно ли слушать обновления с Winback, это должно быть BuickIntents.Intents, но я не могу получить эту работу. src = "https://i.sstatic.net/63cgqbmk.png"/>
Подробнее здесь: https://stackoverflow.com/questions/794 ... ot-working