Build APK 64 Bit Target SDK 28 - kivy

I am trying to upload my apk on Google Play Console, however, I am facing the following two issues.
Your app currently targets API level 27 and must target at least API level 28 to ensure it is built on the latest APIs optimized for security and performance.
Native platforms - armeabi-v7a
For the Issue 1: I believe that I need to use android.sdk = 28 in the buildozer.spec, hence I changed it. On running the buildozer android release it says the following
# WARNING: Config token app android.sdk is deprecated and ignored, but you set value 28
For the Issue 2: I have changed android.api = 28 and android.arch = arm64-v8a. but when I build and upload the APK on Google Play Console, it says
Native platforms : armeabi-v7a
Please assist me Guys!

Related

ionic Cordova platform add iOS fails

I'm trying to run the command
ionic cordova platform add ios#6.2.0
everything is updated, my versions are:
ionic - 6.17.1
npm - 7.21.1
node - 16.9.1
pod - 1.11.2
I have the last version of Xcode (13) just released 2 days ago. When running that command I get:
--save flag or autosave detected
Saving ios#~6.2.0 into config.xml file ...
Update IOS build setting SWIFT_OBJC_BRIDGING_HEADER to: "$(PROJECT_DIR)/$(PROJECT_NAME)/Bridging-Header.h" for build configuration Debug
Update IOS build setting SWIFT_OBJC_BRIDGING_HEADER to: "$(PROJECT_DIR)/$(PROJECT_NAME)/Bridging-Header.h" for build configuration Release
Update IOS build setting ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES to: YES for build configuration Debug
Use Swift language version 5
Update IOS build setting SWIFT_OPTIMIZATION_LEVEL to: -Onone for build configuration Debug
Update IOS build setting ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES to: YES for build configuration Release
Use Swift language version 5
[ERROR] An error occurred while running subprocess cordova.
cordova platform add ios#6.2.0 exited with exit code 1.
After reading every post I found, I included on my config.xml:
<preference name="UseSwiftLanguageVersion" value="5" />
Thinking I might had a non-supported Xcode version, I downgraded Xcode to v12.5.1, selected it on Xcode -> Preferences -> Locations, then restarted all terminals and processes, restarted the Mac, but still not working.
I tried to update CocoaPods with the commands:
pod install
pod setup
And still nothing was working so I decided to run the command
ionic cordova prepare ios
to see if I could go on anyway but got this error:
[error] Error: Cannot find module '#ionic/angular-toolkit/package.json'
Require stack:
- /usr/local/lib/node_modules/#angular/cli/node_modules/#angular-devkit/architect/node/node-modules-architect-host.js
- /usr/local/lib/node_modules/#angular/cli/node_modules/#angular-devkit/architect/node/index.js
- /usr/local/lib/node_modules/#angular/cli/models/architect-command.js
- /usr/local/lib/node_modules/#angular/cli/commands/run-impl.js
- /usr/local/lib/node_modules/#angular/cli/node_modules/#angular-devkit/schematics/tools/export-ref.js
- /usr/local/lib/node_modules/#angular/cli/node_modules/#angular-devkit/schematics/tools/index.js
- /usr/local/lib/node_modules/#angular/cli/utilities/json-schema.js
- /usr/local/lib/node_modules/#angular/cli/models/command-runner.js
- /usr/local/lib/node_modules/#angular/cli/lib/cli/index.js
- /usr/local/lib/node_modules/#angular/cli/lib/init.js
- /usr/local/lib/node_modules/#angular/cli/bin/ng
And yes, if you are wondering every time I updated or ran a command I did also deleted the platforms, plugins, node_modules and www folder, but anything is happening.
Coincidentally today I had to migrate a Cordova project to iOS 6.2 due to Apple's usual annoyance in updating hours before and leaving everything obsolete (the best in backward compatibility, it should be noted).
I'll share with you the short commands that work with cordova without digging too much:
0-) sudo npm install cordova-ios#latest
1-) sudo ionic cordova platform remove ios
2-) sudo ionic cordova platform add ios#latest // don't specify version, the last one already assumes this
3-) sudo chmod -R 777 platforms/ios // usually, I must enable read and write permissions, things on my computer but with that I ensure full permission.
4-) sudo ionic cordova build ios
5-) You open XCode again in the generated project and voila, you can compile it.
If step #1 fails you, run it 2 times (for some reason I always have to run it 2 times to get it done).
Best regards.
Well, at the end, after 15h of work and a lot of searching, it was all fixed by downgrading my Node version from 16.9.1 to 14.17.5.
I didn't know that this new Node version is not supported by Angular jet, but I found out, and you can too by just running the command
ng -v
which says at the end
Warning: The current version of Node (16.9.1) is not supported by Angular.
to downgrade your Node version you can follow the instructions on this post:
How to downgrade Node version
You can also see all the Node versions available here:
https://nodejs.org/es/about/releases/
Since Angular is a step behind of Node I suggest to download an Active version and not a current one.

