I try upload new version of my app and I do it directly from XCode. After succesfull upload I do not see new build online on AppStore connect, but XCode says that upload is done.
As You see, 1.0.52 is created by Xcode but empty. 1.0.38 is my old build when all was ok. Any idea how to fix it? I can manually create iOS build on AppStore Connect and add package from my computer?
AppStore Connect didn't return any error, but now I found email on my developers email account. I missed one value at info.plist, similar problem like there: NSAppleMusicUsageDescription - Missing Info.plist key
But about it I didn't have any information on AppStore Connect, only on email.
Part of email:
Dear Developer,
We identified one or more issues with a recent delivery for your app, "**** ***" (***** ***). Please correct the following issues, then upload again.
ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSAppleMusicUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).
Related
Xcode upload showing success while upload but not showing error message in the app store content page
Note: already requested more information to apple team
Please check your email, iTunes connect page.
App Store team should request resolving ITMS-XXXXX some issue.
It is showing success when uploading binary but after processing in iTunes connect, they request resolving specific issue number ITMS-XXXXXX
for example
Dear Developer,
We identified one or more issues with a recent delivery for your app, "SUPER GREAT APP". Please correct the following issues, then upload again.
ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).
Best regards,
The App Store Team
With the reference of the video, I resolved:
https://developer.apple.com/videos/play/wwdc2016/709/?time=1754
I missed NSCameraUsageDescription field in the info.plist
https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html
I am developing a firefox web extension (Add On) which communicates with my Native Mac Application through "Socket Connection". I got stuck with the requirement to authorise the Client (Socket client from firefox add on) as I am unable to find out a unique identifier for my unpacked firefox add on.
I am trying to map the unique Id in the application side so that I can check whether the add on with same Id is trying to connect to the Socket server which would be restricted in case of unauthorised Identifier.
The identifier that comes along with Origin header in the connection request is Internal UUID of the add on which changes on each installation as per Firefox documentation.
I welcome an answer that could guide me to choose a perfect unique identifier or different approach that could validate the add on.
To have it work in this scenario, you will need to add in the applications key in manifest.json
Once you have finished developing the extension, you can package it and submit it to AMO for review and signing. If the packaged extension you upload does not contain an ID, AMO will generate one for you. It's only at this point that the add-on will be assigned a permanent ID, which will be embedded in the signed packaged extension.
Check out MDN webdocs for the full information on that though. They have full guides on how to use AMO as well.
I've got an application that does user provisioning for Google apps (specialty provisioning).
I got to thinking, instead of going into the developer console for each customer currently using the application that it may make sense to publish the app in the market place.
Is this appropriate to do? Also, there are limits on each api key on how many requests can be done. Would a new api key get generated for each customer installing from the marketplace? Is there anything else I need to be concerned on this?
I didn't fully understand your questions so i'll try to answer the best I can.
Yes, it would be easier for your customers, especially new customers, to find your app in Marketplace. From there they can install it easier.
Not sure what you meant by "instead of going into the developer console for each customer currently using the application". Do you create a new console project for each customer?
Are you using the Provisioning API? This API is being deprecated and it will stop working by April 20, 2015. Instead you should use the Directory API.
What do you mean with "API Key"? Is it Project ID? When users install the app, the app will use the same Project ID.
You should keep in mind that there are quotas for using Google services that will go against that Project ID.
I set up Google Play Games Services through the Google Play Developer Console by following the instructions here.
I went through the troulbeshooting guide here.
If i run my app through eclipse, it can connect fine to Play Games. However now the update is released and if I download it from the Play Store it cannot connect.
I verified that my SHA1 from the android export matches what is in the developer console. I even tried linking a new app with the SHA1 and it says: "This client ID is globally unique and is already in use."
I am now panicking because my game is live and can't connect. Help!
EDIT:
I added my client ID through the Google Play Developer Console, not the Google Developer Console. I removed the Client ID that was in the Google Developer Console.
Edit:
I cannot add a new client in GDC, i get an error about "duplicate fingerprint":
Have you tried deleting the console project related with your play service game installed application ?
Before altering / adding new API clients, make sure that you have checked the following:
IS your play games project published?
Or, are the accounts you are using for testing included on the testers list?
Are you signing your app correctly? If you are using your debug keystore in a released game, the app will not correctly be able to authenticate.
At any rate, deleting clients could fix working apps if you have already published and I'd hate to give you advice that breaks stuff. That said, if you're sure you need to create / recreate your client, move on.
The reason you are encountering the "This client ID is globally unique and is already in use." issue is that there exists a client with the same package name and SHA-1 hash in any Google Developer console project (not necessarily a Google Play Games project, not necessarily the current project, and not necessarily a project for your account if you are working on teams). This is because the combination of package name and SHA-1 hash must be unique for authentication.
At any rate, it's possible that the project still has a client (for Android) created that needs to be removed. This means that you must either remove the "bad" client from the developer console, re-sign your app with a new keystore, or use a different package name.
Option 1 - Removing clients
Although this is the most destructive option, it may be a good approach if you already removed clients from the Play Games Developer console and don't want to change your configuration.
Access your project from https://console.developers.google.com because this will give you a superset of the clients created from the play games console and will have an according project. Select the APIs & Auth -> Credentials section. From here, remove any Android clients you intend to replace.
Return to https://play.google.com/apps/publish and select your games project. You should now be able to add another client.
Option 2 - Create a new keystore
This is best covered in the Android documentation. After changing your keystore, you will be able to add another client using the new keystore signature.
Option 3 - Change the package name
You must update com.yourname.app with something other than com.yourname.app. This means renaming folders in your Android project, changing includes and package namespaces, and updating your project's AndroidManifest.xml.
After changing any of these, you should be able to create a working Google API project and get your app ready.
Have you only one account?
"This client ID is globally unique and is already in use."
Maybe someone is using your sha1... or you with another account
While attempting to upload my apps binary to iTunes Connect, I get errors when I validate my app. The errors are:
- Your app contains non-public API usage.
- Apps are not permitted to access the UDID and must not use the uniqueIdentifier method of UIDevice
I have gone through several similar S.O. questions, such as:
- non-public API usage Warning...preventing validation on upload to App store?
- App rejected, but I don't use UDID
- Binary rejected because of Non-public API usage (google analytic iOSv2)
As far as I know, my app only uses the Flurry API and Google AdMob API. I have updated both of those with no change.
When I used the command grep -Rnis 'uniqueIdentifier' * I get the following:
Binary file BroncoMobile [CURRENT]/BroncoMobile/BroncoMobile.xcodeproj/project.xcworkspace/xcuserdata/oit.xcuserdatad/UserInterfaceState.xcuserstate matches
Binary file Bronco Mobile [CURRENT]/BroncoMobile/libGoogleAdMobAds.a matches
The match with libGoogleAdMobAds.a makes me assume that there is still a problem with the GADMob API, and I'm not sure on how the UserInterfaceState.xcuserstate match could cause problems with validation (or how to fix it if it is the problem).
If there are any more suggestions for how I can find the source of the error in the validation that would be greatly appreciated. If there is any more information I can provide about my app, I would be more than willing to edit my question to include whatever is needed.
I would suggest you to double check to make sure you are using latest version of Google AdMob API. I faced the similar problem in past and fixed it only by using latest Google AdMob SDK.
Also, you may like to check this question.