Can I safely sign an APK for a third party? - xamarin

I'm developing an App for a third party.
The client should receive an APK for him to manually upload to the Google Play Store.
For this, I created a new Keystore, and saved the signed APK to disk. Do I need to do anything else before sending the client the APK?
I'm asking this because for iOS I had to walkthrough the client to create and send me the appropriate certificates and private key for me to sign the .ipa file.
Is it this simple for Android? Or do I need to take additional steps into consideration?
Thank you

Related

Empty build after upload app to Test Flight App Store Connect

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).

Create a new app listing using Google Play Developer API

Using the Google Play Developer API, there seems to be plenty of ways to make edits to an existing app.
https://developers.google.com/android-publisher/api-ref
Looking through the API it seems all the API requests uses "packageName".
e.g.
POST https://www.googleapis.com/androidpublisher/v3/applications/packageName/edits
This indicates that you already need to have an app available, with at least 1 APK already uploaded.
This is fine for editing an existing app. However, how can I create a new app using the API, without an existing listing or APK added?

how to handle the same signature for APP on Google Play Store and other Stores?

I have published an APK on Google Play Store and let the Play Store to sign the application using its internal signing method. Now I want to distribute the app on all APK stores with the same signature.
Which method is the correct way to manage the situation?
Extract the signed APK from Google Play Store. (and how?)
Not using Play Store signature and use my own signature.
You shouldn't use the Play signature on other App stores. If you want to distribute on other app stores you should use your own signature.

Can I use new Parse App API for upload iOS Push Certificates?

I'm wondering if I could use the new parse app api, for update information about ios certificates, more precisely, to upload them.
This is not supported by their Apps API.
Edit: Here is a list of what is supported via the endpoint:
Enabling/Disabling...
...Client Side Class creation
...Client Push
...Revokable sessions
...Revoking a session on password chang

"The Application is incorrectly configured" on published game

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

Resources