Kivy buildozer 64 bit apk not being accepted by google play store

Google Play Store was not accepting my 32 bit apk. So I followed the instruction from this link https://github.com/kivy/python-for-android/issues/1519 to change the android.arch to arm64-v8a in the buildozer spec file.
I did exactly that. Here are all the steps that I took:
1. Change android.arch from armeabi-v7a to arm64-v8a. Save the spec file.
2. Run sudo buildozer android release . Get an unsigned apk file.
3. Run zipalign -v -p 4 kindact-0.1-release-unsigned.apk kindact-0.1-release-unsigned-aligned.apk to get an aligned apk.
4. Copy that file along with the key file into a folder contained apksigner.
5. Run sudo ./apksigner sign --ks my-release-key.jks --out kindact-release.apk kindact-0.1-release-unsigned-aligned.apk to get a signed apk.
6. Upload that file to the App Releases in Google Play Store.
I get the same error "This release is not compliant with the Google Play 64-bit requirement.The following APKs or App Bundles are available to 64-bit devices, but they only have 32-bit native code: 7212." as in the 32 bit version, before editing the buildozer spec file.
On the same Google Play Store page, I click on the dropdown of the apk and the Native platforms is still showing armeabi-v7a.
I try uploading 1 32 bit apk and 1 64 bit apk as suggested here Kivy and Google Play 64-bit but still get the same error.
What did I do wrong? Please help.

build failed when push notification plug in added to project on mac

I am using PhoneGap to build applications.
Application runs properly on emulator but when push notification plug in is added to project it gives build errors.
I searched this issue...initially it was found to be a common issue to many people...tried all solutions...but still the same build errors.
here is the plug in
sudo cordova plugin add phonegap-plugin-push
one of the solution said try out with 1.2.3 version of push notification i.e
sudo cordova plugin add phonegap-plugin-push#1.2.3
There were no errors using this version but then it is older version want a solution with the latest version.
The latest is working on windows machine but not on MAC.
Here is the detailed error when used latest version
ANDROID_HOME=/Users/bunty/Library/android-sdk-macosx
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'android'.
> Could not resolve all dependencies for configuration ':_debugCompile'.
> Could not find any version that matches com.android.support:support-v13:23+.
Searched in the following locations:
https://repo1.maven.org/maven2/com/android/support/support-v13/maven-metadata.xml
https://repo1.maven.org/maven2/com/android/support/support-v13/
Required by:
:android:unspecified
> Could not find any version that matches com.google.android.gms:play-services-gcm:+.
Searched in the following locations:
https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/maven-metadata.xml
https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/
Required by:
:android:unspecified
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 37.885 secs
Error: Error code 1 for command: /Users/bunty/Documents/ParsianaApp/platforms/android/gradlew with args: cdvBuildDebug,-b,/Users/bunty/Documents/ParsianaApp/platforms/android/build.gradle,-PcdvBuildArch=arm,-Dorg.gradle.daemon=true,-Pandroid.useDeprecatedNdk=true
Can anyone help on this ?
If you read the install guide
You will need to ensure that you have installed the following items
through the Android SDK Manager:
Android Support Library version 23 or greater
Android Support Repository version 20 or greater
Google Play Services version 27 or greater
Google Repository version 22 or greater
You can do it manually or using this command:
android update sdk --no-ui --filter "extra"
Dont use sudo for installing. It causes permissions issues.

