News

  • The VoltBuilder servers are now using Xcode 14.0, the latest update from Apple. This allows you to build apps for iOS 16.0, which was released last week.

    You don’t need to make any changes to your project to use the new release: all VoltBuilder jobs are now processed using it.

    Before we went live with the new release, we tested by processing most of an entire day of iOS builds. They executed cleanly, with the same results as Xcode 13.4. We don’t anticipate any problems for you with the new release, but please let is know if you spot anything.

    The last version of Xcode supported by PhoneGap Build was 9.2.

    What’s New in Xcode 14.0

    Xcode 14 includes Swift 5.7 and SDKs for iOS 16, iPadOS 16, tvOS 16, watchOS 9, and macOS Monterey 12.3. The Xcode 14 release supports on-device debugging in iOS 11 and later, tvOS 11 and later, and watchOS 4 and later. Xcode 14 requires a Mac running macOS Monterey 12.5 or later.

    VoltBuilder provides a high level interface to Xcode, so you don’t have get involved with its installation, complexity and features. We run it on servers with all the latest Apple software, continuously updated.

    What’s New in iOS 16.0

    iOS 16.0 has a number of new features, described in Apple’s Release Notes.

    The builds you make with VoltBuilder will conform to Apple’s latest guidelines for security and App Store approval.

    There is more information on the features and supported devices in this article.

  • iOS jobs now build, on average, almost a minute faster.

    We found some ways to optimize how we use the servers, plus we increased the number of cores. We tested the changes carefully and they are solid.

    There is no change in features supported or reduction in security.

  • Until now, you could only use plugins on the list of approved plugins. With over 1300 plugins listed, almost any plugin could be used. After approval, new ones can be added.

    We’ve enhanced VoltBuilder so it can use any valid plugin. If you’re on the Enterprise Plan, don’t worry if your plugin is approved or set up in NPM. You can load any plugin directly from GitHub, from a website or keep them right in your project.

    You can now load plugins from the following places:

    • Directly from NPM (approved or not)
    • Directly from a Github repo - no need to set up in NPM.
    • Directly from a website
    • From a folder on your website
    • From a local folder on your computer

    This allows you to use plugins which are not published publicly - if you have some proprietary code, it’s no longer a problem.

    Full details are here.

  • VoltBuilder can now build for Android 12. You may need to make changes to your project to be compatible with it and the Google Play Store.

    Building for the Android 12 is important if you want your app to be accepting in the Google Play Store. Android 12 compatibility is required for all new apps now. After November 22, it will be required for updates to existing apps.

    Complete details are here.

  • Our Capacitor Beta is now open to all. Jobs created using Capacitor can be submitted to VoltBuilder, which will return native apps for Android and iOS. VoltBuilder can also take care of submitting to the Google Play and iTunes App Store.

    If you are building for iOS, you will not need a Mac for any part of the process - VoltBuilder will do it all in the cloud for you.

    VoltBuilder is a fast, cost effective way to build Capacitor jobs.

    To integrate VoltBuilder into your work flow, you can use the API.

    Compared to AppFlow, VoltBuilder offers higher security and is more cost effective. Here is a Migration Guide.

    Details on setting up your project are here.

  • We’ve quietly introduced a new feature - outdated plugin checking. It appears at the end of the log on jobs which fail:

    Package                       Current  Wanted  Latest  Location
    cordova-android                 9.1.0   9.1.0  10.1.2  node_modules/cordova-android
    cordova-plugin-camera           5.0.3   5.0.3   6.0.0  node_modules/cordova-plugin-camera
    cordova-plugin-file             6.0.2   6.0.2   7.0.0  node_modules/cordova-plugin-file
    cordova-plugin-media            5.0.4   5.0.4   6.0.0  node_modules/cordova-plugin-media
    cordova-plugin-media-capture    3.0.3   3.0.3   4.0.0  node_modules/cordova-plugin-media-capture
    

    In the above example, 5 plugins are using outdated versions. This can cause a variety of problems - it’s good practice to keep your plugins up to date.

    To fix this, look at your config.xml file. The version of the plugin used depends on two things:

    • What version did you set the plugin spec to?
    • What is the highest version the engine you have selected can use?

    In this example, the camera plugin is declared in config,xml without a version:

      <plugin name="cordova-plugin-camera" source="npm" />
    

    Which means use the latest supported version. To explicitly set the version (it’s good practice), do the following:

      <plugin name="cordova-plugin-camera" source="npm" spec="5.0.3" />
    

    So why it is using 5.0.3 instead of 6.0.0? It’s due to this line:

    Package                       Current  Wanted  Latest
    cordova-android                 9.1.0   9.1.0  10.1.2
    

    The project is using an old version of the Android engine (9.1.0), which does not support version 6 of cordova-plugin-camera.

    You should update your project to the current version of the engine. The other outdated packages will then be updated automatically.

  • The VoltBuilder servers are now using Xcode 13.4, the latest update from Apple. This allows you to build apps for iOS 15.5, which was released a couple of weeks ago.

    You don’t need to make any changes to your project to use the new release: all VoltBuilder jobs are now processed using it.

    Before we went live with the new release, we tested by processing most of an entire day of iOS builds. They executed cleanly, with the same results as Xcode 13.2. We don’t anticipate any problems for you with the new release, but please let is know if you spot anything.

    The last version of Xcode supported by PhoneGap Build was 9.2.

    What’s New in Xcode 13.4

    Xcode 13.4 includes SDKs for iOS 15.5, iPadOS 15.5, tvOS 15.4, watchOS 8.5, and macOS Monterey 12.3. The Xcode 13.4 release supports on-device debugging for iOS 15.5, iPadOS 15.5, tvOS 15.4, watchOS 8.5, and later. Xcode 13.4 requires a Mac running macOS Monterey 12 or later.

    VoltBuilder provides a high level interface to Xcode, so you don’t have get involved with its installation, complexity and features. We run it on servers with all the latest Apple software, continuously updated.

    One important issue which is fixed is for log4j. There is more information here.

    What’s New in iOS 15.5

    iOS 15.5 has a number of new features, described in Apple’s Release Notes.

    The builds you make with VoltBuilder will conform to Apple’s latest guidelines for security and App Store approval.

    There is more information on the features and supported devices in this article.

  • Within the last month, both Apple and Google have announced they will be removing apps which have not been kept up to date.

    Many, if not all, PhoneGap projects are old enough that they will be affected. Fixing them is usually not a huge problem - VoltBuilder is designed to help PhoneGap users update their projects.

    We have the following resources to help:

    Apple

    You may have gotten this from Apple:

    App Store Improvement Notice

    This app has not been updated in a significant amount of time and is scheduled to be removed from sale in 30 days. No action in required for the app to remain available to users who have already download the app.

    You can keep this app available for new users to discover and download from the App Store by submitting an update for review within 30 days. If no update is submitted within 30 days, the app will be removed from sale.

    There is more information on their web site. Apple is not specific as to what they are looking for, but refer you to the App Store Review Guidelines.

    Some of the things we know can cause problems are insecure web references, using UIWebView, and using out of date Xcode libraries (PhoneGap ended at 8.0, VoltBuilder is up to date at 13.3). These issues are easily resolved by building with VoltBuilder.

    Update: On April 29, 2022, Apple issued this clarification:

    As part of the App Store Improvements process, developers of apps that have not been updated within the last three years and fail to meet a minimal download threshold — meaning the app has not been downloaded at all or extremely few times during a rolling 12 month period — receive an email notifying them that their app has been identified for possible removal from the App Store.

    Apple always wants to help developers get and keep quality software on the App Store. That’s why developers can appeal app removals. And developers, including those who recently received a notice, will now be given more time to update their apps if needed — up to 90 days. Apps that are removed will continue to function as normal for users who have already downloaded the app on their device.

    Google

    From November 1st, 2022, all existing apps in the store must target an API level within two years of the latest major Android OS release. Google will place limits on which users are able to discover or install them if they are not up to date.

    Here is the blog post from Google’s developer support group explaining the new policies.

    Specifically, your app needs to be built using Android API Level 30. The highest API level available to PhoneGap was 28. VoltBuilder supports API Level 30 now.

  • The VoltBuilder servers are now using Xcode 13.3, the latest update from Apple. This allows you to build apps for iOS 15.4, which was released a couple of weeks ago.

    You don’t need to make any changes to your project to use the new release: all VoltBuilder jobs are now processed using it.

    Before we went live with the new release, we tested by processing most of an entire day of iOS builds. They executed cleanly, with the same results as Xcode 13.2. We don’t anticipate any problems for you with the new release, but please let is know if you spot anything.

    The last version of Xcode supported by PhoneGap Build was 9.2.

    What’s New in Xcode 13.3

    Xcode 13.3 includes SDKs for iOS 15.4, iPadOS 15.4, tvOS 15.4, watchOS 8.5, and macOS Monterey 12.3. The Xcode 13.3 release supports on-device debugging for iOS 15.4, iPadOS 15.4, tvOS 15.4, watchOS 8.5 and later. Xcode 13.3 requires a Mac running macOS Monterey 12 or later.

    VoltBuilder provides a high level interface to Xcode, so you don’t have get involved with its installation, complexity and features. We run it on servers with all the latest Apple software, continuously updated.

    One important issue which is fixed is for log4j. There is more information here.

    What’s New in iOS 15.4

    iOS 15.4 has a number of new features, described in Apple’s Release Notes.

    The builds you make with VoltBuilder will conform to Apple’s latest guidelines for security and App Store approval.

    There is more information on the features and supported devices in this article.

  • The VoltBuilder servers are now using Xcode 13.2.1, the latest update from Apple. This allows you to build apps for iOS 15.2, which was released this week.

    You don’t need to make any changes to your project to use the new release: all VoltBuilder jobs are now processed using it.

    Before we went live with the new release, we tested by processing most of an entire day of iOS builds. They executed cleanly, with the same results as Xcode 13.1. We don’t anticipate any problems for you with the new release, but please let is know if you spot anything.

    The last version of Xcode supported by PhoneGap Build was 9.2.

    What’s New in Xcode 13.2.1

    Xcode 13.2.1 includes SDKs for iOS 15.2, iPadOS 15.2, tvOS 15.2, watchOS 8.3, and macOS Monterey 12.1. The Xcode 13.2.1 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 13.2.1 requires a Mac running macOS 11.3 Big Sur or later.

    VoltBuilder provides a high level interface to Xcode, so you don’t have get involved with its installation, complexity and features. We run it on servers with all the latest Apple software, continuously updated.

    One important issue which is fixed is for log4j. There is more information here.

    What’s New in iOS 15.2

    iOS 15.2 has a number of new features, including App Privacy Report, Apple Music Voice Plan, Legacy Contacts, Find My Battery Reserve, Hide My Email, Communication Safety and Macro Mode Toggle.

    The builds you make with VoltBuilder will conform to Apple’s latest guidelines for security and App Store approval.

    There is more information on the features and supported devices in this article.

  • The VoltBuilder servers are now using Xcode 13.0, the latest update from Apple. This allows you to build apps for iOS 15.0, which was released last week by Apple.

    You don’t need to make any changes to your project to use the new release: all VoltBuilder jobs are now processed using it.

    Before we went live with the new release, we tested by processing an entire day of iOS builds. They executed cleanly, with the same results as Xcode 12.4. We don’t anticipate any problems for you with the new release, but please let is know if you spot anything.

    The last version of Xcode supported by PhoneGap Build was 9.2.

    What’s New in Xcode 13

    Xcode 13 includes SDKs for iOS 15, iPadOS 15, tvOS 15, watchOS 8, and macOS Big Sur 11.3. The Xcode 13 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 13 requires a Mac running macOS 11.3 or later.

    VoltBuilder provides a high level interface to Xcode, so you don’t have get involved with its installation, complexity and features. We run it on servers with all the latest Apple software, continuously updated.

    Xcode 13 has a number of changes and fixes, including better logging output. Most importantly, it has support for iOS 15. There is more information here.

    What’s New in iOS 15

    iOS 15 introduces new ways to stay connected, powerful updates that help users focus and explore, and intelligent features to get more done with iPhone. FaceTime updates provide more natural video calls, Focus helps users reduce distraction, new features like Live Text use on-device intelligence to surface useful information, upgrades to Maps provide brand new ways to navigate the world, and much more.

    The builds you make with VoltBuilder will conform to Apple’s latest guidelines for security and App Store approval.

    There is more information on the features and supported devices in this article.

  • Updates to Android

    20 Sep 2021

    We are planning to roll out some updates to VoltBuilder’s Android support. Here’s what is changing:

    1. Builds will use Android SDK Platform 30, which corresponds to Android 11. Google has developer documentation for Android 11 here.

    2. cordova-android 10.1.1. This is the latest version of Cordova’s Android support.

      To be listed in the Google Play Store, you may need to use this version. To use the previous version, add this line to your config.xml file:
      <engine name="android" spec="9.0.0" />
      To use the new version, add this line to your config.xml file:
      <engine name="android" spec="10.1.1" />

    3. Not all plugins have been updated for Cordova 10 yet. If you find problems with a plugin, check that you’re using the latest version of it. If you are, check with the maintainer if it should work, and open an issue there if needed. In the meantime, you can drop back to Cordova 9 - but that is not a permanent solution.

    4. In config.xml, if you fail to add a content line, VoltBuilder defaults to index.html:
      <content src="index.html" />
      (If the main file of your app is a different, you can substitute its name.)

    5. Builds make .apk files by default. These can be used for debug builds and for release builds outside the Google Play Store. To make .aab (Android Application Bundles), add this line to your voltbuilder.json file:
      "androidPackageType": "bundle",

      .aab files cannot be used outside the Google Play Store.

    6. Certificates in the Google Play Store have changed somewhat. (There are no changes for apps distributed outside the Store). Google now requires all new apps use Google Play Signing, which is separate from the signing which is required to upload your app. VoltSigner can be used to make the self signed certificates (.p12) which are required for upload to the Play Store. If you use Play App Signing, this certificate is just used to verify your identity and the Play Store handles the actual app signing. We strongly suggest you use Play App Signing when possible.

      Once you generate a certificate for uploads, you will need to keep using that certificate for uploads. If you lose your certificate or password, your only option is to create a new store listing with a new package name and start from scratch. (One time exceptions have been made - contact Google for this.)

    Changes to cordova-android

    Cordova-android 10 has a number of changes which may break your project. See the Release Notes below for the full details.

    • Migration to AndroidX from Android Support Library is complete. All plugins that use the Android Support Library will need to be updated to reference the new AndroidX library.
    • By default, the WebViewAssetLoader is enabled and allows apps to serve their content from a ‘proper’ origin.
    • Support for Android App Bundles (aab) added.
    • lots of smaller fixes
    • updates to libraries

    Release Notes

  • Starting in August, 2021, the Google Play Store requires all new apps to be submitted in Android App Bundle (.aab) format. VoltBuilder can now create these bundles.

    The only thing you need to do is add this line to your voltbuilder.json file:

    "androidPackageType": "bundle",
    

    VoltBuilder will then produce a file ending in .aab. These files are only used to upload to the Google Play Store: you cannot install them directly to a device. As a result, only release builds have this feature.

    An Android App Bundle is a publishing format that includes all your app’s compiled code and resources, and defers APK generation and signing to Google Play.

    Google Play uses your app bundle to generate and serve optimized APKs for each device configuration, so only the code and resources that are needed for a specific device are downloaded to run your app. You no longer have to build, sign, and manage multiple APKs to optimize support for different devices, and users get smaller, more-optimized downloads.

  • VoltBuilder can generate icons and splash screens for your app in all the required sizes. Just supply an icon and a splash screen template, and VoltBuilder will take care of the rest. The generated images will be added to your project and your config.xml file updated. Android, iOS and Windows are supported.

    Not only does this make the production of your app easier, it also reduces the upload size to VoltBuilder: you no longer have to include images of all different sizes.

    When new image sizes are required by platforms, VoltBuilder will automatically add them.

    Of course, if you are happy with your current images, you can keep using them.

    Read more on how to set up your project to do this.

  • VoltBuilder can create Windows executables, using almost the identical setup as Android and iOS. No changes need to be made to your actual project. The build results in a standard .appx file. It can make both debug and release builds: the release builds are signed.

    You may need to review your list of plugins. Check to make sure they have been built for Windows. Any valid Windows plugin will work - no approval process is needed. If a plugin does not have a Windows version, you’ll need to contact the author to see if one can be supplied.

    The folder layout for your project is the same. Just drag and drop your zip file onto the Windows box on the Upload form.

    voltbuilderUpload

  • The VoltBuilder servers are now using Xcode 12.5, the latest update from Apple. This allows you to build apps for iOS 14.5, which was released yesterday by Apple.

    You don’t need to make any changes to your project to use the new release: all VoltBuilder jobs are now processed using it.

    Before we went live with the new release, we tested by processing an entire day of iOS builds. They executed cleanly, with the same results as Xcode 12.4. We don’t anticipate any problems for you with the new release, but please let is know if you spot anything.

    The last version of Xcode supported by PhoneGap Build was 9.2.

    What’s New in Xcode 12.4

    Xcode 12.5 includes SDKs for iOS 14.5, iPadOS 14.5, tvOS 14.5, watchOS 7.4, and macOS Big Sur 11.3. The Xcode 12.5 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.5 requires a Mac running macOS Big Sur 11 or later.

    VoltBuilder provides a high level interface to Xcode, so you don’t have get involved with its installation, complexity and features. We run it on servers with all the latest Apple software, continuously updated.

    New and improved features in XCode 12 include Universal apps (including Apple Silicon), templates, testing and UI changes. Most importantly, it has support for iOS 14. There is more information here.

    What’s New in iOS 14.4

    iOS 14.5 brings exciting new features to iPhone, including the ability to unlock iPhone with Apple Watch while wearing a face mask, more diverse Siri voices, new privacy controls, skin tone options to better represent couples in emoji, and much more. iOS 14.5 builds on the reimagined iPhone experience introduced in iOS 14, and is available as a free software update.

    The builds you make with VoltBuilder will conform to Apple’s latest guidelines for security and App Store approval.

    New and improved features in iOS 14 include App Clips, CarPlay, Car keys, Home screen, Widgets,App Library, Compact UI, Search and Siri. There more information on the features and supported devices in this article.

  • Adobe PhoneGap shut down their servers on March 1, 2021. To make it easier to transition, VoltBuilder is offering new users a 20% discount.

    PhoneGap provided an easy to use web service which converted web apps to native apps. These could be distributed through the Android and iOS stores. In the fall, they announced they were planning on discontinuing the service. They have now done so.

    VoltBuilder went live in 2020. It retains the ease of use of PhoneGap, but uses modern libraries and tools to make native apps. In many cases, little or no change is needed to build PhoneGap projects.

    In addition, VoltBuilder can upload to the stores and create certificates, allowing developers to create apps for iOS without needing a Mac.

    Signing is handled by VoltSigner, which lets you generate iOS and Android certificates in your browser, whether you’re running Windows, MacOS or Linux.

    Voltbuilder is offering 20% off all their plans for those converting from PhoneGap after March 1. The discount will apply for a full year.

    To get the discount, fill in this form. The offer expires on April 30.

  • The version of your app is now included in the download name. The download name will look like this:

    android.release.v1.0.3.apk

    The version information comes from the first line of your config.xml file:

    <widget
      version="1.0.3"
      android-versionCode="1"
      id="com.nsbasic.HelloWorld"
      ios-CFBundleVersion="1"
      xmlns="https://www.w3.org/ns/widgets"
    >
    

    This makes is easy to keep different versions of your app. The new build will not overwrite your last build if you change its version number.

    (Thanks to Mujaffar for the suggestion!)

  • VoltBuilder Hosting gives your app a persistant place where it can be downloaded.

    Normally, apps are only available for download for a short time after they are built. With Hosting, your app will be available for as long as your plan is in effect. This is useful for a organizations which need to make their apps available, but do not want to maintain their own hosting service.

    VoltBuilder will return a URL and QR Code (as it does now). You can send these to your customers or employees, who can then use them to install your app directly onto their devices.

    Any Android app can be hosted. For iOS, the apps need to be built as Enterprise apps. You’ll need to sign up for Apple’s Enterprise Program. The apps do not need to be uploaded to Google Play or the Apple App Store.

    This service is part of the VoltBuilder Enterprise Plan. Please contact support@volt.build to get set up.

    For more information, check out the docs.

  • ReactJS is one of the most popular ways to develop web apps. It makes it painless to create interactive UIs. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes.

    For mobile apps, React suggests using React Native. It’s highly optimized for mobile devices and requires a separate code base for your app.

    Using VoltBuilder, you can make your ReactJS apps into native mobile apps, using the same code base as your desktop version. All functionality is retained - the app will have the same look and feel as the desktop.

    It’s pretty easy to do. Use the React Template. Copy the files in your React projects’s dist folder into the template’s www folder.

    Copying files from the dist folder to www

    Keep in mind that the pathnames to your assets in index.html should be relative, like this:

    <link rel="stylesheet" href="./style.css">
    

    That’s pretty much it. Zip it, then upload to VoltBuilder using the Android option.

    You can also build for iOS once you’ve added the signing data Apple requires.

  • We made several updates to the VoltBuilder Servers over the weekend.

    1. cordova-fetch updated to 3.0.1. This module is used internally by VoltBuilder as part of Cordova. Read Cordova’s blog post.
    2. Android SDKs and build tools: updated to the latest versions.
    3. Security updates: MacOS Operating system updates applied.

    You don’t need to make any changes to your project to use the updates: all VoltBuilder jobs are now processed using them.

    VoltBuilder Updates

    Using a build service like VoltBuilder can a big time saver. We take care of keeping the complex toolchains used by Cordova up to date and in sync. For more information, read this white paper: Why use a Build Service?

    VoltBuilder is committed to keeping its toolchains up to the latest versions at all times.

  • We’ve published a GitHub repo with a working sample project.

    Without needing to do any modifications, you can upload it to VoltBuilder, build an apk, then run it on your Android device. It’s a minimal HelloWorld style app.

    Feel free to look at how it’s set up. Compare it to your project to see if it is structured properly. Starting a new project? Go ahead and use it as a template.

    The project will also build for iOS, but you’ll need to be signed up for Apple’s Developer program and create certificates for it.

    Sample app screenshot

  • The VoltBuilder servers are now using Xcode 12.4, the latest update from Apple. This allows you to build apps for iOS 14.4, which was released yesterday by Apple.

    You don’t need to make any changes to your project to use the new release: all VoltBuilder jobs are now processed using it.

    Before we went live with the new release, we tested by processing an entire day of iOS builds. They executed cleanly, with the same results as Xcode 12.3. We don’t anticipate any problems for you with the new release, but please let is know if you spot anything.

    The latest version of Xcode supported by PhoneGap Build is 9.2.

    What’s New in Xcode 12.4

    Xcode 12.4 includes SDKs for iOS 14.4, iPadOS 14.4, tvOS 14.3, watchOS 7.2, and macOS Big Sur 11.1. The Xcode 12.4 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.4 requires a Mac with Apple silicon running macOS Big Sur 11 or later, or an Intel-based Mac running macOS Catalina 10.15.4 or later.

    VoltBuilder provides a high level interface to Xcode, so you don’t have get involved with its installation, complexity and features. We run it on servers with all the latest Apple software, continuously updated.

    New and improved features in XCode 12 include Universal apps (including Apple Silicon), templates, testing and UI changes. Most importantly, it has support for iOS 14. There is more information here.

    What’s New in iOS 14.4

    iOS 14.4 allows the camera to recognize smaller QR codes, and there’s a feature for specifying a device type for third-party Bluetooth-connected audio devices so that Headphone Audio Level measurements can be taken correctly. The update also provides notifications for when the camera on an iPhone is unable to be verified as a new, genuine Apple camera in the iPhone 12 models, which would be applicable only to repairs. There are also several bug fixes.

    The builds you make with VoltBuilder will conform to Apple’s latest guidelines for security and App Store approval.

    New and improved features in iOS 14 include App Clips, CarPlay, Car keys, Home screen, Widgets,App Library, Compact UI, Search and Siri. There more information on the features and supported devices in this article.

  • The VoltBuilder servers are now using Xcode 12.3, the latest update from Apple. This allows you to build apps for iOS 14.3, which was released last week by Apple.

    You don’t need to make any changes to your project to use the new release: all VoltBuilder jobs are now processed using it.

    Before we went live with the new release, we tested by processing an entire day of iOS builds. They executed cleanly, with the same results as Xcode 12.0. We don’t anticipate any problems for you with the new release, but please let is know if you spot anything.

    The latest version of Xcode supported by PhoneGap Build is 9.2.

    What’s New in Xcode 12.3

    Xcode 12.3 includes SDKs for iOS 14.3, iPadOS 14.3, tvOS 14.3, watchOS 7.2, and macOS Big Sur 11.1. The Xcode 12.3 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.3 requires a Mac with Apple silicon running macOS Big Sur 11 or later, or an Intel-based Mac running macOS Catalina 10.15.4 or later.

    VoltBuilder provides a high level interface to Xcode, so you don’t have get involved with its installation, complexity and features. We run it on servers with all the latest Apple software, continuously updated.

    New and improved features in XCode 12 include Universal apps (including Apple Silicon), templates, testing and UI changes. Most importantly, it has support for iOS 14. There is more information here.

    What’s New in iOS 14.3

    iOS 14.3 includes support for Apple Fitness+ and AirPods Max. This release also adds the ability to capture photos in Apple ProRAW on iPhone 12 Pro, introduces Privacy information on the App Store, and includes other features and bug fixes for your iPhone.

    The builds you make with VoltBuilder will conform to Apple’s latest guidelines for security and App Store approval.

    New and improved features in iOS 14 include App Clips, CarPlay, Car keys, Home screen, Widgets,App Library, Compact UI, Search and Siri. There more information on the features and supported devices in this article.

  • VoltBuilder can now automatically upload your app to the Google Play Store at the end of your build.

    App Store Logo By adding Google Play Key and a Google Play Track, the upload becomes another step in the build. There is nothing else to set up. Once your app is uploaded by VoltBuilder, you can send it on to be released in the store, or for further testing by your users.

    Any messages returned by Google as part of the upload process are returned by VoltBuilder as part of the usual build process. There is no change to your VoltBuilder work flow - but you save a few steps when the build is complete by not needing to upload yourself.

    There are a few steps which need to be done to get the Google Play Key, which authorizes VoltBuilder to upload apps on your behalf. Here’s how to set up upload to Google Play.

  • What can I say. It just…works :) Excellent feature! – Christian, Beta tester

    VoltBuilder can now automatically upload your app to Apple App Store Connect at the end of your build.

    App Store Logo By adding your username and an app-specific password, the upload becomes another step in the build. There is nothing else to set up. Once your app is uploaded by VoltBuilder, you can send it on to Apple’s approval process to be released in the store, or to TestFlight for further testing by your users.

    Any messages returned by Apple as part of the upload process are returned by VoltBuilder as usual.

    You do not need a Mac to upload your apps. This is clearly of benefit if you do not have a Mac. It’s also of help for people who run their build process on Windows, but have to copy their app to a Mac (or MacInCloud session) so they can upload.

    Setting up Upload to the Apple App Store

  • The VoltBuilder servers are now using Xcode 12, the latest update from Apple. This allows you to build apps for iOS 14, which was released last week by Apple.

    You don’t need to make any changes to your project to use the new release: all VoltBuilder jobs are now processed using it.

    Before we went live with the new release, we tested by processing an entire day of iOS builds. They executed cleanly, with the same results as Xcode 11.7. We don’t anticipate any problems for you with the new release, but please let is know if you spot anything.

    The latest version of Xcode supported by PhoneGap Build is 9.2.

    What’s New in Xcode 12

    Xcode 12 supports developing apps for iOS 14, iPadOS 14, tvOS 14, watchOS 7, macOS 10.16. Xcode 12 supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12 requires a Mac running macOS Mojave 10.15.4 or later.

    VoltBuilder provides a high level interface to Xcode, so you don’t have get involved with its installation, complexity and features. We run it on servers with all the latest Apple software, continuously updated.

    New and improved features in XCode 12 include Universal apps (including Apple Silicon), templates, testing and UI changes. Most importantly, it has support for iOS 14. There is more information here.

    What’s New in iOS 14

    iOS 14 is required for the new devices announced Sep 15, 2020, including a new iPad Air an Watch 6. It is also a free update for existing iOS devices. We expect most iOS users to be on the new OS with a month or two.

    The builds you make with VoltBuilder will conform to Apple’s latest guidelines for security and App Store approval.

    New and improved features in iOS 14 include App Clips, CarPlay, Car keys, Home screen, Widgets,App Library, Compact UI, Search and Siri. There more information on the features and supported devices in this article.

  • On September 14, 2020, the VoltBuilder server went down for several hours. The purpose of this document is to clarify what happened and what we are doing to make sure it doesn’t happen again.

    It’s usual in these cases that there isn’t a single failure - one problem uncovers the next and so on. We used this failure to see where other weaknesses might exist in our processes.

    The root cause was the main build server running out of space. While we have jobs in place to clear app data soon after builds are completed we found that one of our build tools was caching intermediate build products. We’ve improved our existing clean-up process to include the cached files. We’re also more closely monitoring the free space on the build server in case another anomaly crops up.

    Generally resolving the space issue would have solved the problem, but in this case we continued to see a number of problems with the main build server. Further investigation showed that we were experiencing a localized DNS outage. In this particular case it appears that when the host ran out of space, the network adapter settings were somehow corrupted, leaving the main build server able to access the network, but unable to resolve any DNS names. Resetting the network interface resolved this issue.

    Once the DNS issue was resolved we were able to get our build infrastructure back to building apps. No submissions were lost during this time, though we did have a bit of a backlog to work through. It took about an hour: no jobs were lost.

    Over the course of dealing with this outage we discovered a few other changes we’re implementing to keep VoltBuilder running smoothly and consistently. These include:

    • Making our network retry code more resilient so we can deal with a larger variety of outages, should they occur.
    • Fixing some minor bugs in our build status checking logic so that longer than average build times don’t cause unnecessary network traffic.
    • Continuing to enhance and improve out monitoring and notification so that our engineers are notified of any system anomalies so they can be resolved quickly and efficiently.

    In order to make our systems resilient against such outages we will continue to expand our server infrastructure.

    We are very sorry for the inconvenience this issue caused.

  • VoltBuilder API

    12 Sep 2020

    The VoltBuilder API lets you submit jobs to VoltBuilder from an app.

    Possible uses are:

    • Submit jobs to VoltBuilder as part of a larger build process
    • Submit both Android and iOS jobs as one operation
    • Monitor completion status of jobs
    • Complex builds with multiple variations of configs, etc.

    Complete documentation is here: https://volt.build/docs/api-spec.html

    The documentation gives samples for

    • Node + Request
    • Python + Python3
    • Shell + Curl

    If you have questions or need more information, please let us know.

    Step by Step

    The overall implementation is very simple. Use your credentials to get a token, then use that to make your request.

    1. Get your API Credentials for authentication.

    Get these from VoltBuilder’s Pricing page. Log in, then click on Copy API Credentials to Clipboard. You’ll need to be on the Pro Plan to do this.

    copyAPICredentials

    It will be a string like 895ba4ff-ea4f-4238-8cd3-ea36ef8b7e1d:3oTBJ1tXrxdsH0flN6BHf5UNGRg9+lh9. The part before the colon is the client ID, and the part after the colon is the secret (e.g. client_id:secret).

    You can use this credential for as long as you like - it does not expire. You can request additional credentials from the Pricing page if you need them. If your client secret is compromised or exposed in some way, contact support to remove your credential or reset your secret.

    2. Request an access_token

    Split your credential into a client_id and client_secret and put them in the appropriate request fields.

    Here’s Node code to do this. Other samples are here.

    const request = require("request");
    
    const options = {
      method: "POST",
      url: "https://api.volt.build/v1/authenticate",
      form: {
        grant_type: "client_credentials",
        client_id: "895ba4ff-ea4f-4238-8cd3-ea36ef8b7e1d",
        client_secret: "3oTBJ1tXrxdsH0flN6BHf5UNGRg9+lh9",
      },
    };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    

    Here is what gets returned:

    {
      "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
      "token_type": "bearer",
      "expires_in": 3600
    }
    

    3. Submit an app to VoltBuilder

    Put the access_token you got in step 2 into the authorization property of the submit request. Notice the word Bearer needs to be part of that string. An access_token is reusable but it expires after one hour. It’s always a good idea to verify your access_token is not expired before attempting to use it.

    const fs = require("fs");
    const request = require("request");
    
    const options = {
      method: "POST",
      url: "https://api.volt.build/v1/app",
      headers: {
        authorization:
          "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
      },
      formData: {
        platform: "ios",
        app: {
          value: fs.createReadStream("app.zip"),
          options: { contentType: "application/zip" },
        },
      },
    };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    

    If all goes well, the API will return a status of 202. Then you can check the status of the build using the API.

    4. Checking build status

    Once you’ve submitted a build you can check the status of it by using the following code:

    const request = require("request");
    
    const options = {
      method: "GET",
      url: "https://api.volt.build/v1/app",
      headers: {
        authorization:
          "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
      },
    };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    

    Here is what gets returned:

    {
      "status": "Completed",
      "timestamp": 1599670881,
      "name": "MyApp",
      "links": {
        "app": "https://link/to/your/app",
        "log": "https://link/to/your/build/log",
        "qrcode": "https://link/to/your/qrcode"
      }
    }
    

    We’re here to help!

    We hope this API will be a welcome addition to VoltBuilder. If we can help in any way, please reach out. We’re excited to see what you can build with VoltBuilder!

    Interested in a free trial? Sign up today!

  • While UIWebView has been deprecated by Apple and should not be used anymore, there are circumstances where an update to an existing app needs to be done.

    Apple will not allow this to be done for long, so this method will not work forever.

    Two lines need to be in your config.xml file:

      <plugin name="cordova-plugin-uiwebview-engine" source="npm" />
      <engine name="ios" spec="5.1.1" />
    

    The first line tells VoltBuilder to load UiWebView. (You may have this line already)

    The second tells VoltBuilder to use the old build engine, instead of the default.

    You will want to remove these two lines as soon as possible.

  • VoltBuilder is designed to be a modern implementation of PhoneGap Build. We’ve tried to make it as easy as possible to bring your PhoneGap projects over.

    There is a tutorial and a video.

    Here are a few tips:

    • Both PhoneGap and VoltBuilder use the Apache Cordova libraries. While it’s been a while since PhoneGap has updated their stuff, Apache Cordova has been steadily improving. You may have some changes to keep up with the new features of Apache Cordova.

    • Android and iOS have also been evolving steadily. Once again, PhoneGap has not kept up. You may need to make changes to your project to keep up with Google and Apple’s new requirements.

    • PhoneGap keeps your entire project on their server permanently. Source code, certificates, everything. With VoltBuilder, you upload your code and certificates each time. They get deleted as soon as the job is successfully processed.

    • You upload your project as a zip file for both PhoneGap and VoltBuilder. In VoltBuilder, your certificates are included (in a folder named certificates). There is also a new file called voltbuilder.json which has the names of the certificates and their passwords. Both of these are in the zip file.

    • Check the documentation on voltbuilder.json for more information

    • Over the years, the project format for PhoneGap gradually changed. A couple years ago, Cordova standardized the format. If you have an older PhoneGap project, you may need to move some folders and files around. Here’s what your project directory should look like:

    Project Root
    ├-- config.xml
    ├-- certificates
    │   ├-- android.keystore
    │   ├-- development.mobileprovision
    │   ├-- distribution.mobileprovision
    │   ├-- ios_development.p12
    │   └-- ios_distribution.p12
    ├-- merges (optional)
    │   ├-- android
    │   └-- ios
    ├-- res (optional)
    │   ├-- android
    │   └-- ios
    ├-- voltbuilder.json
    └-- www
        ├-- css
        ├-- images
        ├-- index.html
        └-- js
    
    • Google now requires projects be built using Android SDK 29. VoltBuilder does this by default. (PhoneGap is unable to do so at all). You may lose the ability to run your app on some older devices as a result.

    • Apple now requires projects be built using XCode 11.6 (PhoneGap can’t do this) to be accepted in the store. VoltBuilder does this by default. There are also some changes involving UIWebView and permissions. The resulting project will run on iOS 11 and above.

    • VoltBuilder has various plans. The Free Plan lets you build Android Debug executables using core plugins. There are monthly Indy, Pro and Enterprise plans depending on your needs. Nearly all plugins listed on npmjs.com will work. If you need one which is not yet supported, it will usually be added within a day.

    • Want more tips? Check out Tips for PhoneGap users.

    Got questions? Visit our forum.

  • VoltBuilder always uses the current default version of the Apache Cordova libraries. However, you can override this to use a different version as needed.

    First, to see what version VoltBuilder is currently using, look in the log. You’ll see the platforms, plugins, Apache Cordova and Xcode (if you’re building for iOS) versions.

    Cordova Packages:
    
        cli: 10.0.0
            common: 4.0.2
            create: 3.0.0
            lib: 10.0.0
                common: 4.0.2
                fetch: 3.0.0
                serve: 4.0.0
    
    Project Installed Platforms:
    
        ios: 6.1.1
    
    Project Installed Plugins:
    
        cordova-plugin-camera: 4.1.0
        cordova-plugin-device: 2.0.3
        cordova-plugin-dialogs: 2.0.2
        cordova-plugin-geolocation: 4.0.2
        cordova-plugin-native-spinner: 1.1.3
        cordova-plugin-printer: 0.8.0
        cordova-plugin-safariviewcontroller: 1.6.0
        cordova-plugin-screen-orientation: 3.0.2
        cordova-plugin-statusbar: 2.4.3
        cordova-plugin-uniquedeviceid: 1.3.2
        cordova-sqlite-evcore-extbuild-free: 0.12.1
    
    Environment:
    
        OS: macOS Catalina 10.15.6 (19G73) (darwin 19.6.0) x64
        Node: v12.18.3
        npm: 6.14.7
    
    ios Environment:
    
        xcodebuild:
    Xcode 11.6
    Build version 11E708
    

    Notice that it’s using ios 6.1.1 as the platform. That’s the current one.

    You can specify a different one. For example, this uses the previous one: (you don’t want to do this: your app will probably not be accepted by Apple)

    <engine name="ios" spec="5.1.1" />
    

    Similarly, to use another version of Android, add this line to your config.xml:

    <engine name="android" spec="9.0.0" />
    

    Apache Cordova Android 9.0.0 was released on Jun 29, 2020. More info here: https://cordova.apache.org/announcements/2020/06/29/cordova-android-9.0.0.html

  • We now have a video about VoltBuilder. It shows how to create simple project, upload to VoltBbuilder, then run on a device.

    Watch it here:

  • We’ve got a Twitter account!

    Follow it to get the latest news about VoltBuilder: updates, new docs, enhanced features.

    It’s the best way to keep up the the latest news:

    We’re at @voltbuilder.

  • After a successful build, you will now get a View Log button. Click on it to open the log in a new window.

    If it’s unsuccessful, you will get just the View Log button.

    https://forum.volt.build/t/logging-is-now-visible/32

  • VoltBuilder Beta News

    05 Jun 2020

    We just pushed an update to VoltBuilder. It has a couple of important changes.

    The VoltBuilder Upload page is now https://volt.build/upload

    We now whitelist all plugins. We’ve built up a list of plugins we think can be trusted. Let me know if you have any we can add.

  • Build great apps powered by open web standards. Use your existing web dev skills, frameworks and tools to create native apps.

    Store-ready apps for Android and iOS are ready in minutes.

    Nothing to install. Simply zip your files and submit them to VoltBuilder.

    When the build completes, you’ll get a QR code you can scan with your phone to install your app.