Hi there! Many users of my app(Android) complain, that after initial purchasing, pro features work well, but after new run they are gone. On my test phones Nexus 5, Pixel 3a, and Lenovo tablet everything works fine. Also, in my crashalytics i can see a few Purchase Initializations failures, but not so much. Can you give me advice what should i check? Or may be somebody have faced with this problem already?
Can you elaborate as to what you mean by Pro features? What is the specific behavior that your users are describing.
I mean i have some paid features, which enabled on "pro" item purchase. I save state of this item locally, and also, when user connected to internet, on IAP init, i check, that this one is active and then enable/disable pro features.
How do you check? Please show your code. Also please provide the device logs if possible. Without the logs or steps to reproduce, there is unfortunately not much we can do. We do have a new IAP release coming out today, or very soon.
I've sent PM with my sources. BTW, can i remove UnityChannel and UDP folders, if i want use IAP only with Google Play and App Store? Also, could you clarify why we have so many sources of IAP: Package manager, asset store, services window? It's very confusing. Here Code (CSharp): public void OnInitializeFailed(InitializationFailureReason error) { _initStarted = false; Debug.LogWarning("!!! OnInitializeFailed Billing failed to initialize!"); switch (error) { case InitializationFailureReason.AppNotKnown: //if (Debug.isDebugBuild) Debug.LogWarning("Is your App correctly uploaded on the relevant publisher console?"); ToastManager.Show(LocalizationManager.GetTranslation("Messages/Purchase_init_failed") + " AppNotKnown"); MyCrashlytics.Instance.LogNonFatal(new Exception($"Purchaser OnInitializeFailed error"), $"error = AppNotKnown", true); break; case InitializationFailureReason.PurchasingUnavailable: // Ask the user if billing is disabled in device settings. //if (Debug.isDebugBuild) Debug.LogWarning("Billing disabled!"); ToastManager.Show(LocalizationManager.GetTranslation("Messages/Purchase_init_failed") + " PurchasingUnavailable"); MyCrashlytics.Instance.LogNonFatal(new Exception($"Purchaser OnInitializeFailed error"), $"error = PurchasingUnavailable", true); break; case InitializationFailureReason.NoProductsAvailable: // Developer configuration error; check product metadata. //if (Debug.isDebugBuild) Debug.LogWarning("No products available for purchase!"); ToastManager.Show(LocalizationManager.GetTranslation("Messages/Purchase_init_failed") + " NoProductsAvailable"); MyCrashlytics.Instance.LogNonFatal(new Exception($"Purchaser OnInitializeFailed error"), $"error = NoProductsAvailable", true); break; } } i got a lot of "PurchasingUnavailable" errors
Does it work in your testing? We would need specific steps to reproduce, or at least the device logs, in order to start the troubleshooting process.