I've implemented in app purchasing on my app and it works fine. I followed Ray Wenderlich's Tutorial to get it all working. http://www.raywenderlich.com/21081/introduction-to-in-app-purchases-in-ios-6-tutorial
The only problem I have is that I created a product identifier on iTunes connect with a .All name at the end. If a user decides to buy all the apps options. It works, and all the options are unlocked with the code I wrote, but there is one situation I can't seem to get around.
If a user has used the purchase all option, then has to reload the game. As expected all the NSuserdefaults have been wiped and all the in app purchase options now appear locked again. Selecting one of the options brings up the same window the user first saw when they purchased all options previously. It asks them if they would like to buy the one option they selected or buy all. Now, if the user accidentally decides to select the buy individual item and not use the restore or buy all buttons, then because that individual item was not purchased in the first place, the sale goes through for the purchase of the individual item. Even though they purchased the All option originally.
My question is how can I check for the purchase of the all option when the user defaults that were used to persist the purchase have been cleared. Is there a way to set the other iTunes connect products to a purchased state if the user buys the All product? or is there a better way of doing this other than having a separate All product on iTunes connect?
Related
I've setup google parental control on my children phone, they ask for approval to install a game and i approved it, later i changed my mind and uninstall it from there phone, but they went to play store a re-install it, but this time family link didn't ask for my approval, it's just installed it and showed me a notification that it's been installed. What i want is that whenever they install anything, no matter it was once approved or millions times, google play must ask them for my approval each time it's reinstall.
Most probably you approved the app as Always allowed app. To edit app activity:
Open the Family Link app Family Link and then Select your child.
On the "App activity" card, tap Set limits or More.
Next to your desired app, tap Always always allow.
From here you can select an option to:
Always allow always allow.
Set a time limit Set limit.
Set unlimited time Empty hourglass.
Block an app Block.
The Google Family Link app lacks the 'whitelist' feature to allow only a strict set of application to install. Unfortunately, the answer is you cannot prevent the installation of a previously installed application (as a previous answer suggested, you could block said apps).
I experimented and unfortunately disabling and re-enabling Family supervision will still allow previously installed apps to install. Also, the previously installed apps will be available if you get a new device for the child's account. Or at least, this is the functionality circa Fall 2022.
An extreme solution would be to create a new account, but obviously this is a frustrating answer if you are trying to do something like protect an older family member who has established accounts for billing.
This solution outlined below will not work, but I did read it as a proposed solution elsewhere online. I thought I would include it and mention it with this warning.
Open the Play Store app
Select the account icon in the upper right corner
Choose the Manage app & device from the popup menu
Select Manage
Click Installed
Select Not Installed
Select all applications you wish to remove in checkable list
Click the Trash Can icon in the upper right corner
This would disassociate the application from the account in an ideal world; however, it does not and the child account can still reinstall the offending applications. The parent is notified of this installation, but they cannot prevent it.
Had the same issue but rather than doing the "google play delete not installed apps list"-thing which doesnt solve the problem anyway, use this list to search and install the apps you dont want your child to have installed. After that you can manually block these unwanted apps from normal family link app and deinstall them after you've done that. (You can also leave them on the phone, i mean they are blocked anyways, but it should still take memory space so no reason to not deinstall them after)
Now you will see the following if your child tries to reinstall the app from the play store:
picture
it says "your parents blocked this app" (just in german :) )
This "feature" (if you even want to call it that way) is really stupid and this way might be the only one to solve this problem even if a bit time-intensive. Hope Google will work on Family Link. Big potential but soooo many problems.
I have published app on play store, I don't know why the app is showing Pre-Registration, I want to give direct download option to my users. Helping hands will be highly appreciated.
The instructions for pre-registration are here. But I'm not sure how this would have happened to you by accident.
To remove it and publish, see the section "Launch your app or game from pre-registration"
Sign in to your Play Console.
Select an app or game that you made available for pre-registration..
Click Store presence > Pricing & distribution.
In the “Countries” section, click Manage countries.
Next to the countries where you want to launch your app or game, select Available.
Select Submit update.
Important: To make your app available on Google Play in the countries you select, make sure to publish your app or game on the Production track. You can publish on the Production track by selecting your app, and then selecting Release Management > App Releases.
After it’s published to the Production track, your app or game will become available in any country set to “Available” on its Pricing & Distribution page.
On this bug report on Github https://github.com/googlesamples/android-play-billing/issues/2#issuecomment-305380836 we were asked to raise the issue here.
The issue is simple. The user has 2 or more accounts on their phone, let's say xyz#gmail.com and abc#gmail.com. They install an app with the account xyz#gmail.com. They purchase some IAP items. The app updates and now the app is under abc#gmail.com and the user has lost the purchase. This happens a lot when using staged rollouts.
The main issue, as developers we aren't allowed to let the user choose which account to buy with or which account to check for purchases with.
The second issue, the Play Store app on Android ignores the user account selected on the hamburger menu. The only workaround for this is to use the Play Store website as described in this workaround https://github.com/googlesamples/android-play-billing/issues/2#issuecomment-259108286 on the same bug report.
I don't know what the ideal solution is, all I know is that this is a huge hassle for developers leading to a lot of 1-star reviews after each update.
EDIT: As pointed out in a comment, when I refer to multiple accounts I am talking about multiple Google accounts for a single Android User, I am not talking about multiple Android users within the same phone.
Ever since WWDC 2015, developers now have a Personal Team in addition to the other teams they are members of.
My account is part of an organization as well, so when I go to my Accounts in Xcode, I see something like so under Team Names:
Organization, Agent, Agent
User (Personal Team), Free, Free
I accidentally created an app identifier using the "Fix It" button in Xcode using the wrong team (personal team instead of the organization). Now if I attempt to register that App ID for my organization, it complains that it is already in use:
Failed to register bundle identifier. The app identifier "..." cannot be registered to your development team because it is not available. Change your bundle identifier to a unique string to try again.
Normally this can easily be resolved via logging in to https://developer.apple.com, navigating to your App IDs, and then deleting them. However, I can only access App IDs for my organization rather than my Personal Team. Typically if you are a member of multiple teams, it allows you to choose which team to manage. However, the Personal Team never appears as an option.
If I double click my personal team in Xcode, I do indeed see a provisioning profile for the App ID in question. I cannot figure out how to see these provisioning profiles on https://developer.apple.com.
How do I delete an App ID associated with a Personal Team that I no longer need?
Either via:
Logging in to https://developer.apple.com and managing App IDs, provisioning profiles, etc. (for a Personal Team); or
Xcode (if there is no way to do it on the developer portal).
Update: It appears that free accounts have the same problem. If I try to create a new Apple ID and log in to the developer portal, I see a severely striped down version. The top menu just shows Home, Programs & Add-ons, and Your Account. There is no way to access the iOS features such as Provisioning Profiles, App ID, etc. unless I pay the yearly developer fee. But even then, I would likely only see the App IDs for my new organization, not my Personal Team.
There is a way to sort this out. Contact the Apple Developer Program Support and they can help you delete the App ID from your free provisioning profile (you can't do it yourself at the moment). I just did this and I would recommend contacting them by phone since you will need to get past the first-line support to a Senior Advisor in order to fix this. First-line support did not understand what I was talking about.
You can also submit a request via Apple Developer Program Support
https://developer.apple.com/contact/submit/. The support team removed my personal team AppID within 24 hours, very efficient.
I had the same issue and was very frustrating! (been struggling for hours with this). I thought I had done exactly what you did above with the Fix it button and set the App Name to my "Personal Team"!? and I had no way of setting the app name up in iTunes Connect on the correct account (as I was getting the warning message "The App Name you entered has already been used".
One alternative I wasn't aware of is when you create a new App Name in iTunes Connect you need to set the Primary Language.
I was selecting "English" and there is another option for "UK English" which I needed! There are multiple English languages to choose from.
Hope this helps someone out there.
Log in to the iOS developer member center and navigate to "Certificates, Identifiers & Profiles".
Once in there, navigate into the App IDs section inside of the Identifiers section.
Create a new App ID with the same wildcard bundle ID you are already using but using your Team ID based prefix as its prefix. By doing so, you will be associating your wildcard bundle ID with a new Team ID. It is okay to leave your old App ID associated with your wildcard bundle ID there and not delete it - it will be ignored going forward.
Edit all your provisioning profiles that are associated to the old App ID and update them to use the new App ID.
Go into all of the provisioning profiles that you have changed and regenerate them
Re-archive your app. Then, submit your new archive making sure to sign it with your new Team ID prefix based provisioning profile.
Source: Steps to move an App ID from a non-Team ID prefix to the Team ID
Resume: Just create a wild card with your new Team and your App ID created with Personal Team will be ignored.
I'm trying to publish an app that is based on a free app that supports in-app billing and which is already published. Rather than use in-app billing in the new app, I decided to remove it and make it a paid app (the difference between the two apps is that the paid app has some enhancements that I want to get paid for).
So I created a new product in Google Play, different package name, etc. Everything went fine until I selected Pricing & Distribution, set the pricing ($0.99) and the distribution. When I tried to publish, I get the Android mascot with the text "Loading" alongside it and it stays like this. The app never appears in searches, even when it's enclosed in quotes. The original app does come up, but not the new one (the difference between the names is that the new one has the word "Pro" after it). And yes, the package names are different.
One more thing: when I uploaded the APK to the store, I got a warning about the app using in-app billing (which it does not) but there is no billing permission in the manifest. Since it was a warning and I don't do in-app billing, I ignored it and continued with the upload. I don't think this has anything to do with the "Loading" problem because it was happening before I removed in-app billing.
Any idea what's wrong?
Eventually, the problem somehow resolved itself. The app is visible in searches, although the "Loading" message in Pricing and Distribution is still stuck. Very weird.