Add a configuration option to include the signingVersion in voltbuilder.json

Would it be possible to add a configuration option in NSB AppStudio to include the parameter below in voltbuilder.json?

{
  "android": {
    "signingVersion": 1
  }
}

I need to compile my application using V1 signing only to send it to o a third-party platform (Clover). The VoltBuilder team has already assisted me by creating this configuration, but I currently have no way to use it, since voltbuilder.json is automatically generated by NSB AppStudio like so:

{
“androidAlias”: “xmenu”,
“androidAliasPassword”: “",
“androidKeystore”: “certificates/Keystorexmenu.keystore”,
“androidKeystorePassword”: "
”,
“androidPackageType”: “apk”,
“client”: “AppStudio”,
“clientVersion”: “9.0.2.4”,
“googlePlayKey”: “”,
“googlePlayTrack”: “”,
“iosDevP12”: “certificates/ios_development.p12”,
“iosDevP12Password”: “",
“iosDevelopment”: “certificates/development.mobileprovision”,
“iosDistP12”: “certificates/ios_distribution.p12”,
“iosDistP12Password”: "
”,
“iosDistribution”: “certificates/distribution.mobileprovision”,
“iosPackageType”: “app-store”,
“platform”: “android”,
“release”: “debug”,
“serial”: “**********”,
“verbose”: “”
}

I am currently using NSB AppStudio version 9.0.2.4.

Below is the forum thread for reference:
https://forum.volt.build/t/is-it-possible-to-configure-voltbuilder-to-generate-the-apk-already-signed-with-v1-instead-of-v1-v2/2104/3

Of Course!! we need this!
or in config.xml…

Yes - it will be in the next build.

Great! Do you have any estimate on when the next build will be released? And if so, will we need to update the AppStudio version to the latest version, right?

We’re hoping to finish it in the next few days. Yes, you will need to download the new version.

Got it! Thank you so much!

@ghenne,pls remember default,android signingVersion =2(playstore).just a gentle reminder….tst

Thanks - yes, that will be the default.

AppStudio 9.3.2 has been released. It supports setting the androidSigningVersion. You can do so in your project’s Properties, in the VoltBuilder section.

Got it! Thank you so much!
We’re going to update to version 9.3.2 and then test it out.

Hello, happy New Year!

I did a fresh install of AppStudio and copied my project to a new machine.
The installed version is 9.3.2.13.
With the older version (9.0.2.4), I was able to compile the same application using the same config.xml, but with the newer version I get the following message.

2026-01-13 19:36:38,975 - #1 SMP PREEMPT_DYNAMIC Debian 6.1.148-1 (2025-08-26)
2026-01-13 19:36:39,322 - app.framework: cordova
2026-01-13 19:36:39,324 - Verbose logging is off. Change this in voltbuilder.json
2026-01-13 19:36:39,324 - VoltBuilder run started at 2026-01-13 19:36:39.324846
2026-01-13 19:36:39,325 - Plan: Indy
2026-01-13 19:36:39,325 - Preflight Check
2026-01-13 19:36:39,326 - adding android to xmlns
2026-01-13 19:36:39,932 - Output:
cordova-plugin-netcontroll-integration-fiserv@1.0.16 | ISC | deps: none | versions: 17
Plugin cordova de integracao para uso interno (NetControll/ XMenu)

keywords: ecosystem:cordova, cordova-android, netcontroll, xmenu, elgin, minipdv, M8, M10

dist
.tarball:
.shasum: 196a6df9b4d706f99ca37e8a2bbace599ebc3535
.integrity: sha512-mANLUZ/yZxIHCbXBSGuZ2N+KwZNetMKjtV/BLH4kCohkW5Ykq8rUoUUG0nFFCij0Qiel3tCdMb/kMvXhSNazzQ==
.unpackedSize: 419.0 kB

maintainers:

  • developernetcontroll

dist-tags:
latest: 1.0.16

published 2 months ago by developernetcontroll

2026-01-13 19:36:39,933 - id is com.netcontroll.pdv
2026-01-13 19:36:40,450 - Output: Creating a new cordova project.

2026-01-13 19:36:44,947 - Output: Using cordova-fetch for cordova-android@10.0.0
Adding android project…
android-targetSdkVersion should be greater than or equal to 30.
Creating Cordova project for the Android platform:
Path: platforms/android
Package: com.netcontroll.pdv
Name: PDV
Activity: MainActivity
Android target: android-30
Subproject Path: CordovaLib
Subproject Path: app
Android project created with cordova-android@10.0.0
Source path does not exist: favicon.png

2026-01-13 19:36:44,951 - Source path does not exist: favicon.png
Is your resource folder inside your www folder?
See
2026-01-13 19:36:44,952 - Build failed 8378ccda-ed18-4a80-8997-087ff5f56136
2026-01-13 19:36:45,836 - Output: Package Current Wanted Latest Location Depended by
cordova-android 10.0.0 10.1.2 14.0.1 node_modules/cordova-android ***

2026-01-13 19:36:45,852 - Uploading voltbuilder.log…

This looks like it will be a Voltbuilder issue - can you post to that forum? Be sure to include the Build Id - that’s the first thing they will need to look at this.

Got it! I’ve posted it there. Thanks!

Hello guys, I just got a response from VolBuilder, and they think the problem might be in AppStudio.

I tried to remove the favicon.png from my project and got the same error with another image (this one from the AppStudio folder)

2026-01-15 16:18:10,582 - #1 SMP PREEMPT_DYNAMIC Debian 6.1.148-1 (2025-08-26)
2026-01-15 16:18:10,814 - app.framework: cordova
2026-01-15 16:18:10,816 - Verbose logging is off. Change this in voltbuilder.json
2026-01-15 16:18:10,816 - VoltBuilder run started at 2026-01-15 16:18:10.816759
2026-01-15 16:18:10,816 - Plan: Indy
2026-01-15 16:18:10,817 - Preflight Check
2026-01-15 16:18:10,817 - adding android to xmlns
2026-01-15 16:18:11,359 - Output:
cordova-plugin-netcontroll-integration-fiserv@1.0.16 | ISC | deps: none | versions: 17
Plugin cordova de integracao para uso interno (NetControll/ XMenu)

keywords: ecosystem:cordova, cordova-android, netcontroll, xmenu, elgin, minipdv, M8, M10

dist
.tarball:
.shasum: 196a6df9b4d706f99ca37e8a2bbace599ebc3535
.integrity: sha512-mANLUZ/yZxIHCbXBSGuZ2N+KwZNetMKjtV/BLH4kCohkW5Ykq8rUoUUG0nFFCij0Qiel3tCdMb/kMvXhSNazzQ==
.unpackedSize: 419.0 kB

maintainers:

  • developernetcontroll

dist-tags:
latest: 1.0.16

published 2 months ago by developernetcontroll

2026-01-15 16:18:11,360 - id is com.netcontroll.pdv
2026-01-15 16:18:11,684 - Output: Creating a new cordova project.

2026-01-15 16:18:15,062 - Output: Using cordova-fetch for cordova-android@10.0.0
Adding android project…
android-targetSdkVersion should be greater than or equal to 30.
Creating Cordova project for the Android platform:
Path: platforms/android
Package: com.netcontroll.pdv
Name: PDV
Activity: MainActivity
Android target: android-30
Subproject Path: CordovaLib
Subproject Path: app
Android project created with cordova-android@10.0.0
Source path does not exist: nsb/images/192.png

2026-01-15 16:18:15,065 - Source path does not exist: nsb/images/192.png
Is your resource folder inside your www folder?
See
2026-01-15 16:18:15,066 - Build failed 331c887a-47fb-4e9f-9652-e77dcad04a9c
2026-01-15 16:18:15,629 - Output: Package Current Wanted Latest Location Depended by
cordova-android 10.0.0 10.1.2 14.0.1 node_modules/cordova-android ***

2026-01-15 16:18:15,639 - Uploading voltbuilder.log…

Below is the config.xml I’m currently using:

<?xml version="1.0" encoding="UTF-8"?>
<widget 
xmlns="https://www.w3.org/ns/widgets"
xmlns:gap = "http://phonegap.com/ns/1.0"
id = "com.netcontroll.pdv"
android-versionCode = "11170"
version = "{version}">
<preference name="phonegap-version" value="{phoneGapVersion}" />

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

<edit-config target="NSBluetoothAlwaysUsageDescription" file="*-Info.plist" mode="overwrite">
    <string>Utilizamos acesso ao bluetooth para conectar dispositivos auxiliares ao ponto de venda, como balanças e impressoras.</string>
</edit-config>

<plugin name="cordova-plugin-safearea" />
<plugin name="cordova-plugin-bring-to-front" />
<plugin name="cordova-plugin-statusbar" />


<engine name="android" spec="10.0.0" />
<content src="file:///android_asset/www/index.html" />
<plugin name="cordova-plugin-netcontroll-integration-fiserv" source="npm" />
<plugin name="cordova-plugin-enable-cleartext-traffic" source="npm" />
<plugin name="cordova-plugin-device" source="npm" />
<plugin name="cordova-plugin-zxing">
        <variable name="CAMERA_USAGE_DESCRIPTION" value="Este aplicativo requer acesso à câmera para poder ler qrcodes"/>
</plugin>
  <allow-navigation href="*" /> 
  <access origin="*" /> 
  <allow-intent href="*" /> 
<preference name="android-minSdkVersion" value="22" />
<preference name="android-targetSdkVersion" value="29" />

<plugin name="cordova-plugin-screen-orientation" source="npm" />

<edit-config target="CFBundleDevelopmentRegion" file="*-Info.plist" mode="overwrite">
    <string>Portuguese</string>
</edit-config>


<name>{title}</name>
<description>{description}</description>

<preference name="AndroidXEnabled" value="true" />


<plugin name='cordova-plugin-splashscreen' source='npm' spec="6.0.2" />
<gap:splash src="{splashscreen}"/>
<preference name="AutoHideSplashScreen" value="true" />
<preference name="SplashScreenDelay" value="4000" />
<gap:splash src="{splashscreen}" gap:role="default" width="320" height="480"/>
<preference name="AndroidWindowSplashScreenAnimatedIcon" value="www/2732x2732.png" /> 
<preference name="AndroidWindowSplashScreenBackground" value="#000000" />


<preference name="LoadUrlTimeoutValue" value="60000" />

<preference name="DisallowOverscroll" value="true"/>
<preference name="Suppress3DTouch" value="true" />


<edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="overwrite">
    <string>Este aplicativo necessita de acesso a câmera para leitura de QRCodes</string>
</edit-config>

<edit-config target="NSPhotoLibraryUsageDescription" file="*-Info.plist" mode="overwrite">
    <string>Este aplicativo necessita de acesso a câmera para leitura de QRCodes</string>
</edit-config>


<icon src="{icon}" />

<preference name="permissions" value="none"/>

<plugin name="cordova-plugin-dialogs" spec="~2.0.2" />



<feature name="Notification">
    <param name="ios-package" value="CDVNotification" />
</feature>


<gap:plugin name="cordova-plugin-x-toast" source="npm" />

<gap:plugin name="cordova-plugin-exit" source="npm" />

</widget>

And I’ve the following config in extraHeaders:

<link rel="shortcut icon" type="image/x-icon" href="docs/images/favicon.ico" />
<link rel="icon" type="shortcut icon" href="favicon.ico"/>
<link rel="icon" type="image/png" href="favicon.png">

We’ll have a look.

Wait - is the problem having to do with signingVersion (the subject of this thread) or favicon?

If it’s favicon, it’s not used for projects built by VoltBuilder. Is your build completing?

Yeah, I did a fresh install of AppStudio to use the new signingVersion and copied my project to this new machine.
The installed version is 9.3.2.13.
The same project builds successfully on version 9.0.2.4 (verified on my machine), but on version 9.3.2.13 (new machine and tested with signingVersion 1 and 2) for both scenarios, it shows the following message:

Source path does not exist: favicon.png

When I remove the favicon from my project, it shows the following message:

Source path does not exist: nsb/images/192.png

OK, this is a known message. 192.png is not where it is supposed to be.

Can you zip your project and send it to me at support@nsbasic.com?

Agreed, I’ve just sent it!
Just to be sure, before zipping the project, I compiled it again using version 9.0.2.4 and it worked perfectly.

Found the problem. Starting in 9.1.2, AppStudio generates the set of icons you need automatically, based on icon (and splash) in Project PropertiesVoltBuilder.

You had an old line in your config.xml as follows:

<!-- Icons: Expand this section with sizes required for platforms you are targeting.-->
<icon src="{icon}" />

You should change this to:

<icon src='resources/iconTemplate.png' />

Let me know how this works!