Storekit 2 Не приносить продукты в песочнице (iOS 18.2, Xcode 16.2, macOS 15.3.1)IOS

Программируем под IOS
Ответить
Anonymous
 Storekit 2 Не приносить продукты в песочнице (iOS 18.2, Xcode 16.2, macOS 15.3.1)

Сообщение Anonymous »

Я изо всех сил пытаюсь заставить Storekit 2 принести продукты в моем приложении Swiftui, используя пользователя песочницы. Я думаю, что я выполнял все необходимые шаги настройки в XCode, App Store Connect и мое физическое испытательное устройство, но Product.Products (для :) всегда возвращает пустой массив. Я был бы признателен за любую информацию! /> • Реализованный минимальный код Storekit 2 для извлечения доступных продуктов (см. Ниже). < /p>
• Использование правильного идентификатора пакета, который соответствует приложению Store Connect. Автомобильная подписка с: идентификатор продукта v1 (соответствует моему коду). Все поля заполнены (ценообразование, локализация и т. Д.). Статус: Готово для просмотра. < /P>
< /li>
[*] Настройка пользователя и настройки тестирования Sandbox < /p>
• Создана учетная запись тестера песочницы. Установлено и запускается приложение непосредственно из XCode.

Проблема: Storekit возвращает нет продуктов
• product.products (для: ["v1"]) не возвращает ни одного продукта.
• нет ошибки. /> • Я подтвердил, что конфигурация Storekit установлена ​​на none в xcode. < /p>
• Не отображаются журналы, связанные с Storekit.//StoreKitManager.swift

import StoreKit
import SwiftUI

@MainActor
class StoreKitManager: ObservableObject {
@Published var products: [Product] = []
@Published var errorMessage: String?

func fetchProducts() async {
do {
let productIDs: Set = ["v1"] // Matches App Store Connect
let fetchedProducts = try await Product.products(for: productIDs)
print(fetchedProducts) // Debug output

DispatchQueue.main.async {
self.products = fetchedProducts
}
} catch {
DispatchQueue.main.async {
self.errorMessage = "Failed to fetch products: \(error.localizedDescription)"
}
}
}
}
< /code>
//ContentView.swift

import SwiftUI

struct ContentView: View {
@StateObject private var storeKitManager = StoreKitManager()

var body: some View {
VStack {
if let errorMessage = storeKitManager.errorMessage {
Text(errorMessage).foregroundColor(.red)
} else if storeKitManager.products.isEmpty {
Text("No products available")
} else {
List(storeKitManager.products, id: \.id) { product in
VStack(alignment: .leading) {
Text(product.displayName).font(.headline)
Text(product.description).font(.subheadline)
Text("\(product.price.formatted(.currency(code: product.priceFormatStyle.currencyCode ?? "USD")))")
.bold()
}
}
}

Button("Fetch Products") {
Task {
await storeKitManager.fetchProducts()
}
}
}
.padding()
.onAppear {
Task {
await storeKitManager.fetchProducts()
}
}
}
}

#Preview {
ContentView()
}
< /code>
Additional Information
• iOS Version: 18.2
• Xcode Version: 16.2
• macOS Version: 15.3.1
• Device: Physical iPhone (not simulator)
• StoreKit Configuration: Set to None
Is there any way to debug why StoreKit isn’t recognizing my subscription?

Подробнее здесь: https://stackoverflow.com/questions/794 ... cos-15-3-1
Ответить

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

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

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

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

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