Running an Android app that has a dependency of another app in Google ARC - google-chrome-arc

Experimenting with Google Chrome ARC, I'm trying to run my application which has a dependency of another application (in particular, my application is using some library functions from OpenCV, and it needs the "OpenCV Manager" app to be installed on the device in order to work).
Is it possible to tell ARC that the 2 apps are connected (I got the APKs of both apps), or every app is entirely isolated and can't know about other apps?

Your packaged APKs in your CRX file are isolated from those in any other CRX file, with the special exception of any APKs inside the ARC runtime CRX file.
You may be able to package the OpenCV manager APK in with your app (inside the same CRX file). It sounds like the license terms would allow it (but require a copyright notice). Since it would be bundled, you would lose out on automatic updates, which may or may not be a problem for you.
We definitely have integration tests which bundle two APKs together like this. However I'm not sure we have done much testing around having a service APK (like OpenCV Manger) with a normal app APK, so you may run into additional issues.
Note that ARC tries to start the main activity in the last APK installed (listed in the metadata file), so the OpenCV APK should be listed first.

Related

How do I build Flutter application locally?

I have developed (on a Mac) a small Flutter app to learn the technology. Now, I would like to build it and use it on Mac, Linux and Android. The few packages I have used claim compatibility with all systems.
So the first thing I did was to run flutter build macos. I indeed obtain an application under build/macos/Build/Products/Release/nameofmyapp.app. It seems this runs correctly, but it fails, for instance, loading data from a DB, which is the first thing it should do.
I have a few questions:
are there any other steps that I should take? I see a long guide about the release process, but to be frank I don't need or want any of that: I only want to use the app myself. Is there something else to do other than flutter build macos?
am I looking for the built app in the right place?
if I did everything correctly, could it be that I need to authorize the app to access to the file in some way? Should I manage this workflow myself, or is there a standard way to perform this action in Flutter?
Sorry for asking more than one question, but I am not sure whether what I am doing wrong is
the build process
where to look for the built app, or
(not) handling the app permissions.
EDIT
Following a suggestion by Madhavam, I tried flutter run --release. The result is identical to running the built application: nothing is loaded from the database, and no errors appear in the console.
To be clear, these are the libraries that are not working:
sqflite should load data from a database (in my Documents folder) but does not show anything
file picker cross should allow me to load data from a JSON file, but when I try this interaction, I an not shown any dialog to load a file
shared preferences should read some settings, but they all appear as null
In short, anything that has to do with interacting with external files or storage does not seem to work
Yup, you have to manage it yourself. Take a look at this package
:https://pub.dev/packages/permission_handler
If you're using Firebase then you probably need to add the release keys.
One thing too, if you face an error only in the release build then I recommend running the app with flutter run --release so that you can see the errors that are being thrown.
So it seems that this is related to the default being an app that runs in sandbox. Since I do not want to distribute the app, it was fine for me to disable this setting. Details are in this answer

React-Native app reverse engineering and obfuscation

Is react-native expo generated apk obfuscated?
exp build:android
How can I retrieve my react native JS source code back using that apk? Do I need dex to java compilers for this purpose?
Looking for your valuable suggestions as I am concerned about the security of my react native app and trying to compare obfuscated vs non-obfuscated code
There is no need to decompile the app using dex to java tools.
If you generate a production build it will be minified, but this is far from being a high level obfuscation which you can try to achieve with react-native-obfuscating-transformer
You can find the js bundle by opening the apk with a zip archive manager. The bundle will be at:
/assets/index.android.bundle
In anycase, any client side code should be treat as unsafe, if you need security use your backend to handle it.

MQA fails after archiving application in XCode

Short Version: I'm having issues while archiving my application. The debug works, the archive doesn't. There is nothing to troubleshoot, anyone has ideas?
Log Version:
I have a hybrid worklight app, fully functional and archiving was working just fine until I've added MQA and I'm using iOS.
Versions are:
Worklight 6.2, MQA 6.3, Xcode 6.1, and iOS 8.1.2
Now I've added MQA following the steps here.
I've copied the framework into my project directory and added in the other_linked_flags a force load for it.
I've also added a few lines of code to for it to work following the same instructions. Basically everything works just fine when I run it from xcode. When I run the app that xcode deploys on iphone, it the app runs normally and MQA also works.
I only have some kind of problem when I try to archive the app to deploy it in a ad hoc environment.
When I do that the iPhone screen remains black after asking me which user it should use on the MQA. It seems that it can load the webview but can't load the html app.
Unfortunately this doesn't even generate a crash log an as such I'm left in the dark about what is happening.
Can someone give me some light on what can I do to troubleshoot this issue?
You may be trying to integration the wrong library into your project.
Right now it looks like you are working on a Hybrid app but try adding the native libraries into it, which is incorrect.
If you are working on a Hybrid app, you need to download the Hybrid SDK.
If you are working on a Native iOS app, you need to add the native library
There is a library specific to Hybrid apps. You can find it in the following link: http://www-01.ibm.com/support/knowledgecenter/SSFRDS_6.3.0/com.ibm.mqa.uau.doc/topics/t_download_wrklight_libraries.html?lang=en
All what is required is to do is removing the native library if added, and integrate the worklight SDK into the app code under the common folder in the main.js file.

Packaging NPAPI plugin for Mac App Store

I have a Safari extension built using NPAPI plugin. It was built by a contractor but I was asked to package it up for the Mac App Store.
Now I don't even know if this is possible as it was not built using Cocoa and when I use xcode to Archive it, I get a Generic Xcode Archive as the Archive Type instead of a Mac App Archive, that wont validate.
1. Can this be done in the first place?
2. If so, how do I go about creating the right Archive?
Thanks!
You can't distribute an NPAPI plugin via the App Store:
2.15: Apps must be self-contained, single application installation bundles, and cannot install code or resources in shared locations
An NPAPI plugin isn't an application, and in order to work must be installed in a shared location (the system or user plugin directory), so doesn't meet the App Store criteria.

Netbeans javafx mac bundle without JRE

I am having a hard time trying to build my javafx app into .app (for mac).
I found a legit way to do that, here is resource for that:
http://docs.oracle.com/javafx/2/deployment/deploy_quick_start.htm
However, it is far from what I'm looking for. By following that tutorial, I managed to build an app from my javafx project, however the size of file was just ridiculous and it is because the whole JRE is being bundled inside. I am now looking for a way to deploy .app file with dependencies (it's important) ONLY and without JRE. (JRE should be pre-installed by user). Is there a way to do that? I really tried to find one, but faild. Hope you, guys, help me.
Instructions for packaging a JavaFX application as a native installable app without including a JRE:
JavaFX packaging tools update - Self-Contained Applications: Create Package without Java Runtime.
The tools used are the same as from the deployment quick start you mention in your question. You just set the fx:platform basedir="".
I'll just quote the article here:
This may sound a bit puzzling at first glance. Package without embedded Java Runtime is not really self-contained and obviously will not help with:
Deployment on fresh systems. JRE need to be installed separately (and this step will require admin permissions).
Possible compatibility issues due to updates of system runtime.
However, these packages are much much smaller in size. If download size matters and you are confident that user have recommended system JRE installed then this may be good option to consider if you want to improve user experience for install and launch.
Technically, this is implemented as an extension of previous feature. Pass empty string as value for 'basedir' attribute and this will be treated as request to not bundle Java runtime, e.g.
<fx:platform basedir=""/>

Resources