Compliance Info and Release notes are not updated in App Store - xamarin.forms

I am trying to submit app using appcenter but I am getting below error :
Oops! Compliance Info and Release notes are not updated in App Store. Alternatively, you can set 'ITSAppUsesNonExemptEncryption' flag in info.plist and redistribute
I have also re-tried adding below key, and I am still getting same error
<key>ITSAppUsesNonExemptEncryption</key>
<false/>

Related

Firebase Authentication: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null)

I'm trying to set up Google Authentication with Firebase in a Flutter app.
I'm getting this error on Android:
PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null)
It occurs at line:
GoogleSignInAccount? user = await googleSignIn.signIn();
I have tried:
Adding SHA-1 and SHA-256 keys for both release and debug. I am manually doing the key signing for release, so its not a problem with the Android Studio versioning, but I have checked to ensure the keys are accurate which they are.
Adding a support email to Firebase
Adding the line "apply plugin: 'com.google.gms.google-services''" to my app\build.gradle.
Checking that I have added the correct dependencies using BOM to my app\build.gradle.
Adding the "classpath 'com.google.gms:google-services:4.3.10'" dependency to my android\build.gradle.
Checking that the AndroidManifest.xml and build.gradle have the same class name as my flutter project.
Checking that the google-services.json file is correct.
Running "flutter clean" many times.
Checking that Google Authentication is enabled.
It works on iOS so it's most likely not a code issue. It works on neither debug or release. Reading from Firestore is working fine, so the google-services.json shouldn't be the issue. I had a similar project with OAuth Consent set up that didn't fix the issue (and the google authentication never started working), so I haven't done it here because it is time consuming.
I have checked so many StackOverflow questions and none of the solutions work. Any suggestions?
I figured it out. I had changed the package name from what I was using in Firebase. I had it changed in google-services.json. But I had to create custom OAuth keys using my new package name for each key I needed to work.

Flutter: (24658): PlatformException(network_error, com.google.android.gms.common.api.ApiException: 7: , null, null)

Short Summary:
This app works on a physical android phone. However, when we try to make it work on the emulator, Google Sign In does not work. Please see the details below:
Details:
We have created a Flutter app to share information to our internal team.
Pre Google Play Store Update: At the start, we connected Firebase to the app. Added the debug SHA 1 key to Firebase. Google Sign-In works as expected in both the emulator and phone.
Post Google Play Store release:
a. List item
a. We deleted the debug SHA1 from Firebase and changed the SHA1 key to the key which Google
Play store gives us.
b. Downloaded the new google-services.json from Firebase and added it to our androip/app folder. The Google Sign in Works on the Phone but does not work via the Emulator. We get the following error:
I/flutter (24658): PlatformException(network_error,com.google.android.gms.common.api.ApiException: 7: , null, null)
We re-added the Debug SHA1, and Debug SHA256 keys to Firebase.
Still, Google Sign in does not work on the Emulator. But works properly in the Phone.
Checked about 7 previous StackOverflow response, but most responses are for PlatformException(sign_in_failed...) or other reasons, but not for PlatformException(network_error...) .
examples of solutions tried:
Google sign in failed com.google.android.gms.common.api.ApiException: 10:
Generate SHA-1 for Flutter/React-Native/Android-Native app
Internet permissions is enabled in the AndroidManifest.xml
Please let us know if any code is to be shared to analyse the issue better and we will share it.
Thank you in advance.
You are probably now building a release version to install on the emulator in Android Studio, but you don't have the release sha-1 shared with Firebase. Add all three sha-1 to Firebase: Debug and Release sha-1 from Android Studio, and sha-1 from the Play Store. Then download and install the new google-services.json from Firebase and add it to your android/app folder. Then clean and rebuild your app. All versions of your app should then work with Firebase and Google sign in.
Please verify the date and time. Sometimes wrong date & time are set on emulators.
Sometime This kind of error because of network permission not inserted in AndroidManifest.xml file
Put below line in AndroidManifest.xml file
<uses-permission android:name="android.permission.INTERNET" />
Also check working internet connection of mobile data or wifi.

Your Android App Bundle is signed with the wrong key. Ensure that your app bundle is signed with the correct signing key error

I push my app first release the google play console through me error on uploading time, I don't why I'm getting this error, I try to r&d but no successful result please help me to push the app on play storeenter image description here
Clean the project and rebuild it, Android Studio caches the previous location of the app Key and creates issues, it is a major bug and it happened with me too
OR
Assuming this is the first time you are uploading the app, and not posting an update
Delete the app release draft completely and start over again

Image picker view not crashing not even asking for user permission, Why and How?

I am working on one side project, it has image view where a user can click and select an image from the photo library. I am using UIImagePickerController.
My question is I haven't added user Permission on plist nor anywhere else. and as far I know app crashed if you don't add permission, Plus when the app opens for the first time the dialog appears asking for permission but in my case, it's not asking.
I like to know how this can be possible or does Apple have changed something in new Xcode or OS?
I am using Version 9.2 (9C40b) and tried running the code on iPhone 6(real device iOS 11.2.6,) and in different simulator same result, I deleted the app and run it again, same no dialog.
And if Apple has changed something in iOS 11, Should we add or not the permission? whats the best way to a developer we don't want to ask, and also don't want the app to be crashed.
The answer is YES you have to provide the description
It is mandatory to add usage description(from iOS 11) of permissions you are going to use.
Apple states that
Your app is responsible for all usage of privacy-sensitive data, including access to this data by all third-party libraries used in your app. If your app attempts to access privacy-sensitive data without a usage description, your app will exit.
You will see this error in console log if permission description is not provided in Info.plist
This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.
If you try to submit the app without description for release Apple will reject it with this message
Missing Info.plist key - This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSSpeechRecognitionUsageDescription key with a string value explaining to the user how the app uses this data.
Summary:
If you have not provided usage description and uploaded the app earlier then your app will crash without asking for permission
If you have not provided usage description and tried to submit recently then apple will reject it.
Reference:
Privacy Settings in iOS 10

Xcode 4 : Re-signing the xcode archive for release

My client wants to submit the project by himself so he asked me to get the xcode xcarchive of the project and send him to sign it and upload it.
He gave me his development certificate, I installed it and sign the target with its provision profile.
The build configuration that I'm using for signing is a copy of "Release".
Now when he tries to resign the archive and submit it, iTunes throw an error Invalid Binary and the culprit is the Signature
Its says :
Invalid Signature - Make sure you have signed your application with a
distribution certificate, not an ad hoc certificate or a development
certificate. Verify that the code signing settings in Xcode are
correct at the target level (which override any values at the project
level). Additionally, make sure the bundle you are uploading was built
using a Release target in Xcode, not a Simulator target. If you are
certain your code signing settings are correct, choose "Clean All" in
Xcode, delete the "build" directory in the Finder, and rebuild your
release target. Once you have corrected these issues, go to the app's
version details page (found in the Manage Your Applications module of
iTunes Connect) and click Ready to Submit Binary. Proceed through the
submission process until the app's status is Waiting for Upload. You
can then use Application Loader to upload the corrected binary.
Do I need the private key used by my client?
Can someone please point me to the right direction? Can I get any tutorial or video how to resign the archive and submit it to the store.
I think you should ask your client to generate a distribution certificate and then sign your project with it.

Resources