Изменение бизнес-модели с помощью транзакции приложения — StoreKit 2IOS

Программируем под IOS
Ответить
Anonymous
 Изменение бизнес-модели с помощью транзакции приложения — StoreKit 2

Сообщение Anonymous »

Я пытаюсь изменить свою бизнес-модель в приложении и, следуя рекомендациям документации Apple, ЗДЕСЬ, я создал эту задачу в главном представлении приложения. Кажется, он отлично работает в симуляторе, на физических устройствах и в TestFlight. Однако после выпуска его в производство и загрузки новой версии в App Store оно не работает, и всем пользователям, как новым, так и существующим, предлагается подписаться. В консоли кажется, что транзакции извлекаются правильно, но в рабочей среде я не уверен, как просмотреть консоль или узнать, что она получает.
Вот квитанция из песочницы. Я получил
AppTransaction.shared obtained: {
"applicationVersion" : "1",
"bundleId" : "com.anestesiaIB.Drugs-Infusion-Calc",
"deviceVerification" : "6M0Nnw14nSEOBVTPE\/\/EfnWSwLm7LFSlrpFEwxgH74SBHp5dSzBEm896Uvo42mwr",
"deviceVerificationNonce" : "8a8238c0-0aee-41e6-bfb0-1cfc52b70fb6",
"originalApplicationVersion" : "1.0",
"originalPurchaseDate" : 1375340400000,
"receiptCreationDate" : 1737577840917,
"receiptType" : "Sandbox",
"requestDate" : 1737577840917
}


Это журнал обработки при проверке получения
New business model change: 1.7
Original versionéis components: ["1", "0"]
Major version: 1, Minor version: 0
This user is premium. Original version: 1.0


Это моя задача...
.task {
do {
let shared = try await AppTransaction.shared
if case .verified(let appTransaction) = shared {
let newBusinessModelVersion = (1, 7) // Representado como (major, minor)
let versionComponents = appTransaction.originalAppVersion.split(separator: ".")
if let majorVersion = versionComponents.first.flatMap({ Int($0) }),
let minorVersion = versionComponents.dropFirst().first.flatMap({ Int($0) }) {
if (majorVersion, minorVersion) < newBusinessModelVersion {
self.premiumStatus.isPremium = true
isPremium = true
} else {

let customerInfo = try await Purchases.shared.customerInfo()
self.premiumStatus.isPremium = customerInfo.entitlements["premium"]?.isActive == true
isPremium = self.premiumStatus.isPremium
}
} else {
print("Error: obteining version components")
}
} else {
print("Not verified")
}
} catch {
print("Error processing transaction: \(error.localizedDescription)")
}
}



Подробнее здесь: https://stackoverflow.com/questions/793 ... storekit-2
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»