Invalid Container 'DOMAIN_INSTALLABLE' in manifest - google-apps-marketplace

I am getting the following error message when trying to publish an app to G Suite Marketplace from Chrome developer dashboard. I am following this documentation.
Below is my manifest.json file.
{
"name": "Test Publishing",
"version": "1.0",
"manifest_version": 2,
"api_console_project_id": "poj_id",
"container": ["DOMAIN_INSTALLABLE"],
"app": {
"urls": [
"https://example.com/"
],
"launch": {
"web_url": "https://example.com"
}
},
"icons": {
"128": "example_icon_128.png"
}
}
Any idea on how to fix this? Is this now changed?

As you may know, G Suite extensions are being migrated from the Chrome Web Store to the G Suite Marketplace.
Web apps can now be published to the G Suite Marketplace directly from the Cloud Console without having to publish them in the Chrome Web Store. See the note at the top of https://developers.google.com/gsuite/marketplace/listing-gsm.

Related

How to update self-hosted firefox webExtension

How do I configure my self-distrubuted firefox webExtension to auto-update, I have tried following MDN update doc but still unable to update.
My web Extension is hosted on a sub-domain name like
"https://files.example.com/myfile/extension.xpi"
My updates.json file resides at the same location with my .xpi file
This is a prototype of my updates.json
{
"addons": {
"updates": [ { "version": "1.2",
"update_link": "https://files.abc.com/myfiles/extension-1.2-an+fx.xpi" },
{ "version": "1.3",
"update_link": "https://files.abc.com/myfiles/extension-1.3-an+fx.xpi" }
]
}
}
This is the gibberish I get from browser console
1535658478365 addons.update-checker WARN onUpdateCheckComplete failed
to parse update manifest: [Exception... "Update manifest is missing a
required addons property." nsresult: "0x80004005 (NS_ERROR_FAILURE)"
location: "JS frame ::
resource://gre/modules/addons/AddonUpdateChecker.jsm ::
getRequiredProperty :: line 120" data: no] Stack trace:
getRequiredProperty()#resource://gre/modules/addons/AddonUpdateChecker.jsm:120
parseJSONManifest()#resource://gre/modules/addons/AddonUpdateChecker.jsm:130 onLoad()#resource://gre/modules/addons/AddonUpdateChecker.jsm:309 UpdateParser/<()#resource://gre/modules/addons/AddonUpdateChecker.jsm:241
It looks like your 'updates.json' is missing the add-on name and XPI hash. I would also test without the "+" in the file name, I think that caused me issues (Due to hosting server).
To view your add-ons UUID (ex "ADDONNAME#test.com") log into the developer hub, click edit information, then look under technical information. To generate an update_hash of your XPI file I would recommend VSCryptoHash, but any other program that generates a cryptographic hash will work.
{
"addons": {
"ADDONNAME#test.com": {
"updates": [
{ "version": "1.0.0",
"update_link": "https://files.abc.com/myfiles/extension-1.2-fx.xpi" ,
"update_hash": "sha256:blahblah" }
]
}
}
}
The console error says your manifest is missing something too. Here is an example based on mine that works.
"applications": {
"gecko": {
"id": "ADDONNAME#test.com",
"strict_min_version": "50.0",
"update_url": "https://webpage/Updatefile.json"
}
},

Ionic 3 Cordova ajax calls fail on Windows 10 (UWP)

I have attempted to ask this previously, buy got no real answers, and have now been struggling for over a month.
I just cannot get my ajax calls to work on an Ionic 3 Cordova application built for a Windows 10 UWP. They can access localhost, but not any outside connections.
The application works fine on both Android and iOS.
I am trying to test this locally on my dev machine. I use a certificate (bought) to sign the application, install this certificate, build the application for Windows, and am able to open up the built CordovaApp.Windows10_1.0.1.1_x86.appxupload, and then double click the embedded CordovaApp.Windows10_1.0.1.1_x86.appx file to install, which completes successfully. The install indicates the app need internet access.
In the config.xml, I have the following tags, as suggested elsewhere...
<allow-navigation href="*" />
<access origin="*" />
However, when I run, the http.get call just returns 0 with no other information. I can run in Visual Studio, and look at the returned error object, and get no further info, apart from this 0 return.
I have run fiddler, enabled the https decryption as explained here, but all I see in the response header is
HTTP/1.0 200 Connection Established
FiddlerGateway: Direct
StartTime: 13:44:21.686
Connection: close
The result in the main view actually shows 200, so I don't think this is showing me anything real.
I am at a complete loss. I have no where else to search. What could I be missing?
Should I be able to use external ajax on a Windows 10 machine, when I have sideloaded the application as here? I haven't tried from the store yet, as I don't want to upload until I know it works.
Any suggestions desperately welcomed. Surely someone has had an Ionic 3 application accessing external ajax working?
Thanks in advance for any help
[UPDATE 1]
If I run the application on the same machine, just using Ionic serve (so it just runs in the browser rather than hosted in the UWP), the ajax calls also work fine.
[UPDATE 2]
I have now created a Cordova application using the Visual Studio template, so taking all other frameworks out of the equation.
I used vanilla JavaScript to do my rest call...
document.addEventListener('deviceready', callUrl, false);
function callUrl() {
console.log('callUrl');
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://myserveraddress.com/myapp/testroute');
xhr.send(null);
xhr.onreadystatechange = function () {
var DONE = 4; // readyState 4 means the request is done.
var OK = 200; // status 200 is a successful return.
if (xhr.readyState === DONE) {
if (xhr.status === OK)
console.log(xhr.responseText);
} else {
console.log('Error: ' + xhr.status);
}
}
};
I run this in the debugger, and even here I get an error (status code of 0).
Another thing I noticed when I open up the build package and look at the cordova_plugins.js file..
My Ionic app has the following...
cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [
{
"id": "cordova-plugin-console.logger",
"file": "plugins/cordova-plugin-console/www/logger.js",
"pluginId": "cordova-plugin-console",
"clobbers": [
"cordova.logger"
]
},
{
"id": "cordova-plugin-console.console",
"file": "plugins/cordova-plugin-console/www/console-via-logger.js",
"pluginId": "cordova-plugin-console",
"clobbers": [
"console"
]
},
{
"id": "cordova-plugin-device.device",
"file": "plugins/cordova-plugin-device/www/device.js",
"pluginId": "cordova-plugin-device",
"clobbers": [
"device"
]
},
{
"id": "cordova-plugin-device.DeviceProxy",
"file": "plugins/cordova-plugin-device/src/windows/DeviceProxy.js",
"pluginId": "cordova-plugin-device",
"merges": [
""
]
},
{
"id": "cordova-plugin-splashscreen.SplashScreen",
"file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js",
"pluginId": "cordova-plugin-splashscreen",
"clobbers": [
"navigator.splashscreen"
]
},
{
"id": "cordova-plugin-splashscreen.SplashScreenProxy",
"file": "plugins/cordova-plugin-splashscreen/www/windows/SplashScreenProxy.js",
"pluginId": "cordova-plugin-splashscreen",
"runs": true
},
{
"id": "cordova-plugin-statusbar.statusbar",
"file": "plugins/cordova-plugin-statusbar/www/statusbar.js",
"pluginId": "cordova-plugin-statusbar",
"clobbers": [
"window.StatusBar"
]
},
{
"id": "cordova-plugin-statusbar.StatusBarProxy",
"file": "plugins/cordova-plugin-statusbar/src/windows/StatusBarProxy.js",
"pluginId": "cordova-plugin-statusbar",
"runs": true
},
{
"id": "ionic-plugin-keyboard.KeyboardProxy",
"file": "plugins/ionic-plugin-keyboard/src/windows/KeyboardProxy.js",
"pluginId": "ionic-plugin-keyboard",
"clobbers": [
"cordova.plugins.Keyboard"
],
"runs": true
}
];
module.exports.metadata =
// TOP OF METADATA
{
"cordova-plugin-console": "1.0.5",
"cordova-plugin-device": "1.1.4",
"cordova-plugin-splashscreen": "4.0.3",
"cordova-plugin-statusbar": "2.2.2",
"cordova-plugin-whitelist": "1.3.1",
"ionic-plugin-keyboard": "2.2.1"
};
// BOTTOM OF METADATA
});
Now, I notice every plugin in the module.exports.metadata also has an entry in the module.exports EXCEPT for cordova-plugin-whitelist!
If I open the same file for the Corvoda application created in VS, I see the following...
cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [];
module.exports.metadata =
// TOP OF METADATA
{
"cordova-plugin-whitelist": "1.2.2"
};
// BOTTOM OF METADATA
});
So this has nothing else for the whitelist plugin as well
Could there be something missing here?? Could this white-list plugin not be installed correctly?
I had a similar situation where my ajax calls worked fine in TEST, but when I moved to PROD, they would fail.
The answer was finally tracked down as a missing intermediary certificate on the server I was trying to access. TEST had the cert, PROD did not.
I hope this helps.

