GameCenter unique achievement ID - xcode

I already have one Live game in AppStore. This game contain around 100 achievements and 10 leaderboards. So my XCode project tuned to use these specific ID's
My GameOne bundle id is: "com.superpuper.GameOne"
So now i want to create iPad version. iPad version uses the same achievements and leaderboards.I dont want to use universal iPad/iPhone binary, i want to compile exactly separate iPad binary. Because price will be different.
So for new iPad version i created new bundle id :
"com.superpuper.GameOneHD"
I opened GameCenter via itunesconnect and began to fill achievements and leaderboards.
In this case i dont want to change achievements or leaderboards ID's because
my "GameOne" and "GameOneHD" already configured for certain ID's, so i want open itunesconnect/gamecenter and copy all achievements and leaderboards from "GameOne" to "GameOneHD" , But i cant do that because and error :
"The Achievement ID you entered has already been used. Enter a unique Achievement ID and try again. [1]"
What should i do ? No way to fill same achievements with different ID's because this will cause a tonns of code-change

I haven't seen this confirmed anywhere, but in my experience achievement and leaderboard IDs must be unique across all of your apps. If you have server-side code that manages achievement IDs, you'll need to tell your server which version of the app it's talking to.
To make it easy, just do something similar to your bundle ID: append a suffix to your IDs for your HD app. In my case, I prepend an underscore for the paid version of all my achievements.

Related

Lost Android Apk Keystore. Creating new App. How do I force users to uninstall the old one

So I've lost the keystore file for my Xamarin App when my machine crashed. After cursing myself for not saving it, I've finally accepted that I need to create new app in playstore. I know I can unpublish an app in play store. What I wanted to know is, how can I tell the user to uninstall the old app and install the new one?
You can not change the old app in any way, so you are limited in what you can do and you can not force the users to do anything...
Personally I would not un-publish the old one at first, but it really depends upon the number of users and the reviews the app has. ;-)
If your old app has a number of good to great reviews and a better than avg. rating, keep it listed until your new app is at least equal. Google Play Store ranking algorithms use rating and reviews (among other things), so do not throw this away until your new app can match the old one...
You can update the old Application description in the Play Store without changing the .apk:
Add additional content to your old description that users surfing in the store should install the new app. Remember the first 167 characters are used in search results and becomes the metacontent so do not waste those characters...
Include a Url link in your old app description to your new app in the store (play.google.com). This link will be clickable in a browser, but not in the Play App on a device
Make sure to label your new app that is a new application as new and improved-style wording will catch the eye of a user in the Play Store
Also for existing users, make sure the your installed new app icon and name are different and standout from old app (you want to visually drive people to your new app once it is on the device)
If someone installs your new old and still has your old app installed, your new app can check via the PackageManager and prompt the user to uninstall it:
var pm = Application.Context.PackageManager;
var apps = pm.GetInstalledPackages(Android.Content.PM.PackageInfoFlags.MatchAll);
foreach (var app in apps)
{
if (app.PackageName == "com.sushihangover.SomeOldApp")
{
// Display dialog to tell user to uninstall old app...
}
}
If you old app has any New News section that you can publish content to, ability to receive a remote notification and display a message to the user, etc... make use of it to notify the user that there is a brand new app available via the Play Store....
Backup those new keys ;-)

How to delete an App ID associated with a Personal Team?

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.

When I select the Pricing & Distribution tab in the Google Play Developer console, it displays 'Loading'

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.

Why would SKStoreProductViewController loadProductWithParameters not call its completionBlock on iOS 8.0.2 for Apple App Testers?

My latest app update got rejected by Apple because their testers indicated that they can't buy songs with my app. In particular, it looks like the SKStoreProductViewController loadProductWithParameters never calls its completionBlock in my code. Everything works fine for me in development.
What am I missing:
the song id should be correct: I asked the testers to check that the country of their device's iTunes Store is the same country as the one I used to get the iTunes song ID from the iTunes API (both "US"), so the ID should work perfectly
I also checked that they were connected to the web before calling the loadProductWithParameters
What else could it be?
It looks like the completion block of [SKStoreProductViewController loadProductWithParameters:completionBlock:] is never called on iOS8 if the music item you're looking for is not available on your country's iTunes Store.
Personally, I would have used the error of the completion handler to communicate that, but I guess never calling you back is another way of saying the same thing.
At least you can work around this by using the iTunes Search API to look for an item that is available in your region or to take different steps when it isn't.

Renaming Android App eliminates it in some Searches in Market

I renamed my app about 6 months ago, and I've been hearing reports every once in a while that some people cannot find my app in the market. Finally, someone I knew had the problem where I could look at it. My old name was a very unique name, my new name is a few common words. So it used to be:
com.company.uniquename : Uniquename
Now it is:
com.company.uniquename : Blee Blah Bloo
If I search the new name on my tablet, my app shows up 2nd behind a totally unrelated app. However if you search "Uniquename" it still shows up (as the only result). However on my friends device, nothing shows up if you search "Blee Blah Bloo". She scanned the QR code linking to my app and could download and run it fine. Do you have any thoughts as to why it wouldn't be showing up on some devices. It is a high maturity app, could that have anything to do with it?
It takes some time for google to re-index your app after you rename it. I expect given a few days, your app will show in related search queries, also taking into account the popularity of your app.

Resources