Google App maker debugging - google-app-maker

Does App maker has any debugging options on the JavaScript functions. I can see debugging options in google script.
When I tried to run functions it shows the error in the logger, it is not enough to identify the exact issue. If there is a default debugging option it will be easy to identify the issue

There are different debugging techniques for App Maker and they are different for Server and Client scripts.
Client Script debugging:
Write 'debugger;' statement in code where you need to break, redeploy app, open Browser Dev Tools and reload app. It is just a basic JS debugging technique.
You can use 'console.log()' to put some messages to browser's console.
Server Script debugging:
You can use 'console.log()' to put some messages to browser's console (this will work only if you are deployment owner, otherwise you'll not see these messages).
You can use 'console.log()' and see your messages in Google Cloud Platform logs for your Deployment:
or Preview:

Related

Grey Areas in Webapp while using Firebase hosting

I have a multi-page web application written in Flutter which uploaded on Firebase hosting . All the pages work fine but half of the homepage is grey. Photo attached. Really appreciate for help.
Also, I'm getting this error when I run: flutter run -d chrome --release
Oops; flutter has exited unexpectedly: "ProcessException: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event
log or use the command-line sxstrace.exe tool for more detail.
Command: C:\Users\abc\AppData\Local\Google\Chrome\Application\chrome.exe --user-data-dir=C:\Users\abc\AppData\Local\Temp\flutter_tools.2b59d482\flutter_tools_chrome_device.4fad7966 --remote-debugging-port=2576 --disable-background-timer-throttling --disable-extensions --disable-popup-blocking --bwsi --no-first-run --no-default-browser-check
--disable-default-apps --disable-translate http://localhost:11541".
I have also faced same issue while host web app in firebase.
the issue is not in firebase host. the issue is in your code. your code will completely work in debug mode. but not in released mode.
check every warning in logs.
it is mostly happen because of wrong use of expanded or flexible widget

Meteor android build version

I have a strange issue. I build my Meteor app and run it on android device using -
meteor run android-device --mobile-server=<my_aws_ip>:3000
When the app deploys immediately it connects to the server (and my javascripts etc works). After a few seconds, the page refreshs and none of the javascript callbacks work. Please help me debug this issue.
More information: If I change the client (and not the server), and deploy it, for the first few seconds, the changed client gets shown on the phone. After the first few seconds, the version which is present on the server is shown. So I think Cordova or Meteor is trying to fetch the client code from the server, which is breaking the app. Is there a way to prevent this behavior?
Even more data points -
My aws code does NOT have android and ios platforms installed. Because of this, I think the cordova plugins are not installed, causing a JS break somewhere.
Easiest fix I can think of is remove cordova autoupdate. This is being added by meteor-platform package. If I clone meteor-platform and comment out the cordova autoupdate, the app doesn't load.
Is there another way of removing autoupdate?
This sounds like you have a different version of your app deployed at the mobile-server address.
The local code is run in development mode. Your AWS one is likely in production mode (and may contain a syntax error).
When you run your app it sees the code is different and fetches the new/old (different) version with a hot code reload - hence the page refresh/flash.
To fix this, you need to find the syntax error in your code. It's best to view the ADB logger or run with meteor run --verbose android-device ....
This will provide a bit more information such as an Uncaught exception: cannot read .. of null error type error.
It's hard to say what the error is. The error prevents the rest of your code from executing. In production mode the entire project is one JS file. If there is an error of any kind half way along the file, the rest of the file will not execute.
Also, try loading <my_aws_ip>:3000 in your browser and watch for JS errors in the JS console.
You can also run it locally with --production to simulate a production build environment locally.
Enabling autoupdate but without a page refresh:
Reload._reload = function (options) {
console.log("Next load will load new version");
};

Launch Client Console App from Web Page