Build .net core webapi in openshift v3

I am very new to openshift and .net core .I try to build a web api project in .netcore 1.1 in openshift v3 .Any one have experience with it.A step-by-step guidance is very helpful for beginners . I created a ropo https://github.com/kuntal-b/netcoreWebAPI/ .
please help/share your experience .
finally its working
Found a sample app https://github.com/redhat-developer/s2i-dotnetcore/tree/master/1.1/test/asp-net-hello-world
Take project.json from there (https://github.com/redhat-developer/s2i-dotnetcore/blob/master/1.1/test/asp-net-hello-world/project.json)
change version
"version": "1.1.0-*",
and remove (https://github.com/dotnet-architecture/eShopOnWeb/pull/14) because there was an error
Microsoft.Composition 1.0.27 is not compatible with netcoreapp1.1
"Microsoft.VisualStudio.Web.CodeGeneration.Design" :"1.0.1" ,
project.json after modify
{
"version": "1.1.0-*",
"dependencies": {
"Microsoft.ApplicationInsights.AspNetCore" :"2.0.0" ,
"Microsoft.AspNetCore" :"1.1.2" ,
"Microsoft.AspNetCore.Mvc" :"1.1.3" ,
"Microsoft.AspNetCore.StaticFiles" :"1.0.3" ,
"Microsoft.EntityFrameworkCore" :"1.1.2" ,
"Microsoft.EntityFrameworkCore.Design" :"1.1.1" ,
"Microsoft.EntityFrameworkCore.Tools" :"1.1.0" ,
"Microsoft.Extensions.Logging.Debug" :"1.1.2" ,
"Microsoft.VisualStudio.Web.BrowserLink" :"1.0.1" ,
"MySql.Data.EntityFrameworkCore" :"7.0.7-m61" ,
"Pomelo.EntityFrameworkCore.MySql" :"1.1.2" ,
},
"buildOptions": {
"emitEntryPoint": true
},
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
},
"System.Console": "4.0.0-*"
}
}
},
"publishOptions": {
"include": [
"wwwroot",
"hosting.json",
"testCert.pfx"
]
}
}
and build successful in open shift v3 with .net core 1.1
find sample app bellow link .
http://netcore-kuntal-test.7e14.starter-us-west-2.openshiftapps.com/api/values

