Post not yet marked as solved
I'm trying to add Non-Consumable Titles to our Apple and I have been getting strange errors. Then I came across this on the Apple Forum
"We’re reaching out to let you know about upcoming changes to in-app purchase content hosting. In Xcode 13.3, we’ve removed the option to upload non-consumable in-app purchase assets for Apple to host. In addition, support for managing these assets in App Store Connect will be removed starting in April 2022. "
They suggest for us to use ODR? Is this for real? We can't use ITMSTransporter to upload new Non-Consumable Titles to our App?
This is the command I been using after I create the itmsp package:
/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter -m upload -f /Users/abc/Desktop/2022-06-10-13-58-27.itmsp -u xyz@abc.com -p ********
But I'm able to create Non-Consumable titles when I log into the https://appstoreconnect.apple.com/
Is Apple really expecting us to change to ODR?
Post not yet marked as solved
We are trying to integrate StoreKit Testing into our unit and UI testing flow on Mac and iOS. The basic idea is bypassing the paywall so that the specific test can do its job without interference.
In our subclass of XCUIApplication, we've overridden the launch method to simulate the purchase of the app's full version:
import XCTest
import StoreKitTest
class OurCustomApp : XCUIApplication
{
private var _storeKitSession : AnyObject? = nil
override func launch()
{
super.launch()
do
{
_storeKitSession = try SKTestSession(configurationFileNamed: "iap_desktop")
(_storeKitSession as! SKTestSession).disableDialogs = true
(_storeKitSession as! SKTestSession).clearTransactions()
try (_storeKitSession as! SKTestSession).buyProduct(productIdentifier: "<our product identifier>")
}
catch
{
XCTFail("Can't setup StoreKit test. \(error)")
}
}
}
However, we faced a weird runtime issue:
UITests-Runner[53387:25779369] Error in XPC connection when checking Xcode Test app: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.storekitagent was invalidated: failed at lookup with error 159 - Sandbox restriction." UserInfo={NSDebugDescription=The connection to service named com.apple.storekitagent was invalidated: failed at lookup with error 159 - Sandbox restriction.}
We use the proper certificate for StoreKit Testing and follow all the steps from Setting Up StoreKit Testing in Xcode. The problem reproduces on all our machines, including Intel-based and M1 Macs.
We'd appreciate any hints or clues that will help us resolve this issue.
Post not yet marked as solved
We want to test auto renewable subscription in the sandbox.
On my personal iPhone is my personal production account.
On my personal iPhone is a sandbox account.
But:
When I want to buy subscription in the sandbox on the watch, then the watch shows the error: "Buying the app is not possible. Login with your iPhone with the Apple Watch App with your Apple-ID."
When I take a look in the watchApp --> General --> AppleId then I see my production account.
QUESTION: How can I use the sandbox Account to test subscription?
Post not yet marked as solved
According to the documentation and WWDC sessions, as long as we create a SKPayment with applicationUsername to be a UUID string. This value should be persistent when the transactions are updated.
However, when we tested it with XCode 14 and iOS 15 device, when we receive the SKPaymentTransaction for the auto renewals. The SKPaymentTransaction.payment.applicationUsername is nil.
Is this expected? Or it's a feature that will come in the future Xcode releases?
Post not yet marked as solved
I've been testing my existing IAPs using the iOS 15 beta.
One of my products has a one-week free trial. I retrieve the introductory price subscription period unit as follows:
product.introductoryPrice?.subscriptionPeriod.unit
In iOS 14, the correct unit of week is returned. In the iOS 15 beta, day is returned instead.
This has led to some of my purchase strings displaying incorrectly on iOS 15.
If I proceed with the purchase, the pop-up confirmation window does correctly show a 1-week free trial on iOS 15.
Any idea what's going on here?
Post not yet marked as solved
Dear All:
A couple of weeks after completing the integration process with SKAN, we are still unable to receive any postbacks. Anyone that managed to successfully solve a similar issue on their side? What helped? Thanks in advance!
Jan
Post not yet marked as solved
So, when trying the judge whether SKAN 4.0 is an improvement over SKAN 3.0 for app-to-app campaign performance measurement, it comes down to the question how new privacy thresholds relate to the old privacy threshold.
In 4.0 there are at least two thresholds:
(a) low-end to medium-end crowd anonymity threshold, and
(b) medium-end to high-end crowd anonymity threshold.
Questions:
(1) The first question is: When the 1st postback (the one after 2 days) contains the fine-grained ConversionValue, does it also contain the 4-digit SourceID, and vice versa? Or do ConversionValue and SourceID have separate privacy thresholds? Or is it even a combination of both? (And the same question goes for coarse ConversionValue and 3-digit SourceID.)
I would imagine the SourceID has a higher privacy threshold than the ConversionValue.
(2) The second question is: Can we imagine the medium-end to high-end crowd anonymity threshold to be in the area where the SKAN 3.0 ConversionValue privacy threshold is? In other words would I get the fine-grained ConversionValue when about as many installs are reached as were necessary to get the ConversionValue in SKAN 3.0 (which was essentially a fine-grained ConversionValue)?
Otherwise it would be quite a step back, right?
Post not yet marked as solved
I'd like to fire an event when a user started a subscription with a trial.
So for testing purposes, I've created a subscription with a trial and then subscribed. And when I check my subscription I see that inGracePeriod is true but inTrialPeriod is not.
What's the difference between a grace period and a trial period?
Post not yet marked as solved
My app us running in debug mode and I want to display rating popup after user finishes payment and then proceeds further.
However If user chooses apple pay then prompt is showing up every time. but if he selects credit/debit card then it doesn't. We are using Braintree service for payments.
There is a common screen after payment on which SKStoreReviewController.requestReview api is called.
This issue sounds strange but still unresolved.
Post not yet marked as solved
Hello,
we are facing an issue, that the Code Redemption Sheet is not continuing correctly.
Sometimes its just disabling the "Redeem" button and nothing happens for a while.
After a while the button gets enabled again and you can press the button again. Sometimes its working then, sometimes not.
Furthermore after the button action works and the payment method was chosen, the same issue can happen again. Its doing nothing for a while and you have to start again.
The app has the target SDK iOS 14 and uses SwiftUI.
We just display the Code Redemption Sheet by using this snippet:
SKPaymentQueue.default().presentCodeRedemptionSheet()
The screenshot show the "stuck" behavior. The button is disabled and nothing is happening for a while.
The code itself is fine and it is working.
Best regards,
Sebastian
Post not yet marked as solved
Hello, what is the best way to view the What's new with SKAdNetwork session on June 8 live?
Post not yet marked as solved
I have used showManageSubscriptions function to show the subscription sheet with subscription options within the application but there is a close button in the sheet in which action is not detected, the button is clickable though.
@available(iOS 15.0.0, *)
func showManageSubscription(_ windowScene: UIWindowScene) async {
do {
try await StoreKit.AppStore.showManageSubscriptions(in: windowScene)
print("Sheet is closed")
} catch {
print("Sheet can not be opened")
}
}
Please check Developer Documentation
I'm switching my business model to freemium and now I need a clean way to keep giving access to all features for my existing userbase.
I know I probably should do something with receipt validation but which receipt do I check and is there a very clean and straightforward way of doing this with StoreKit 2 maybe?
I would have loved to see something like:
AppStore.originalPurchaseDate property in StoreKit 2 but would love to hear some thoughts and input!
Post not yet marked as solved
Hello,
When the in app purchase payment sheet is presented, the ARKit session is interrupted.
Does anyone know if i can change the presentation style of the sheet?
Thank you!
Post not yet marked as solved
We have an app that was supposed to be released with Consumables and Subscriptions, but due to some issues, we have decided to roll with consumables only. The issue is that we submitted the app for review and stated that we won't be going with subscriptions for now, but Apple rejected the app on grounds of not seeing our subscription products. I went over to App Store Connect and I'm failing to remove those products, however, based on research, you can't remove them so what is the way forward, because we've told Apple 3 times now that we're not going to have subscriptions in our app and they shouldn't even review them. To make matters worse, App Store Connect now has an area where you select which products you want to be reviewed and we only selected the consumables, so why reject the app for subscriptions we didn't ask for reviewing. Anyone who has advice on the way forward?
Post not yet marked as solved
I have seen the StoreKit2 and I want to apply to my application, I have already uploaded the ios 15 version but all the documentation is in SwiftUI, there is an example with UIKit?
Post not yet marked as solved
We have a question related to in app purchases and subscriptions. We would like to know if it is possible to explain the following error:
https://developer.apple.com/documentation/storekit/skerror/code/unknown
This error happened 223 times in May alone, and the only message we are getting is "An unknown error occurred", but what are the causes for this issue and how can we fix it?
Is there a list of all possible reasons?
Thanks,
Tawazon Team
Post not yet marked as solved
I have added 2 Subscription for my app. I have "Promotional Offer" discount too for the subscription. But While testing SKProductDiscount shows Discount count 0 and an alert is showing which say "You are not eligible for offer". I have attached
the screenshoot too. Can any one help to resolve this issue.
Thanks
Post not yet marked as solved
I'm currently using a StoreKit configuration file to test auto renewable subscriptions. On my device I am subscribed to subscription with a duration set to weekly. The subscription renewal rate is set to "Monthly Renewal Every 15 Minutes."
This all works fine for awhile. The subscription auto renews. But after a few hours suddenly my app detects that the subscription has expired and the app UI behaves accordingly.
My app does the following:
Looks at the in app purchase receipts and finds the one with the latest expiration date.
If the current date is later than the expiration date of this receipt my app acts like the subscription has expired. I even add a bit of extra time on the expiration date in case an auto renewable transaction gets held up (in the debug environment I add a couple hours).
I don't take any interaction to cancel the subscription in the "Manage StoreKit Transactions" area of Xcode, nor do I do anything programmatically to cancel the subscription. Autorenew just stops working.
I noticed this happens when the in app purchase receipt count is high (currently it is at 1776 in app purchase receipts). So I'm wondering if this is a bug in the StoreKit configuration environment that happens when auto renewing subscriptions causes the in app purchase receipts to grow large and it just quits auto renewing the subscription?
If I navigate to the area in my user interface and resubscribe to the weekly plan it works again for awhile. The issue then will reoccur after a few hours again, forcing me to "resubscribe" to the plan I've never unsubscribed for.
Is StoreKit testing discarding in app purchase receipts when the receipt gets large but instead of discarding the oldest receipt it removes the in app purchase receipt that is not yet expired, thus forcing me to resubscribe?
Anyone else experience this issue with StoreKit testing? Seems like it's an issue with the testing environment but naturally can't be sure.
Post not yet marked as solved
In SKAdNetwork, we need some params to open SKProductViewController to help ad attribution, such as SKStoreProductParameterAdNetworkAttributionSignature, SKStoreProductParameterAdNetworkIdentifier, SKStoreProductParameterAdNetworkNonce, etc.
But in SKOverlay, it seems that we can't use SKAdNetwork.
How to combine SKOverlay with SKAN ?