0

This question is relevant to app developers only!

I am trying to convert and publish my android apps to chrome web store. I used the arc welder chrome app suggested in Google's getting started guide. I've downloaded zip from ARC welder app. When I launch the app from welder app, It's working as expected.

The issue 1 (solved): After publishing the zip file on Chrome app store and trying to install on Chrome running on OSX platform the app appear "Unsupported platform" and does not allow to install. I installed ChromiumOS on virtual machine and the app appears compatible. When trying to install it, the error "File not found" appears. It tries to extract file with the name of the app id listed in the manifest. I checked and found that the id in manifest does not match the id in app store. Unpacked the zip, changed the id in manifest according to id in app store,incremented the version number, repacked and published. After that tried to install - on Chrome running on OSX the app changed to compatible, but after downloading the zip and checking, appeared...

The issue 2 (unsolved yet): Appeared error "Manifest file is invalid"

The same happens when installing on ChromiumOS - the app is downloading successfully, the new app icon appears in apps drawer, and just after "checking" stage the icon disappeared from the apps drawer and the manifest error shows.

Can somebody advice me how to try to solve the issue? Any help appreciated.

I am listing the manifest file, generated by arc welder:

{
  "name": "__MSG_extName__",
  "default_locale": "en",
  "manifest_version": 2,
  "version": "1.0",
  "version_name": "1.0",
  "offline_enabled": true,
  "app": {
    "background": {
      "page": "app_main.html"
    }
  },
  "icons": {
    "16": "icon.png",
    "128": "icon.png"
  },
  "permissions": [
    "alarms",
    {"fileSystem": ["write"]},
    "overrideEscFullscreen",
    "unlimitedStorage",
    "notifications",
    "storage",
    "accessibilityFeatures.read",
    "https://clients2.google.com/",
    {"socket": ["tcp-connect", "tcp-listen", "udp-bind", "udp-send-to", "resolve-host", "resolve-proxy"]},
    "fullscreen"]
,
  "requirements": {
    "3D": {
      "features": ["webgl"]
    }
  },
  "kiosk_enabled": true,
  "import": [{"id": "mfaihdlpglflfgpfjcifdjdjcckigekc"}],
  "file_handlers": {},


  "arc_metadata": {
    "apkList": [
      "CityAdventures.apk"
    ],
    "enableExternalDirectory": false,
    "formFactor": "tablet",
    "name": "Discover 3D Shapes",
    "orientation": "landscape",
    "packageName": "com.myCompany.CityAdventures",
    "resize": "reconfigure"
  }
}
Tony
  • 109
  • 1
  • 10
  • First remark: whatever you can publish on CWS is going to work _only_ on ChromeOS. Other platforms can be used for development, but release target for ARC is ChromeOS _only_. – Xan Mar 23 '16 at 12:13
  • Finally, showing us your non-working manifest seems like a good idea if you want this answered. – Xan Mar 23 '16 at 12:14
  • Xan, I can not completely agree with you, according to Google Chrome app development is targeted to all OS's running Chrome Browser: "Why build a Chrome App? By building a Chrome App, as opposed to going with a traditional web app or a native mobile app, you expand your potential audience and extend your development capability. To any desktop Instead of writing and maintaining separate applications for Windows, OS X and Linux, you can write a single application that runs anywhere Chrome runs. This includes Windows, Linux, and OS X." – Tony Mar 23 '16 at 12:26
  • What I said only pertains to ARC, not Chrome Apps in general. From the [docs](https://developer.chrome.com/apps/getstarted_arc): _"The App Runtime for Chrome (Beta), or ARC, lets you run your favorite Android apps on Chrome OS."_ – Xan Mar 23 '16 at 12:31
  • Anyway let's focus on technical issue , not on target audience for now, I posted the manifest listed in my question. – Tony Mar 23 '16 at 12:45
  • So is this manifest before or after your changes? Did you try modifying the `import` key to solve issue 1? Because you really shouldn't do that.. – Xan Mar 23 '16 at 12:51
  • Read in isssue 1: I replaced the id in import key with the actual id from Chrome web store and this solved the issue 1, then I inspected the issue 2, and meantime did not found workaround. – Tony Mar 23 '16 at 13:03
  • And this is the manifest before the id changed. – Tony Mar 23 '16 at 13:12

1 Answers1

2

Okay, so here's how ARC works.

The ARC Welder app allows you to test / create ARC Apps on any platform.

However, the final apps it generates rely on the App Runtime for Chrome extension. It is loaded with the Shared Module mechanism, and that's the mysterious id "mfaihdlpglflfgpfjcifdjdjcckigekc" from the manifest.

This module is required: you can't just throw it away from the manifest as the engine embedded in your App expects files loaded from it.

However, the App Runtime has the required components only for Chrome OS architectures. ARC Welder-created Apps are only supported on Chrome OS. On any other platform, the shared module is installed but does not provide the required files, resulting in your error #1. There is no solution to make your app deployable to anything except Chrome OS via the Web Store.

Your error #2 stems from the fact that Chrome tries to load your app as a shared module and it's not valid for that (not having the "export" key). You can't and shouldn't fix that - it's nonsensical to try and import itself as a shared module.

As for why your unmodified App fails to load in a virtual Chrome OS - it's hard to say, but probably it runs on an architecture not supported by ARC Runtime. Needs more details on how you set up the VM.

Community
  • 1
  • 1
Xan
  • 74,770
  • 16
  • 179
  • 206
  • Now it is clear for me. Thanks a lot. I will publish for CromeOS audience only for now. The virtual CromeOS is actually ChromiumOS provided by ... And can be not full compatible of course. I just wanted to be sure my apps are working properly for customers. – Tony Mar 23 '16 at 13:46
  • I found the provider of this ChromeOS clone - ClearCloud. – Tony Mar 23 '16 at 14:11
  • One [link](https://chrome.google.com/webstore/detail/app-runtime-for-chrome-be/mfaihdlpglflfgpfjcifdjdjcckigekc) in your answer is now broken. Do you happen to know any alternative way to download ARC? – Kubuntuer82 Apr 16 '21 at 15:16
  • It's not really relevant anymore. ARC has been discontinued in Dec 2020. – Xan Apr 16 '21 at 15:19