Play framework app heroku configuration error: Key 'application.conf' may not be followed by token: 'application.prod.conf'

I built an app based on template play-silhouette-seed-slick. template link
I got a configuration error caused by com.typesafe.config.ConfigException$Parse after deploying the app to heroku.
"Configuration error: Configuration error[ # file:/app/target/universal/stage/conf/: 2: Key 'application.conf' may not be followed by token: 'application.prod.conf' (if you intended 'application.prod.conf' to be part of a key or string value, try enclosing the key or value in double quotes)]"
The Procfile
web: target/universal/stage/bin/panobike-plus-server -Dhttp.port=${PORT} -Dconfig.resource=${PLAY_CONF_FILE}
And app.json
{
"name": "play-silhouette-slick-seed",
"description": "Seed project to show how Silhouette can be implemented into a Play Framework application with database access using Slick 3.",
"keywords": [
"Play",
"Silhouette",
"Slick"
],
"website": "https://github.com/sbrunk/play-silhouette-slick-seed",
"repository": "https://github.com/sbrunk/play-silhouette-slick-seed",
"success_url": "/",
"env": {
"BUILDPACK_URL": "https://github.com/heroku/heroku-buildpack-scala.git",
"PLAY_CONF_FILE": "application.prod.conf",
"PLAY_APP_SECRET": "changeme",
"FACEBOOK_CLIENT_ID": "",
"FACEBOOK_CLIENT_SECRET": "",
"GOOGLE_CLIENT_ID": "",
"GOOGLE_CLIENT_SECRET": "",
"TWITTER_CONSUMER_KEY": "",
"TWITTER_CONSUMER_SECRET": ""
}
}
In my production config "application.prod.conf", there is no such key "application.conf".
What does this error message mean?
Thank you
It was a stupid question.
I did not call the https://api.heroku.com/app-setups endpoint to setup the app.json enabled application on Heroku.
I had the same error. That was due to lack of PLAY_CONF_FILE env variable. To fix this error you need to open Heroku web page -> Settings -> click on Config Vars button and set new PLAY_CONF_FILE variable. For example application.staging.conf

