Blank due to error at startup

Starting from Blank iOS screen

I added some alert and spotted the problem, I guess:

 alert("aAA");  //this is showed
    $.when(
        $.getJSON("js/cldr/main/it/numbers.json"),
        $.getJSON("js/cldr/main/it/currencies.json"),
        $.getJSON("js/cldr/main/it/ca-gregorian.json"),
        $.getJSON("js/cldr/supplemental/likelySubtags.json"),
        $.getJSON("js/cldr/supplemental/timeData.json"),
        $.getJSON("js/cldr/supplemental/weekData.json"),
        $.getJSON("js/cldr/supplemental/currencyData.json"),
        $.getJSON("js/cldr/supplemental/numberingSystems.json")
    ).then(function () {
        alert("a"); //this is not showed
        return [].slice.apply(arguments, [0]).map(function (result) {
            return result[0];
        });
    }).then(
       ....

I tried also an equivalent version, but the result is the same

jQuery.ajax({ dataType: "json", url: "js/cldr/main/it/numbers.json" }),
jQuery.ajax({ dataType: "json", url: "js/cldr/main/it/currencies.json" }),
jQuery.ajax({ dataType: "json", url: "js/cldr/main/it/ca-gregorian.json" }),
$.ajax({ dataType: "json", url: "js/cldr/supplemental/likelySubtags.json" }),
$.ajax({ dataType: "json", url: "js/cldr/supplemental/timeData.json" }),
$.ajax({ dataType: "json", url: "js/cldr/supplemental/weekData.json" }),
$.ajax({ dataType: "json", url: "js/cldr/supplemental/currencyData.json" }),
$.ajax({ dataType: "json", url: "js/cldr/supplemental/numberingSystems.json" })

I tried also to add the “/” at the begininng of the paths, nothing changed.

I tried then

jQuery.getJSON("js/cldr/main/it/numbers.json", function () {
            alert("success");
        }).error(function (err) { alert("...error " + err.responseText); })
            .complete(function () { alert("complete"); })

but the error is “undefined”

If I do

jQuery.ajax({
    dataType: "json", url: "js/cldr/main/it/currencies.json",
    error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.status);
        alert(thrownError);
    } })

no alert is showed…

Can you help me here?

If I’m reading this right, it could support the CORS theory. Your CORS rules have to allow js/cldr/main/it/numbers.json to be read.

Any luck getting to the Safari Console? It will help you a lot with this.

Ok, I debbuged it with the console… I have this message:

Eccezione con valore generato: Error: E3021 - Remote template cannot be loaded.
 Url:layouts/SlideOut/SlideOutLayout.html
 Error:. See: http://js.devexpress.com/error/17_2/E3021

I the file www/index.html I have

<link rel="stylesheet" type="text/css" href="layouts/SlideOut/SlideOutLayout.css" />
<link rel="dx-template" type="text/html" href="layouts/SlideOut/SlideOutLayout.html" />
<script type="text/javascript" src="layouts/SlideOut/SlideOutLayout.js"></script>

All paths are correct, but I have this error message now…

Is that the only message on the Console?

It looks like you have an issue with a library. See
http://js.devexpress.com/error/17_2/E3021

At this point, I’m not sure this has anything to do with VoltBuilder.

Please note I have this problem only with VoltBuilder

Once again:

Is that the only message on the Console?

Yes, unique message

The error message is coming from a JavaScript library which you are using. That means VoltBuilder has successfully built the iOS app. It’s erroring on the code in the app.

Remember that PhoneGap was using an obsolete version of Xcode when you built there. A lot has changed in the meantime: in iOS, in Xcode and in Cordova. You’ll need to do regular JavaScript debugging to discover the issue here.

The error message says: Occurs when the loadTemplates(source) method cannot load a view/layout template from the specified source.

Check to confirm that the source specified as a parameter of the loadTemplates() method is valid.

A question:

in the config.xml I had

  <config-file platform="ios" parent="CFBundleShortVersionString">
    <string>1.0.64</string>
  </config-file>

Is this conversion correct for VoltBuilder?

 <edit-config target="CFBundleShortVersionString" file="*-Info.plist" mode="merge">
	<string>1.0.64</string>
</edit-config>

I tried to add

<access origin="js/cldr/main/it/*" />

but maybe it’s wrong… since it is a local path to get a json file, which the correct syntax to add it to the whitelist?

I’m not a human compiler, so unfortunately I’m not good at reading snippets of code and know whether they will work as intended.

Have a look at the log file. Cordova is pretty good about giving messages and warnings as it processes. There’s a lot of data there, but it can help.

This issue is continued in this thread.