White screen at startup on .ipa IOS

Hi,

I am using Voltbuild to build and generate .ipa (Apple) and .apk (Android).
I used to build my apps on Phonegap Builder that is not working anymore.
I have updated an old project to build on Voltbuild and I am having some problems I could not fix them.

My .apk (Android) is working fine. The problem is .ipa. After I upload .ipa (Apple) to Apple Store to release, it is showing an white screen at start up and nothing else happens.

It seems its blocking an internal pages call:
$(“#paginaCompleta”).load(‘pags/pagAcesso.html’);

On index.html:
div id=“paginaCompleta”

I have search a lot and I have tryed a lot of things but it seems I won’t be able to solve this:
Some things I have alreary done:
1- meta http-equiv=“Content-Security-Policy” content=“default-src ‘self’ "
2- plugin name=“cordova-plugin-whitelist”
3- access origin=”"
allow-navigation href="
"
allow-intent href=“"
allow-intent href="http://
/"
allow-intent href="https://
/"
allow-intent href="tel:

allow-intent href=“sms:"
allow-intent href="mailto:

allow-intent href=“geo:"
allow-navigation href="file:

I dont know if it could be something like this:

Best regards,
Flávio Bonates

It seems that you are on the right track with your own debugging of this issue :slight_smile:

Try keeping the allowed intents and the cordova-plugin-whitelist you have allready added.

But also try adding:

<plugin name="cordova-plugin-wkwebview-file-xhr" version="~3.0.0" />

Let us know if this works.

Worked perfectly. Thank you!

But now, when I try to access my server, it feels like I’m blocked.
http://exames.ceus.med.br:8082/CEUSServerv0-0-1/

I have tried several CSP combinations but no sucess.

Some help?

Seeing the exact message will be a big help here. If you have a Mac, use the Safari Remote Inspector to look at the Console on the device.

If you are on Windows, you can this using inspect.dev. The error message will make it clear what CSP is being looked for.

I try with browserstack.com… I dont know if this helps:

Oct 5 18:12:38 CEUS(WebKit)[3376] : 0x1087e5440 - [PID=3379, throttler=0x1087c8b58] ProcessThrottler::Activity::Activity: Starting foreground activity / ‘WebPageProxy::runJavaScriptInFrameInScriptWorld’
Oct 5 18:12:38 CEUS(XCTTargetBootstrap)[3376] : Sending anonymous endpoint.
Oct 5 18:12:38 CEUS(XCTTargetBootstrap)[3376] : Setting up target listener.
Oct 5 18:12:38 CEUS(XCTTargetBootstrap)[3376] : Received client to target connection.
Oct 5 18:12:38 CEUS(XCTAutomationSupport)[3376] : Received request to exchange capabilities, remote interface capabilities are:
Oct 5 18:12:38 CEUS(WebKit)[3376] : 0x1087e5440 - [PID=3379, throttler=0x1087c8b58] ProcessThrottler::Activity::invalidate: Ending foreground activity / ‘WebPageProxy::runJavaScriptInFrameInScriptWorld’
Oct 5 18:12:38 CEUS(AccessibilityUtilities)[3376] : Setting client identifier com.apple.accessibility.AXSytemReplyServer-3376-0
Oct 5 18:12:38 CEUS(AXRuntime)[3376] : Unknown client: CEUS
Oct 5 18:12:41 CEUS(WebKit)[3376] : 0x1087b4dd0 NavigationState is releasing background process assertion because a page load completed
Oct 5 18:12:41 CEUS(WebKit)[3376] : 0x1087e4d40 - [PID=3379, throttler=0x1087c8b58] ProcessThrottler::Activity::invalidate: Ending background activity / ‘Page Load’
Oct 5 18:12:43 CEUS(WebKit)[3376] : UIProcess is releasing a background assertion because the Network process is no longer holding locked files
Oct 5 18:12:43 CEUS(WebKit)[3376] : 0x1087e50b0 - [PID=3380, throttler=0x108794210] ProcessThrottler::Activity::invalidate: Ending background activity / ‘Holding locked files’

This is the call:

jObjeto = {"USUARIO":"2","SENHA":"2"}
    myApp.showIndicator();
var url = "http://exames.ceus.med.br:8082/CEUSServerv0-0-1/rest/acessows/getinformacoesacesso/";
$.post(url, {objeto: jObjeto}, 
	function(dados) {
    	myApp.alert(dados, "");
		if (dados.ERRO=='0') {
			funcaoRetorno(dados);
		} else {
			funcaoErro(dados);
		}
		myApp.hideIndicator();
	});

No, that’s not the log you need to look at.

Try doing what’s in my last message.

Just another information… It only happens in .ipa … .apk (Android) is working fine

Origin null is not allowed by Access-Control-Allow-Origin.
XMLHttpRequest cannot load http://exames.ceus.med.br:8082/CEUSServerv0-0-1/rest/pacientews/postnovocadastro due to access control checks.
exames.ceus.med.br:8082/CEUSServerv0-0-1/rest/pacientews/postnovocadastro:1 
POST http://exames.ceus.med.br:8082/CEUSServerv0-0-1/rest/pacientews/postnovocadastro Origin null is not allowed by Access-Control-Allow-Origin.

Origin null is not allowed by Access-Control-Allow-Origin.
XMLHttpRequest cannot load http://exames.ceus.med.br:8082/CEUSServerv0-0-1/rest/acessows/getinformacoesacesso due to access control checks.
exames.ceus.med.br:8082/CEUSServerv0-0-1/rest/acessows/getinformacoesacesso:1 
POST http://exames.ceus.med.br:8082/CEUSServerv0-0-1/rest/acessows/getinformacoesacesso Origin null is not allowed by Access-Control-Allow-Origin.

Hi, is above error message what you need?

Yes, it’s what you need. I’m no expert in content-security-policy, but you’ll need to add that path to that line in your index.html.

you mean this path: http://exames.ceus.med.br:8082/ ?
Can you show me how?