Pebble sdk 2.x unable to load resource

I know pebble 2.x is a bit outdated, but that's the watch that I recently got and am interested in writing a small app on this.
I am unable to load the resource files (images and font) in my pebble app. Below is the error message when I try to run pebble build:
Setting top to : /home/mixi/Documents/pebble-dev/helloworld
Setting out to : /home/mixi/Documents/pebble-dev/helloworld/build
Checking for program gcc,cc : arm-none-eabi-gcc
Checking for program ar : arm-none-eabi-ar
Found Pebble SDK in : /home/mixi/.pebble-sdk/SDKs/current/sdk-core/pebble/aplite
'configure' finished successfully (0.220s)
Waf: Entering directory `/home/mixi/Documents/pebble-dev/helloworld/build'
Error Generating Resources: File: bt-icon.png has specified invalid type: bitmap
Must be one of (raw, png, png-trans, font)
Generating resources failed
My appinfo.json:
{
"uuid": "93c49fe2-0b1e-44b8-8fff-22d9c87adab9",
"shortName": "helloworld",
"longName": "helloworld",
"companyName": "MakeAwesomeHappen",
"versionLabel": "1.0",
"sdkVersion": "2.9",
"targetPlatforms": ["aplite", "basalt", "chalk"],
"watchapp": {
"watchface": true
},
"appKeys": {
"dummy": 0
},
"resources": {
"media": [
{
"type": "bitmap",
"name": "IMAGE_BT_ICON",
"file": "bt-icon.png"
}
]
},
"versionCode": 1
}
My Pebble version:
Pebble Tool v4.0 (active SDK: v2.9)
I also tried creating a test app on pebblecloud with their sample. The sample runs fine without resource, but also fails when I add a new resource to the project. Is there a fix to this?
Apparently, pebble 2.x does not like "bitmap" type. All I had to do was change resource type to "png" in the JSON file:
"media": [
{
"type": "png",
"name": "IMAGE_BT_ICON",
"file": "bt-icon.png"
}
]
OMG =A=..
As for CloudPebble, the drop down for Resource Type doesn't seem to show up and it seems to select Bitmap by default.. Maybe it'll be fixed in the near future idk.

Resources