I've been asked to launch a Console App from a WebPage. Sounds hairy, but there is sound logic for it.
Basically, the page is a Dashboard page which only super admins can access. We have a Console app which needs to run on the client machine. It cannot run headlessly on the server.
I figured I'd have some kind of small file which is downloaded upon the button click. Then that file could be run from the resulting dialog which would launch the exe.
I know apple does something like that with podcasts. You can subscribe by downloading a small link that would behave as I described and open iTunes.
I had a quick go using ClickOnce, publishing the application to IISExpress where I had my site up and running, but had no success with that.
Is ClickOnce the way to go, or is there some other easier approach?
I've also tried just adding a shortcut with a link to that shortcut nd adding .lnk as a mime type in IIS with mimeType="application/octet-stream". I had no luck there and received a 404 error which I have not been able to resolve yet.
Edit
I should also mention that the Console application is not just a single exe assembly. It has dependencies on a bunch of other 3rd party dlls.
I am assuming here that this desktop application needs to be executed at client side. Thus it will be installed by you or someone in your department i.e available to download.
If it is the case then what you need is to register URI - just like skype URI where href="skype:28347839" lanuches skype automatically.
For reference please click here: http://msdn.microsoft.com/en-us/library/ie/aa767914(v=vs.85).aspx
otherwise, get clickonce - -choice is yours.
As you say, just put the console application (an .exe file) on the server, and link to it in a webpage. When the user clicks on the link the exe file will be downloaded. The user can then run the exe file on their own computer.
There will be some warning dialogs about security issues, but if your users trust your exe then they can accept those warnings.
If you get the console application signed, and/or maybe use Group Policy on your LAN you might be able to reduce or eliminate those warnings.

What is the difference between deployed codes and debugging ones in meteor?

I made an complicated app that captures screen shot by html2canvas.js on Meteor.
It works well except the below condition.
1. deployed to the server without --debug option. and,
2. client is iOS Safari.
(If you make a simple capturing app by html2canvas.js, it works well for all conditions. So I said "an complicated app", mean that the app includes other libraries.)
What is the essential difference between without --debug option and with --debug option?
(it may be joined or separated, or uglified or not, but they are equivalent.)
Apparently this phenomenon shows they are not equivalent.
Are there any possibilities that the code has interferences by joining files just on iOS?
And how can I debug this problem efficiently?
[UPDATE]
The problem disappeared once I deployed with --debug option and re-deployed without --debug.
It might be related to browser cache policy on iOS.
In debug mode your code isn't minified and packaged into single files. So there are two modes debug and production. When you use meteor deploy without --debug your code is heavily optimized for speed. You would notice this with the time it takes for your app to load on your phone.
If the app works with the --debug option only it means you have some kind of javascript error in your app.
When an app is minified all the files are concatenated into a single file. If there is a single error in your code somewhere the rest of the code will not execute. In --debug mode the error is still there but because the files are seperated the other files aren't affected by the error.
You should use the javascript console in chrome/safari to look for the error and fix it before you deploy your app. If you're on a mac the easiest way to bring it up is Cmd + Alt + J.
Typically in meteor this is caused by you accessing the collection before its downloaded. Something like trying to get doc.date and doc is still undefined so it throws a null reference exception.

EQATEC Profiler - The remote server returned an error: (404) Not Found

I'm trying to use EQATEC Profiler to profile my ASP.Net app. I followed the instructions listed here. It worked the first time, but every since then, when I run my app, I don't get a "Profiled app started" message. Then when I click on the "Take snapshot" button, I get the following:
"Taking snapshot ...failed: The remote server returned an error: (404) Not Found."
Why can't it find my app?
If a profiled app encounters errors it will log these to the profiler.log file. By default you will find this in C:\Windows\Temp\EQATECProfilerLogs. Try to see if it holds some clues. You can also try to enable "Full logging" in the app options, which will at least output something to the log.
A profiled app is actually the "server" when talking to the profiler; it is the profiler that connects to the app, not the other way around. In your case it seems that the old app has stopped listening (otherwise the profiler's attempt to connect would simply be served by the old app), but the new app has not (could not?) started listening.
It seems strange, though, so my best suggestion is to examine the log-file. It will e.g. show if the app could not start its control-server and if so, why not.
1) Try rebuilding (in Equatec) your application. Make sure "enable runtime control" is enabled in the application options when you build.
1a) Try changing the port being used for runtime control.
2) Run your application through Equatec
3) Check if you have anything funny for firewall settings or similar. Some firewalls treat Equatec communication as traffic to be blocked.
4. If all else fails, just close your application normally. Even if taking snapshots fails, you can still see the profile once your application is closed.
Guess I should provide an update on this. The error was resolved once I downloaded the latest version.

Resources