[RESOLVED] Showstopper! Signed Release Version APK not connecting to server!

Hi Meteorites

When I run the app from meteor it works.

i.e this works: meteor run android-device --mobile-server=https://x.y

this does not work–>
As soon as I create a signed apk from either mup or from meteor build, the signed apk stops working, whereas the unsigned apk worked before. The app opens on the phone, shows the index.html but when I click signin on the accounts-ui nothing happens.

The signed apk uploads to the play store, but the downloaded apk shows index.html content and then nothing. I click the sign in button, nothing happens.

I have seen several people raising this issue and have tried all of them, still it doesn’t work.

Things I tried:

  1. change --server, mobile-server flags in several ways
  2. check ssl certificate intermediaries
  3. change CN in certificate
  4. change root_url, DDP url, mobile_root_url, mobile ddp url

Nothing works :frowning:

Here is the logcat:

02-08 13:13:27.683 3698 9958 E BoostFramework: Exception java.lang.NullPointerException: Attempt to invoke virtual method ‘java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])’ on a null object reference

Please help. Now my app is ready for publishing, I have been cracking my head over this for a few days.

Thanks/raskal.

I am wondering why you are mentioning mupx and meteor build here. Both tools have nothing to do with app signing. Signing is a completely separate process that comes after building your app with meteor build. Are you sure you followed all steps to build an app and sign it?

Here’s the steps required:

  • meteor build to a directory
  • Sign the app using jarsigner
  • Zipalign the app using zipalign

If you’re using Crosswalk, each of the steps would have to be done for two APKs, one for armv7 and one for x86.

Also make sure you have set the right access rules in mobile-config.js. Otherwise, your app won’t be able to communicate with your server.

BTW: Have you tried to debug your app using Chrome’s remote debugging feature? This should show you any connection problems.

Thanks @waldgeist!

Both mup and meteor build can sign the apk if you put the release-signing.properties file in the platforms\android directory.

Rest of your very helpful suggestions I can report that they are taken care of, while the problem still persists! :pensive:

Not sure what this chrome remote debugging feature is. Can you pls elaborate? Like I mentioned, my app works prefectly in debug mode, only when it is signed it simply doesn’t.

Cheers/raskal

@waldgeist I was able to use Chrome remote debugging! thanks!

I am seeing the following in the network headers:

Request URL:http://10.0.2.2:3000/sockjs/info?cb=z3owek1ly6
Request Headers
Provisional headers are shown
Origin:http://localhost:12072
Referer:http://localhost:12072/
User-Agent:Mozilla/5.0 (Linux; Android 6.0.1; SM-N910H Build/MMB29K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36
Query String Parameters
view source
view URL encoded
cb:z3owek1ly6

The app is trying to connect to 10.0.2.2:3000, instead of my server http://x.y:443 for some reason? @sashko or someone from MDG can help, please?

cheers/raskal

Try to add this to your meteor build command:
–server https://x.y

Yes, I already did that… Still the app is trying to connect to 10.0.2.2:3000 instead of my server…

How and where did you deploy the app?

Deployed using mup… also tried using meteor build… neither of which works…

:frowning:

And how do you start it on the server? Using node or using meteor? The latter is only meant for development environments. I am deploying to AWS via mupx and everything is working fine in this scenario. Still, the strange thing is that your app tries to connect 10.0.2.2:3000. This looks like a local development system.

I start using mup deploy/start… on the remote server HTTPS://x.y

BTW the app works fine with meteor run android-device… It fails after I sign the app…

It will always fail if it cannot reach the server.

Would you like to do a web session on this? You can contact me via Guzz, and I could show you how I set-up things. My Guru profile is: http://guzz.guru/waldgeist

Well, the server is online and I can reach it through the desktop browser as well.

I can also access it via the app if I run meteor run android-device --mobile-server https://x.y

It fails ONLY after I sign the release version of the app.

When I created the cert, I put CN(Common Name) as my own name instead of the server’s domain name… I am wondering if that is the problem…

Cheers

@martijnwalraven can you please look into this … looks like https://github.com/meteor/meteor/issues/5469 is repeating again… Pls help to resolve.

We had a session over Guzz and I can confirm it’s a weird behavior. Did not happen for me so far.

Thanks Tom.

BTW, just to clarify, our versions are different - i am on 1.4. I believe you are running 1.2.

Cheers/raskal

1 Like

Yep, I thought about mentioning that :slight_smile: But as the issue stated that it was fixed in 1.3, I thought this was irrelevant.

Has anyone else faced this? It will be a showstopper if we cannot create signed apks. Pls help.

Thanks to @abernix, I can confirm that the release 1.4.2.6 works and creates the signed apk which is able to connect to the server.

/cheers/raskal

Great to hear you could resolve this finally. So it was a bug in Meteor, right?