bundle external cli with AIR 3.2 for desktop in one package installer - air

My AIR project is 3.2 for Desktop. Is it possible to bundle an external cli program to the published native installer ? my air app needs to call a external cli program to make screenshots, but I don't want the user to have to acquired the cli program separately. I would like to bundle the cli program with my air app as an complete package, so the user do not need instruction to get the required cli program separately.

Related

Not able to install React native cli app over app built previously with expo cli

I have installed a react-native app built with expo cli from playstore, I am migrating to react-native cli. I am not able to install the react-native cli build(signed with the same android key) over the existing expo build. I am getting the following error
App not installed, the package conflicts with an existing package by
same name
any solution will be greatly appreciated
Expo and React-native cli are two different things , as i am too implementing both in single app , after that my app start crashing so you can only use one cli at a moment .
here are the difference and merits -demerits of both .
React Native init:
Merits:
You can add native modules written in Java/Objective-C (probably the only but the strongest one)
Demerits:
Needs Android Studio and X Code to run the projects
You can't develop for iOS without having a mac
Device has to be connected via USB to use it for testing
Fonts need to be imported manually in X Code
If you want to share the app you need to send the whole .apk / .ipa file
Does not provide JS APIs out of the box, e.g. Push-Notifications, Asset Manager, they need to be manually installed and linked with npm for example
Setting up a working project properly (including device configuration) is rather complicated and can take time
Expo:
Merits:
Setting up a project is easy and can be done in minutes
You (and other people) can open the project while you're working on it
Sharing the app is easy (via QR-code or link), you don't have to send the whole .apk or .IPA file
No build necessary to run the app
Integrates some basic libraries in a standard project (Push Notifications, Asset Manager,...)
You can eject it to Expo Kit and integrate native code continuing using some of the Expo features, but not all of them
Expo can build .apk and .ipa files (distribution to stores possible with Expo)
Demerits:
You can't add native modules (probably a game changer for some)
You can't use libraries that use native code in Objective-C/Java
The standard Hello World app is about 25MB big (because of the integrated libraries)
If you want to use: Face Detector, Ar Kit o Payments you need to eject it to Expo Kit
Ejecting it to Expo Kit has a trade-off of features of Expo, e.g. you cannot share via QR code
When ejecting to Expo Kit you are limited to the react native version that is supported by Expo Kit at that point in time
Debugging in Expo Kit (with native modules) is a lot more complicated, since it mixes two languages and different libraries (no official Expo support anymore)
And you can use any one which satisfies your applications requirement.
Hope it will make you understand the difference between these two Clis.

How to fix optimazition error publish in play store

my apk is 1.4MB but error is "This APK results in unused code and resources being sent to users. Your app could be smaller if you used the Android App Bundle. By not optimizing your app for device configurations, your app is larger to download and install on users' devices than it needs to be. Larger apps see lower install success rates and take up storage on users' devices."
how to fix this error
It's only a warning, not an error.
For an app that small I wouldn't worry.
It's not something that's made its way into the Ionic ecosystem yet but I heard that if you open up your project in Android Studio and then do the build through there you can create an app bundle.
I'm not totally sure that its fully tested for Ionic so you might have issues with this, but Android have published a full guide:
https://developer.android.com/guide/app-bundle#get_started
This is what they say:
Download Android Studio 3.2 or higher—it's the easiest way
to add dynamic feature modules and build app bundles.
Add support for Dynamic Delivery
by including a base module, organizing code and resources for configuration
APKs, and, optionally, adding dynamic feature modules.
Build an Android App Bundle using Android Studio.
If you're not using the IDE, you can instead build an app bundle from the
command line.
Test your Android App Bundle by using it to generate APKs that
you deploy to a device.
Enroll into app signing by Google Play.
Otherwise, you can't upload your app bundle to the Play Console.
Publish your app bundle to Google Play.

Expo release channels and project folder

I am using Expo’s managed workflow. My app uses google authentication to sign in. During development I was using the Expo client for android and as per the docs I used 'Expo.Google' to achieve google authentication and it worked as intended.
After developing the app, I built a staging version of my app (standalone app) by typing 'expo build:android -t apk --release-channel staging-v1' in my project directory. After the build was finished, I downloaded and installed the apk on my android phone. Only then I realized that I didn’t change 'Expo.Google' to 'GoogleSignIn' which is required for standalone apps.
I can change that in my project files and then publish it to the staging-v1 channel. I think this would make google authentication work in the standalone app but it would also change my project files and then it won’t work in the Expo client. So, do I need to create and maintain two different project folders which would basically be the same except for the google authentication part? In general, how should I manage the channels and the corresponding project files?

Build an android app on Windows Device

I have an Android app build using Ionic Framework. Now, how to deploy and test that android app on Windows phone (what tools are to be used and steps followed)..
1.Get Windows 8 OS.
2.Download and Install Microsoft Visual Studio Update 4
3.Then From there, you can use the IDE to create Cordova or Ionic Project( provided Ionic Plugins and Project have been Installed), Also you can also use the Command Line Interface to create your project, I'll advice the Command Line Interface as the best OPTIONS.
4.From the means, you can build your and will have the .appx (for WINDOWS STORE APP) that you can sideload to your actual device.
You need to register your windows phone to your windows phone developer account then you will be able to install it in your phone here is link, that show you how to register device.
https://msdn.microsoft.com/en-us/library/windows/apps/dn614128.aspx#prerequisites27
ionic is not supporting windows platform properly. i had developed application in android and ios using ionic but when i start to build those app for windows platform then so many feature of lonic-framework were not properly working. it require too many custom changes in ionic library as well.

How to invoke an AIR native installer app (EXE,DMG, etc) from browser

I'm looking at this Howto:
http://livedocs.adobe.com/flex/3/html/help.html?content=distributing_apps_3.html#1036176
But I cannot get it to work with a Native installer application. These are .EXE/.DMG AIR apps that are downloaded and installed, NOT .air apps installed by badge.swf. I need to be able to do a browser invocation with a few additional flashvars set.
I already tried to modify the badge.swf file by got many compile errors in FlashBuilder 4.5
Is there an online example of how to do this?
The AIR installer badge is intended to be used in the situation where the user has Flash installed, but may not have AIR installed. When the user clicks on the badge to install the AIR application, the AIR runtime is first downloaded and installed if necessary, and then the application is installed.
There is no reason to use the badge with a packaged native installer because the installer will download and install the AIR runtime if necessary before installing the application.
You can create a SWF which looks like a badge and downloads the native installer using a FileReference. There is however no way to execute the installer automatically after it has downloaded as doing so would present serious security risks.
The best course of action is to present clear instructions to the user on how to download and install the application using the native installer.