Same package name for iOS and Android apps in Firebase - android

I have added the iOS version of my App in firebase already, now I'm trying to add the Android version of the same App, but the problem is that both iOS and Android have the same package names. While adding Android, I'm getting the error An unexpected error has occurred. [Reason: Requested entity already exists]
Is it compulsory to keep bundle/package names different for both iOS and Android in firebase?

No, both iOS and Android app can have same package name. In fact, I have an Android/iOS apps which are connected to Firebase. For security reasons, I have to hide package name and other confidential information. But as you can see, you just need to click Add app button and create 2 apps one for Android, one for iOS. Best regards.
Note: I added Android app first then added iOS App. If you still have a problem, there might be bug in Firebase side.

Related

Updating flutter application to already published native applications on store

I have already two published applications Android/IOS and I'm looking to create a flutter as a cross-platform to reduce the time of developing the same modules in the two applications.
There is an easy way to not create the flutter from scratch as the applications are working fine for me.
Can I use the same application ID(Android) and the bundle ID (IOS) as I will need to update it and not lose the downloads and application history from the apple store and the google store?
yes, you can do it, make sure you used same package name and key other wise playstore showing error.
I also had an Android App. I created a new app with Flutter using the same ID (package name). At the end I signed it with the same key and I uploaded the App on the Playstore without any problem. Everything is still there. The history and statistics.
I think you have to build your apps from scratch, but about your downloads nu
In your flutter application, navigate to android project's app level build and update the flutter app Application ID with your existing application id. (My be you already know it).
When you will generate the flutter app (android/ios) with the existing keys. Lets say your existing app on google play console is built with xyz.jks. Built your flutter android project with same key and publish on google play store.

Can the bundle-Identifiers of iOS and Android differ on Flutter?

I uploaded a test-release for an App on both iOS & Android on AppStore/GooglePlay using their respective native programs. In other words I reserved their bundle-identifiers string.
Now I'm trying to code the App using Flutter, which is freshly new to me.
Can I create a Flutter project (running on Android Studio) for this app and then change the bundle-identifiers names for each platform separately? and will it work so I could update these apps continuously?
For example,
One App created with a bundle-identifier for iOS like this: 'com.thisApp.thisApp', on itunessconnect (reserved).
Same App with a different bundle-identifier was created for Android on Google Play Console and reserved: 'com.anotherApp.anotherApp'.
None of the apps are LIVE.
Now, if I create a Flutter project I have to choose a package name say 'com.thisApp.thisApp'.
This package name will be created for both platforms by default!
Although I figured out that you could change the package name in Flutter,
as in this post - How to change package name in flutter?
However it's still isn't clear to me, if I DO change it, does the package-name must be identical foreach platform? i.e 'com.anotherApp.anotherApp' OR could the package-name/bundle-id for each platform differ? and even if it works on debug, will it work on release?
So I managed to solve this and answer my own problem.
Yes it is possible.
As already mentioned, before I started to work with Flutter, I used Android Studio and Xcode to upload a "draft version" of the App to the Google Play and App Store respectively in order to "reserve" these AppNamePackages.
Since in one store the same name/package was already taken, I used another name, for example:
com.thisApp.thisApp
and
com.anotherApp.anotherApp
To achieve this in Flutter you need to make sure that:
You change the desired applicationID in the Android-app level build.gradle file and in the AndroidManifest.xml
for this example lets call it com.thisApp.thisApp
You go through equivalent procedure for iOS by changing the desired package name in the info.plist.
for this example - com.anotherApp.anotherApp
By selecting any file under Runner folder (iOS folder in Flutter) you can click "Open iOS module in Xcode" and pick the correct App name and package in the App Project.
And that's it. Flutter didn't make problems considering the two different package names. The App bundles were uploaded based on their previous Google Play and iTunesconnet configurations.

App includes references to Android in the metadata

