Starting :
https://developer.apple.com/app-store/pathway/
https://developer.apple.com/storekit/
https://developer.apple.com/design/human-interface-guidelines/in-app-purchase/
Post
Replies
Boosts
Views
Activity
My App is approved and in App Store. I have never changed anything on Subscriptions. Perhaps I shall have and a blank or a dot and resubmit ? Now subscription wasn't approved - rejected due to localisation. Message says :
We have returned your in-app purchase products to you as the required binary was not submitted. When you are ready to submit the binary, please resubmit the in-app purchase products with the binary.
Apparently it also deletes automatically as per this :
for index in indexSet {
let animalToDelete = animals[index]
if navigationContext.selectedAnimal?.persistentModelID == animalToDelete.persistentModelID {
navigationContext.selectedAnimal = nil
}
modelContext.delete(animalToDelete)
}
}
The sample above uses the SwiftData autosave feature, which is enabled by default when creating a ModelContainerusing the modelContainer(for:inMemory:isAutosaveEnabled:isUndoEnabled:onSetup:) modifier. If this feature is disabled, the removeAnimals method needs to explicitly save the change by calling the ModelContext method save(); for example:
do {
for index in indexSet {
let animalToDelete = animals[index]
if navigationContext.selectedAnimal?.persistentModelID == animalToDelete.persistentModelID {
navigationContext.selectedAnimal = nil
}
modelContext.delete(animalToDelete)
}
try modelContext.save()
} catch {
// Handle error.
}
}
https://developer.apple.com/documentation/swiftdata/deleting-persistent-data-from-your-app
I’m referring to the injection of a model container into the environment. We accomplish this by declaring the type as follows:
.modelContainer(for: [Book.self, Author.self])
For instance:
struct Example: App {
@State private var appData = ApplicationData.shared
var body: some Scene {
WindowGroup {
ContentView()
.environment(appData)
.modelContainer(for: [Book.self, Author.self])
}
}
}
I was wondering if we could implement a feature similar to the navigationPath() type-erasing functionality. This allows us to define a heterogeneous set of types, as we can do with:
@State private var path = NavigationPath()
Instead of explicitly declaring:
@State private var path = [Book] ()
Is there a way to build ( if not already a way) into Swift Language a similar capability for environment injection, enabling the injection of a heterogeneous set of types without needing to declare the type explicitly?
Tap, you'd need to make a fresh new Subscription ( replicate ) , then the section to add that one will appear under the Add Binary form. Only the ones that are not in review or not approved but in "Waiting Review" will appear there. And Submit them from the App as one bundle. Do not submit Subscription separately.
I am facing similar issue th the same error. @jabakobob have you resolve this and how? Many thanks
The message seen is the standard response generated by the SubscriptionStoreView when a "StoreKit Purchase" of an "Unknown" error Type when it occurs during the purchase process. This is the default behaviour, which suggests retrying the purchase at a later time. Unfortunately, this is how SubscriptionStoreView is designed to handle such errors.
We believe this shall be sufficient enough for user to be guided to try again later.
As SubscriptionStoreView is the recommended approach for subscription management in iOS apps, we are unable to customise the error handling beyond what is provided by the framework itself. While the products are being loaded correctly, the purchase fails due to an error, and at this stage, the only option available is to retry the purchase or wait for a network resolution.
To offer a smoother experience, we would need to abandon the use of SubscriptionStoreView, but this would not align with standard app guidelines and could lead to a less intuitive experience for users.
We need help with this.
In StoreKit Config File simulate Unknown Purchase Error. Try Purchase. As per design SubscriptionStoreView shows popup saying :
"Unable to Complete Request Something went wrong. Try again."
We thought this is fine as it is explanatory.
App Review Team says this is poor user experience and I need code level help to tackle this .
It has been resolved on my side on Xcode 16.1. The issue was that the subscription has to be in certain status (not In Review) to appear synced. After clearing the subscription group from rejected submissions and having only new ready to submit I was able to perform sandbox and TestFlight tests. The file is synced correctly.
Done under FB15811077.