Realm manual install issues on iOS

I followed the instructions on the doc page to get the manual install working. And it is working, however, when I tried to push to my repo, the repo rejected my push. I checked why this might be, and I found that there was a large file, 46 MB or so. This file is located at ios/Realm.framework/Realm
What is this file? And why is it 45,6 MB?
Why is the OSX Realm.framework only 2,8 MB while the iOS Realm.framework is 45 MB + ?
From the FAQ section of Realm docs:
How big is the Realm library?
Once your app is built for release, Realm should only add around 1MB to its size. The releases we distribute are significantly larger (~37MB for iOS & ~2.4MB for OSX) because they include support for more architectures (ARM, ARM64, x86 for the simulator) and some debug symbols, which will all be stripped by Xcode automatically when you build your app.
If you'd like to avoid bundling binary dependencies in your git repo, you should build Realm and other dependencies from source either manually (drag Realm.xcodeproj in your project) or with a tool like CocoaPods or Carthage, all of which are covered in the Installation section of Realm's docs.

IBM Worklight 6.0 - Segmentation fault error

I am trying to run the sample code shared by IBM for FIPS on device.
While running I am getting the below error.
Any idea why?
/Users/ctsmacminibtp5ne35/Library/Developer/Xcode/DerivedData/JSONStoreEncryptingSensitiveDataWithFIPSProject-1SampleIphone-cqxfkcnledkobshgrkgsluzvxofu/Build/Intermediates/JSONStoreEncryptingSensitiveDataWithFIPSProject-1SampleIphone.build/Debug-iphoneos/JSONStoreEncryptingSensitiveDataWithFIPSProject-1SampleIphone.build/Script-427B829D1393724500F223DC.sh:
line 8:
/Users/ctsmacminibtp5ne35/Desktop/NativeCode/JSONStoreEncryptingSensitiveDataWithFIPSProject-1/apps/Sample/iphone/native/:
is a directory DONE with script: (exitStatus=126)\n\n
/Users/ctsmacminibtp5ne35/Library/Developer/Xcode/DerivedData/JSONStoreEncryptingSensitiveDataWithFIPSProject-1SampleIphone-cqxfkcnledkobshgrkgsluzvxofu/Build/Intermediates/JSONStoreEncryptingSensitiveDataWithFIPSProject-1SampleIphone.build/Debug-iphoneos/JSONStoreEncryptingSensitiveDataWithFIPSProject-1SampleIphone.build/Script-427B829D1393724500F223DC.sh:
line 12: 1604 Segmentation fault: 11 /usr/local/bin/incore_macho
-exe "$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH" Command /bin/sh failed with exit code 126
Reference Code Link: http://public.dhe.ibm.com/software/mobile-solutions/worklight/docs/v600/JSONStoreEncryptingSensitiveDataWithFIPSProject.zip
PDF link: http://public.dhe.ibm.com/software/mobile-solutions/worklight/docs/v600/05_12_JSONStore_-_Encrypting_sensitive_data_with_FIPS.pdf
It appears that the incore_macho that comes bundled with the sample was built using an OSX version later than 10.7.5 (though I can't confirm what version it was built with at this time). You can build your own incore_macho file by doing the following steps:
1. Go to the following site:
http://openssl.com/fips/2.0/platforms/ios/
and download the following files:
ios-incore-2.0.1.tar.gz
setenv-reset.sh
setenv-darwin-i386.sh
2. Untar ios-incore-2.0.1.tar.gz. It will produce the following file structure:
openssl-fips-2.0.1/iOS
3. cd into the iOS folder
4. Run the two downloaded scripts:
. ./setenv-reset.sh
. ./setenv-darwin-i386.sh
5. Run 'make' inside the iOS file.
This will produce a new incore_macho file built for your system. You can confirm the utility works by running ./incore_macho.
For more in depth instructions, see page 124 of the FIPS User Guide

Resources