Are there other ways to put an Automotive media app onto the car without Google Play (polestar 2 API level 28 issue) - android-automotive

I have built a media app and it works great in the emulator.
As I actually own a Polestar 2 vehicle, I am running the Polestar 2 image (API Level 28 - Android 9)
But when I want to release the app to the play store (even as private test) then the store requires a minimum version of API Level 29.
I appreciate Polestar will need to update their image to Android 10 (or maybe even 11 already) before I can release my app through the Play store, but is there any other way to get the app on the car?

I found the answer on the Polestar forum:
Min / Target versions (28 and 29)
Created Closed test track
https://www.polestar-forum.com/threads/android-os-simulator.517/post-22804

Related

How do I set a lower min API level in unity?

I want to publish my own android game in google play and its my first time trying it with unity I have a background publishing a game with android studio.
I created a new version in the google play console, and inserted the App Bundle and all the pics and the info needed. I sent it for google play to check, and after a few days google approved the version. But when I wanted to downloaded the app from my phone it says: "your device is not compatible with that version". I looked a bit on the intenet, and I think that the problem is that the min API level is too high; 19. With that, I haven't find anyone that showed how to lower it.19 is the lowest API level here.
The app targeted SDK level is 30 (android 11), as google play asked.
Can someone help me with that? Or if you have any other idea how to fix this problem, pleas write it down here.
Thank you!
API Level 18 is from July 9, 2012 .... I think after over 9 years you can kind of stop the support ;)
And that is exactly what hapened
From Meet Google Play's target API level requirement
New apps and app updates must target Android 10 (API level 29) or higher
and
Starting in August 2021, new apps will need to:
Target API level 30 (Android 11) or above and adjust for behavioral changes;
and
Starting in November 2021, app updates will be required to target API level 30 or above and adjust for behavioral changes in Android 11.
so you definitely have to target API level 30 except your app already existed and it is only an update. Then it still needs to be at least 29.
The min version can / is recommended to be kept at the lowest that your app supports (depends on your implementations etc). So if your app supports API level 19 you should keep this as the minimum version.
However, the error sounds more like your test device is using some older API level Android and you should probably use a newer one.

testing google IAP button

I finished a game on the unity game engine and I have an in app purchase button, I tried to upload my .abb file to the play store it said that my API needs to be >= 29, I got back to unity and edited my minimum API and uploaded the file for the internal test to test my IAP button. but the problem is my testing device API is 28 !! I tried Android Studio emulator and it did not work since the emulators have x86 the cpu
how can I install the app from the store to test the IAP button??
and why does google forces the API 29+, that will make me lose many of my users!
how some games are still getting published and compatible with lower API? I installed a game that is published on Jan 5, 2021, on my API 28 device and it works
You have mistaken the target API level with the minimum API level.
You can set the minimum API level to as low as you want.
You need to set the target API level to 29 or higher.

Why is my Flutter application apk not compatible with anything thus preventing Amazon Mobile Marketplace submission?

