Hi,
I am in need of a solution that takes data from SwiftData classes and generates a PDF with the given data. Any guidance would be greatly appreciated.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hi,
I'd like to call an Async function upon a state change or onAppear() but I'm not sure how to do so. Below is my code:
.onAppear() {
if !subscribed {
await Subscriptions().checkSubscriptionStatus()
}
}
class Subscriptions {
var subscribed = UserDefaults.standard.bool(forKey: "subscribed")
func checkSubscriptionStatus() async {
if !subscribed {
await loadProducts()
}
}
func loadProducts() async {
for await purchaseIntent in PurchaseIntent.intents {
// Complete the purchase workflow.
await purchaseProduct(purchaseIntent.product)
}
}
func purchaseProduct(_ product: Product) async {
// Complete the purchase workflow.
do {
try await product.purchase()
}
catch {
// Add your error handling here.
}
// Add your remaining purchase workflow here.
}
}
I have a subscription group with two individual subscriptions configured but when trying to load the SubscriptionStoreView I get the error:
"Subscription Unavailable: The subscription is unavailable in the current storefront."
When I try to load the ProductView, it appears to be stuck in a loading screen. I am running the app on a device that is signed into a sandbox account. Any guidance would be greatly appreciated. Thank you.
Hi,
I have the following code, which for some reason is not working as expected. I have an .onAppear and a .task function that isn't running, which I can see isn't running because nothing is printing. Any guidance would be greatly appreciated. Thank you.
struct ContentView: View {
var body: some View {
ZStack {
switch view {
case .view1: View1()
case .view2: View2()
case .view3: View3()
case .view4: View4()
case .view5: View5()
default: SubscriptionStoreView(groupID: "")
}
}
.onAppear() {
view = .view6
print("test 1")
}
.task {
print("test")
await refreshPurchasedProducts()
}
}
func refreshPurchasedProducts() async {
// Iterate through the user's purchased products.
for await verificationResult in Transaction.currentEntitlements {
switch verificationResult {
case .verified(let transaction): print("verified")
case .unverified(let unverifiedTransaction, let verificationError): print("unverified")
default: print("default")
}
}
}
}
Hi,
I have a couple of questions in regards to testing in-app purchases. I tested the subscription on a device but I'm not sure how to reset so I can test again. I didn't see the subscription in device settings or in Debug -> StoreKit -> Manage Subscriptions window. Additionally, I was wondering if there was a way to detect the subscription being made. I implemented this, but I'm not sure if that will work:
.onChange(of: Product.SubscriptionInfo.RenewalState.subscribed) {
if Product.SubscriptionInfo.RenewalState.subscribed == .subscribed {
}
}
The following code segments run when building and running the app, or after going home and re-opening the app, but now when quitting the app and re-opening it again. What code can do that?
init() {
print("test")
}
.onAppear {
print("test)
}
.onChange(of: scenePhase) { _, newValue in
print(newValue)
}
I updated the price of subscriptions within an app in App Store Connect, however the new price does not show within the test app. I would just like to make sure that if the app is released that the subscription price is set to the most recent price. Is there any way to confirm that and is there a way to see the new price in the test app?
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Subscriptions
StoreKit
App Store Connect