I have built an app using react-native and I wanted to release my app on the app store so I built an ipa using Xcode and submitted it to the app store.
2 days later apple rejects the app saying
Guideline 2.3.10 - Performance - Accurate Metadata
We noticed that your app or its metadata includes irrelevant third-party platform information.
Specifically, your app includes references to Android in the metadata.
Referencing third-party platforms in your app or its metadata is not permitted on the App Store unless there is specific interactive functionality.
How exactly do I solve this issue? I'm pretty sure that when building a bundle for iOS react native automatically only packages common and ios related code.
The guideline 2.3.10 reads as "Make sure your app is focused on the iOS, Mac, Apple TV or Apple Watch experience, and don’t include names, icons, or imagery of other mobile platforms in your app or metadata, unless there is specific, approved interactive functionality." as mentioned in the below link
https://developer.apple.com/app-store/review/guidelines/#accurate-metadata
you can refer to the below links to solve the issue.
https://support.magplus.com/hc/en-us/articles/203808528-iOS-Troubleshooting-Metadata-Rejected-in-App-Store-Review-Status
But you are right that when building the bundle the react native will only package common and iOS related code. But you can check in the code whether you have added any method names with android specific details. If in case you have android related explanations in comments section (// or /* comments*/), it will be ignored.
The Apple App Store doesn't check your code.
Meta Data means the data which you provide to publish your app on App Store.
Check if you have accidentally put "android" word in that anywhere.
In my case i have added "android" word in app description
They refused my app because I put an image that mentioned available on "Google play "

Can I increment version number of iOS/Android app even users don't install app to update

I create iOS and Android apps as hybrid app.
My apps send HTTP request to server, and then get HTML,CSS,JS etc.
Users don't need to update my apps until I change native side project.
It means that sometimes my apps version don't changes even I provide new functions or fix bugs.
It's wired for user. I should display increment version number when my apps have changes.
I want to increment version number of my apps even users don't install my apps to update.
Is there any good way to achieve it?
I come up with one idea to directly change setting file like Android manifest file.
However, I don't know whether it's good and works....
It is not possible for iOS, you need to submit new version for version number to change for your app
Also not possible for android as well
I don't think it is possible.
AndroidManifest is XML file attached to your APK and could not be changed when it's installed - only by application update (I mean installing new APK with incremented version number).
In iOS situation is the same. Version code is attached in Info.plist file which, like AndroidManifest, is just file attached to your application archive and could not be changed.
I don't think you can dynamically change your version code - because this is what you are trying to do.
For Android that's simply possible, for iOS, because of the Sandbox and Apples protections, not. (If not jailbroken)
You could let the app have a settings/information section where it displays current version, and this version will be loaded from your server as well as the HTML, CSS and JS.

How to deploy an Android app update to Market with different cased package name

Short question
In Mono for Android (MonoDroid) - or Android apps in general - are identical package names with only case variations considered to be equal? E.g. 'Application.Application' = 'Application.Application'. The question refers specifically to equality as considered for the Android market application update mechanism. Not to equality in general.
If NOT then is there another way to change the package name but still have the Android Market consider the application as the same app? We want to insure end-users don't need to install a completely new app, but can use the standard Market update mechanism.
More detailed problem description
Our application was put in the Android Market using a package name containing upper case symbols, e.g. 'Application.Application'. So - in hindsight - we did NOT follow the advised Java package naming conventions. However the original application functioned without any further problems.
We have now extended our Android application with push notifications. During testing a problem surfaced that sending push notifications through the Google C2DM service did not work using the upper case package name. Only after changing the package name to contain no upper case symbols BEFORE the dot (.) did push notifications come through in our test environment. E.g. 'application.Application'. To achieve this we changed the package name in the manifest.xml file and submitted a new request for the differently cased package name via the C2DM sign up form.
We did not foresee this problem. But we would now still like to deploy a new version of our app through the Market but are concerned about being able to use the conventional update mechanism. We don't want to distribute the application as a completely new app.
Can we realise this? And if so, then how?
1. Can we just go with the 'application.Application' package name?
2. Or is there some mechanism to allow a changed package name? We might then further change our package name so it conforms to standards, e.g. 'ext.domain.application'
Note we have NOT deployed our new application. We want to solve this package name issue before deploying server side changes to production (e.g. the push notifications 'provider'), since server-side code also contains the package name for sending the messages.
Further note that the app is build using MonoDroid and uses the C2dm-Sharp library to send and receive push notifications. Perhaps the issue originates there, although it's seems a general problem.
I've done some research, and found two different apps on Google Play, with two package names differ only in case.
check out:
https://play.google.com/store/apps/details?id=Jk.app.app
vs
https://play.google.com/store/apps/details?id=JK.app.app
Conclusion:
Google Play package names are case sensitive - so what you're trying to do is not possible.

Categories

Resources