I have a little game application Deal-O-Round in the Google Play Store and I submitted the same APK about 7 years ago (July 6, 2014 https://smile.amazon.com/Csaba-Toth-Deal-O-Round/dp/B00LK8VBLS/) to the Amazon Mobile Marketplace as well. The 2014 version was based on Google PlayN framework which allowed a web-based demo as well besides Android and iOS platforms. A lot of time passed and last year I re-implemented the whole game in Flutter, which also allows the build of a web-based demo besides Android and iOS.
Even more recently I got an email from Amazon with the title "[ACTION REQUIRED] App update required for target API Level compliance" which nudged me to try to refresh the APK in their store again. According to the email the Fire OS 6 releases require minimum API level 25 and Fire OS 7 will require minimum API level 28. That's great news, I refreshed my Flutter project and the Gradle upgrade bumped the min SDK API level to 23. And my current target API level is 29 as seen in my build.gradle. Everything is open source BTW.
android {
compileSdkVersion 29
...
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.dealoround.android"
minSdkVersion 23
targetSdkVersion 29
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
...
I'm not sure if it matters but I have a "Test Item" (SKU12345) In-App item in an Incomplete state under my application developer console, it must have been some fooling around from 2013, but my app doesn't have any in app payment. The Flutter version also doesn't have any advertisement either, the old version had (and I hated some advertisement items).
Here comes the catch:
I understand that with min SDK 23 I'd drop Fire OS 5 support because that would require min SDK 22 (BTW I could revert back to min SDK 16 if needed). But something else is wrong. I suspect that this might not have to do anything with Flutter. I'm signing the APK with V1 and V2 methods. Maybe it's the extra permissions of GET_ACCOUNTS, USE_CREDENTIALS, or WAKE_LOCK? For reference here is the old APK:
Everything is fine in the Google Play store. I'm looking at https://developer.amazon.com/docs/app-submission/supported-filters-on-the-amazon-appstore.html and I don't see indication that I couldn't use GET_ACCOUNTS, USE_CREDENTIALS, or WAKE_LOCK.
I went back to the page I took the screenshot from. On the first ("Amazon Fire Tablets and Phones") and the last ("Non-Amazon Devices") tab all the little question marks show a "Targeted by another APK in the current version." hint. I'll need to research that more because it sounds nonsensical. The "Amazon Fire TV" tab's hints show some minSdkVersion (for very old devices) and also "android.hardware.touchscreen" capability hint. My game needs touch screen, so that's not surprising and the old APK wasn't supporting those either.
Reading more about the Targeted by another APK in the current version. hint I came across https://developer.amazon.com/docs/app-submission/publish-app-upload-apk-files.html#add_multiple_apks
"With the second APK, you can select support for devices not already selected by the first APK.". I'm not sure why the store is not able to serve automatically the more recent APK and why I have to manually toggle things, but well, that's what I'll do.
Starting edit:
Turning off devices for the old APK
Turing off on the other tab for the old APK:
Editing and turning on devices for the newer APK. Maybe this is why there's this weird thing going on, I have to decrease minSdk back from 23 to 22 to have a better coverage:
So the GET_ACCOUTNS or USE_CREDENTIALS is not a problem supposedly (so far). If the above doesn't help to you then also check out https://developer.amazon.com/docs/app-submission/troubleshooting-android-manifest-and-device-targeting.html

Flutter huge app size in iOS compared with React Native original

I've recreated a simple app that was originally made in React Native with 5MB file size on the app store. The app has no images or anything of any particular size, but it does use Admob ads.
After uploading it to the app store the build is showing as 35MB...not sure what the reason is but it when opening the package contents of the build archive it seems that a bunch of dylib files in SwiftSupport/iphoneos are created that are very large. that's the biggest folder in the archive anyway. I think it has to do with the Pods folder created in order to use Admob.
I'm guessing it can never be as small as the React Native original app but surely it should not be seven times the size...is there some way to remove the SwiftSupport files or another way to shrink it?
EDIT: Also in the Runner project folder in the build archive in Frameworks there are loads of Swift dylib files in there too that are large. Really all the space is being taken up by these Swift support dylib files...
Just built the app for Android and it's 8.33MB so quite a difference there, even though both versions of course use Admob.
This isn't really related to Flutter. Every iOS app containing code that wants to support iOS 11 and lower, needs to contain additional flutter libraries.
You can disable this in Xcode by setting "Always Embed Swift Standard Libraries" to false, and raising the deployment target to iOS 12.
Example of my flutter app with respect to different deployment targets. There is no change in build setting but deployment target only. iOS 13 does not include swift libraries with the build.
iOS version -> App build size
10 -> 127.8 MB
11 -> 127.8 MB
12 -> 90.9 MB
13 -> 49.6 MB
I have two sources: first [1] is titled 'Flutter vs Swift' and second [2] 'How to enable swift support for existing project in flutter'. Reading the both we observe flutter and swift do not have to co-exist and observing the latter we can see how it is enabled with a flag when creating the IOS package. I would first check that IOS folder is created without swift reference.
Third link [3] shows that Admob usage can be done in dart only.
About size, I am not sure though if using dart and disabling Swift would 100% make the trick. Flutter vs Swift link [1] has a native Swift app and 'comparison' equal Flutter app and conclusion was the size of flutter app was doubled about that of Swift app. And sizes where around 20 and 50 MB respectively, Flutter being the biggest.
Edit
It shows up the Swift is part of the plugin / module you use and thus cannot be easily just removed. About the size, Flutter app is normally already bigger than app with Swift and now the solution combines the both. Rise in size is as espected.
[1] https://blog.codemagic.io/flutter-vs-swift/
[2] How to enable Swift support for existing project in flutter
[3] https://flutterawesome.com/easily-implement-ads-into-a-flutter-app/

Developing a google play app with HTC Desire

I've been a Java developer for 6 years, but this is my first foray into Android, and it's not going well.
I've set up a simple example app which uses google maps api v2 - it's just a single page: I copied it from one of the many helpful sites on this topic.
I then discovered that I can't run it in an emulator since it uses the google maps api v2, which requires google play. So I bought a device (HTC Desire).
Now the device doesn't show up in the eclipse run configuration. It shows up with ./adb devices just fine.
I thought maybe this was because the device is on Android 2.2, and my app has minimum OS level of 4.2. So I tried to upgrade, but I couldn't work out how. In the software / update section on the phone it just says 'no updates available'. Can this be right?
Ok so assuming I can't upgrade the OS (in which case the phone is now useless), I modified the project so the minSdkVersion is now 8. But now my project won't build!
Errors include 'No resource identifier found for attribute 'showAsAction' in package 'android'' - what does that even mean?
And to cap it all the device is now doing the 'buzzing 7 times instead of booting' thing. I can access some menu called HBOOT, and selecting RECOVERY just reboots the machine, which fails.
So now I've spent £50 and several hours, and I haven't even got as far as hello world - just a bricked phone.
What am I doing wrong? Can Android dev really be this hard?