-
Notifications
You must be signed in to change notification settings - Fork 798
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
retrieveProductsInfo
returns valid or invalid product randomly in sandbox
#154
Comments
I'm also getting invalidProductIDs all the time. |
@bizz84 I'm having Auto-Renewable Subscriptions. I think this issue need to be fix as soon as possible as many users trying to fetch all available subscriptions from iTunesConnect and then display subscription details (Subscription Name and Price) |
@shuhrat10 @tbaranes do you know which was the latest version where this was working for you? I've been testing with the demo app and this works consistently with my sandbox user. |
Also maybe this info is relevant: |
@bizz84 it's working fine on iOS but it's not working on tvOS. I'm using SwiftyStoreKit (0.8.2) tvOS 10.1. |
It never worked fine (since it's working randomly) for me, but it's my first project using that |
@tbaranes It's possible that only my sandbox users will work with the demo app. You could try to substitute your own product identifiers and see if it works with your sandbox users. |
One of my apps is using SwiftyStoreKit v0.6.1 in production and I have verified that all product IDs are valid with that version as the purchase succeeds. I'm going to update my app to the latest version 0.8.3 and submit to the App Store. The only change concerning retrieving products info from v0.6.1 to v0.8.3 is that the |
I don't think their an issue in the library itself, it looks like a bug from IAP itself since the |
Weird thing happened. I commented out alert with "Invalid product ID", just included print and now it works. I tried with external tester and they were able to go through in-app purchase. |
If this is actually a bug, please fill out an apple bug report for this. I have already done so and am waiting for a reply. Im getting invalid id all the time in iOS btw. |
@returnzer0 I'm planning to write a small sample app including only the code in SwiftyStoreKit to retrieve products, test it and submit it to Apple with a radar. |
I am also having the same issue with AutoRenewSubscriptions in TVOS. I get Invalid Product ID Error when requesting list and the same when trying to purchase. |
While trying to fetch product information using my bundle id in your sample app, I find a small difference: you fetched the products after a user action, whereas I'm fetching them in Up to now, I didn't reproduce it, but I will let you know if that issue appear again. |
Has anyone ever got this working on tvOS? I have added a tvOS demo app to SwiftyStoreKit here: https://github.com/bizz84/SwiftyStoreKit/tree/feature/tvOS-demo-app I have configured a test app on my iTunes Connect account with iOS and tvOS versions sharing the same IAPs. These match the bundle ID and IAP ids in the SwiftyStoreKit demo apps, however I can see that this works consistently on iOS with my sandbox users, but always fails on tvOS. @gerasimospy Can anyone test this branch with their own bundle ID and IAPs with the demo app and let me know if you have some luck? Steps
enum RegisteredPurchase: String {
case purchase1
case purchase2
case nonConsumablePurchase
case consumablePurchase
case autoRenewablePurchase
case nonRenewingPurchase
}
class ViewController: UIViewController {
let appBundleId = "com.musevisions.iOS.SwiftyStoreKit" // REPLACE THIS
let purchase1Suffix = RegisteredPurchase.purchase1
let purchase2Suffix = RegisteredPurchase.autoRenewablePurchase
...
} |
@bizz84 I have my own project which is setup exactly the same way and I have the same problem. on iOS everything is working fine. |
The demo app now runs identical code for iOS and tvOS, but one works and the other one doesn't. It could be a configuration issue, but I have registered exactly the same IAPs in iTunes Connect. Next step: file a radar or contact Apple about this. |
Tested this and still no luck :( |
I filed a Technical Support Incident to Apple with a demo app showing the problem: Hopefully they'll shed some light. |
I received a detailed response from Apple Support. Sharing here as I feel it may help. Hello Andrea, In response to your finding, you are correct that the problem is likely not a problem with your code. It is more likely, an issue with the iTunes Store Server. When this issue occurs, my recommendation is that a bug report be submitted for the Apps Ops Engineering QA group to investigate. The Apps Ops Engineering team processes all such bug report - to replicate the issue, then forwards the validated bug reports to the iTunes Store Server engineers to be investigated and resolved. When this issue is experienced by the developers who implement your framework, my first recommendation is that the developer review Tech Note 2413, iAP FAQ - https://developer.apple.com/library/content/technotes/tn2413/_index.html#//apple_ref/doc/uid/DTS40016228-CH1-TROUBLESHOOTING-WHY_ARE_MY_PRODUCT_IDENTIFIERS_BEING_RETURNED_IN_THE_INVALIDPRODUCTIDENTIFIERS_ARRAY_ The standard response which I provide to developers follows - In your case, you can skip the Tech Note and move to the bug report submission. Please send me the bug report so that I can review the console log file which you will submit - to use to get some info to replicate the problem using the curl command-line tool. You’ve reported that the In-App Purchase identifiers are failing the validation process when called using the SKProductsRequest method. There are 2 cases where this problem occurs.
If none of the above issues apply, then this is a bug report issue to be investigated by iTunes Production Support. DTS does not investigate these issues. Submitting a Bug Report to iTunes Production Support QA There are 2 parts to submitting a bug report in the case that the In-App Purchase identifiers fail to validate. The first thing is to collect the evidence on the form of a console log. To capture the console log, you will need to install the StoreKit profile first, so that the commands issued by iOS for the StoreKit API’s can be captured. THE FOLLOWING SECTION IS NEW THE FOLLOWING SECTION IS NOW OMITTED INSTALL THE PROFILE
You can also install the profile via email. To do so, follow these instructions.
CAPTURE THE DEVICE CONSOLE LOG
To capture a log with Xcode,
To make sure that the console log has the correct information, please peruse the log file and search for the string “fetchSoftwareAddOns”. If this string is present, then proceed to filing the bug report. If the string is not present, the profile was not installed or the SKProductsRequest was not issued by the app. To submit a bug report for investigation by iTunesConnect, please use the Apple Developer Bug Report web page - https://developer.apple.com/bug-reporting/. After logging in, click the New button to author a new bug report, making sure to select the “iTunes Connect” Product from the product picker. By following these instructions, the Bug Report team will be able to expedite the assignment of the bug report to the iTunes Production Support QA team. |
Personally, I don't reproduce that issue anymore, I'm letting it open since there a few more comments, but don't hesitate to close it whenever you think it's ok for you 👍 |
Let me try to test again
… On Apr 13, 2017, at 7:45 AM, Tom Baranes ***@***.***> wrote:
Personally, I don't reproduce that issue anymore, I'm letting it open since there a few more comments, but don't hesitate to close it whenever you think it's ok for you 👍
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
@bizz84 So, I did testing and I noticed I'm getting |
My scenario: non-consumable IAP, everything works in development and sandbox mode. When my app got approved I downloaded from the production app store. Now I am getting My solution: In iTunes Connect, go to your IAP page and uncheck "Cleared for Sale." Save. Re-check "Cleared for Sale." Save. Delete production app from your phone and re-download from App Store. Now it works. |
The same problem. in-app purchase works stable in the sandbox but I have "The purchase identifier was invalid" error in production. Update: Tested application 7 hours later, in-app purchases works without changes from my side. |
Hello, I was in the same situation as you guys, the solution for me was simple : The productID is not "BundleID.iAPProductID" but is simply "ProductID". Assuming that you have the correct app-secret , bundler identifier and iAP correctly configured in both developer portal and xcode , you should be able to test in sandbox environment before submitting to the appStore |
Platform
In app purchase type
Environment
Version
0.8.2
Related issues
N/A
Report
Issue summary
Not sure if that's a real bug or just due to the sandbox environment: when fetching products from StoreKit using
SwiftyStoreKit.retrieveProductsInfo
, I'm randomly getting a valid or invalid product. Is that expected?which is called directly in
didFinishLaunchingWithOptions
What did you expect to happen
Always getting a valid product.
What happened instead
Valid or invalid.. depending of a mysterious mind!
The text was updated successfully, but these errors were encountered: