It’s easy to move from PhoneGap Build to VoltBuilder.

PhoneGap is no longer being maintained. It is already unable to make apps which fully comply with Apple’s requirements. Google’s latest announcements will stop PhoneGap from making valid Android apps as well.

If you want to follow along with a video, watch this. It shows the first few steps of this tutorial.

1. Prepare your files

VoltBuilder uses the same zip file structure as PhoneGap. Your upload files should look like something like this:

Project Root
├-- config.xml
├-- res
└-- www

(other formats are possible - this is typical)

Zip the files, as you would for PhoneGap.

2. Upload

Log In/Sign Up to VoltBuilder.

Drag and drop your files to VoltBuilder’s Upload page.

upload

Drag into the Android box - our first build is for Android.

3. Download and Run

upload

That’s it! You’ve done your first build. You can now install and run on a device.

If VoltBuilder detects a problem, you’ll get a message which should help you fix it. Once it’s fixed, upload again.

VoltBuilder uses a newer version of Cordova than PhoneGap. Some actions which were valid in PhoneGap will no longer work. VoltBuilder will let you know if it finds anything. Check the Docs for more information.

4. Certificates and Signing

So far, we have done an Android Debug build, which does not require any certificates. To build for release or for iOS, certificates are needed.

PhoneGap Build requires that you save your certificates on their server and go through an extra unlock step. VoltBuilder uploads your certificates with your app, so no extra steps are needed.

An additional benefit is that your certificates remain securely on your own computer, except when your app is actually being built. VoltBuilder immediately deletes all your upload files as soon as the build is complete.

To add certificates to your upload, you need add a folder and a file to your upload.

Project Root
├-- certificates (new!)
├-- config.xml
├-- res
├-- voltbuilder.json (new!)
└-- www

certificates is a folder for your certificate files.

voltbuilder.json is a file which has build information for VoltBuilder.

5. Doing an Android release build.

You’ll need a keystore file to make a signed Android build. You can use the same one that you used for PhoneGap. We’re calling ours android.keystore, but any name is fine. Put it in the certificates folder:

Project Root
├-- certificates
│   └-- android.keystore (new!)
├-- config.xml
├-- res
├-- voltbuilder.json
└-- www

Here’s what goes into the voltbuilder.json file:

{
  "androidAlias": "key0",
  "androidAliasPassword": "mypassword",
  "androidKeystore": "certificates/android.keystore",
  "androidKeystorePassword": "mypassword",
  "platform": "android",
  "release": "release",
}

The values for androidAlias, androidAliasPassword and androidKeystorePassword are what you entered when you created the keystore file.

androidKeystore is the location of the certificate.

platform is android or ios.

release is debug or release, depending on what kind of build you are doing.

Zip the files together and upload again. You’ll get an Android Release build.

6. Doing an iOS release build.

iOS builds work the same way as Android. Add your certificates to the certificates folder, and identify them in the voltbuilder.json file:

{
  "iosDevP12": "certificates/ios_development.p12",
  "iosDevP12Password": "mypassword",
  "iosDevelopment": "certificates/development.mobileprovision",
  "iosDistP12": "certificates/ios_distribution.p12",
  "iosDistP12Password": "mypassword",
  "iosDistribution": "certificates/distribution.mobileprovision",
  "iosPackageType": "app-store",
  "platform": "ios",
  "release": "release"
}

You can put both development and distribution certificates into the folder. As with Android, the same certificates you use for PhoneGap will work for VoltBuilder. Both Android and iOS fields can be in voltbuilder.json at the same time.

release can be debug or release. If it is debug, the iosDev* fields are used. If it is release, the iosDist* fields are used.

Use the iosPackageType to tell VoltBuilder what kind of distribution build to make. It can be ad-hoc, app-store or enterprise.

Upload as usual.