1<!DOCTYPE html> 2<html lang="en"><head> 3 <meta charset="utf-8">
3<script src="/assets/js/sentry.browser.min.js"></script>
vendor: 1 bytes, line 3
3
4<script src="/assets/js/sentry-scrubber.js"></script>
vendor: 1 bytes, line 4
4
5<script> 6 const getEventUserAgent = (event) => { 7 const headers = event?.request?.headers; 8 const headerEntries = Array.isArray(headers) 9 ? headers 10 : Object.entries(headers || {}).map(([name, value]) => 11 Array.isArray(value) && value.length === 2 ? value : [name, value], 12 ); 13 const userAgent = headerEntries.find( 14 ([name]) => 15 typeof name === "string" && name.toLowerCase() === "user-agent", 16 )?.[1]; 17 18 return typeof userAgent === "string" ? userAgent : null; 19 }; 20 21 const isCrawler404Event = (event) => { 22 if (!document.querySelector('[data-page-type="404"]')) return false; 23 24 return Sentry.isbot(getEventUserAgent(event)); 25 }; 26 27 const isBotAuth0SdkUnavailableEvent = (event) => 28 event?.message === "[auth0] auth0 SDK unavailable" && 29 Sentry.isbot(getEventUserAgent(event)); 30 31 const voltSentryBeforeSend = (event, hint) => { 32 const scrubbedEvent = window.voltSentryScrubber.scrubSentryEvent(event, hint); 33 34 // Auth0 diagnostics from crawlers cannot represent an interactive login failure. 35 if (isBotAuth0SdkUnavailableEvent(scrubbedEvent)) return null; 36 37 // Crawlers commonly execute the shared 404 page; do not report its diagnostics. 38 if (isCrawler404Event(scrubbedEvent)) return null; 39 40 const frames = scrubbedEvent?.exception?.values?.flatMap((value) => 41 Array.isArray(value?.stacktrace?.frames) ? value.stacktrace.frames : [], 42 ); 43 44 // Drop third-party browser-extension crashes so first-party app issues stay actionable. 45 if ( 46 frames?.some( 47 (frame) => 48 typeof frame?.filename === "string" && 49 frame.filename.startsWith("chrome-extension://"), 50 ) 51 ) { 52 return null; 53 } 54 55 // Drop CDP-injected automation/bot script errors (e.g. ad-verification crawlers): no real 56 // source file anywhere in the trace, plus the "UtilityScript" marker CDP's Runtime.evaluate leaves behind. 57 if ( 58 frames?.length && 59 frames.every( 60 (frame) => !frame?.filename || frame.filename === "<anonymous>", 61 ) && 62 frames.some( 63 (frame) => 64 typeof frame?.function === "string" && 65 frame.function.startsWith("UtilityScript"), 66 ) 67 ) { 68 return null; 69 } 70 71 return scrubbedEvent; 72 }; 73 74 Sentry.init({ 75 dsn: "https://[email protected]/26838", 76 environment: "production", 77 release: "voltbuilder-site@b22b5c152cb4afb41a2b88f449485991e0825ed2", 78 enableLogs: true, 79 ignoreErrors: [/disconnected port object/i], 80 integrations: (defaults) => 81 defaults 82 .filter((i) => i.name !== "BrowserSession") 83 .concat([ 84 Sentry.captureConsoleIntegration({ levels: ["error", "assert"] }), 85 Sentry.consoleLoggingIntegration({ 86 levels: ["warn"], 87 }), 88 ]), 89 beforeSend: voltSentryBeforeSend, 90 beforeSendLog: window.voltSentryScrubber.scrubSentryLog, 91 }); 92</script>
92 93<!-- Google Tag Manager --> 94
94<script>
vendor: 343 bytes, lines 94-98
94(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 95 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 96 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 97 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 98 })(window,document,'script','dataLayer','
98GTM-WH2BLBZ5
vendor: 6 bytes, lines 98-99
98'); 99
99</script>
99 100 <!-- End Google Tag Manager --> 101 <meta name="title" content="VoltBuilder"> 102 <meta name="robots" content="index, follow"> 103 <meta name="language" content="English"> 104 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 105 <meta name="viewport" content="width=device-width, initial-scale=1"> 106 107 <meta name="twitter:site" content="@voltbuilder"> 108 109 <meta name="twitter:description" content="This week, we added a feature that allows you to configure your release status when uploading your Android builds to Google Play. We also began a beta test to add support for using a custom Cordova..."> 110 111 <meta name="twitter:image" content='https://volt.build/assets/images/voltbuilder-1080.png'> 112 <meta name="twitter:image:alt" content="VoltBuilder Logo"> 113 <meta property="og:image" content='https://volt.build/assets/images/voltbuilder-1200x630.png'> 114 <meta property="og:image:alt" content="VoltBuilder Logo"><!-- Begin Jekyll SEO tag v2.8.0 --> 115<title>Weekly Wrap-up: July 25, 2025 | VoltBuilder</title> 116<meta name="generator" content="Jekyll v3.10.0" /> 117<meta property="og:title" content="Weekly Wrap-up: July 25, 2025" /> 118<meta property="og:locale" content="en_US" /> 119<meta name="description" content="This week, we added a feature that allows you to configure your release status when uploading your Android builds to Google Play. We also began a beta test to add support for using a custom Cordova Android engine version 9.1.1." /> 120<meta property="og:description" content="This week, we added a feature that allows you to configure your release status when uploading your Android builds to Google Play. We also began a beta test to add support for using a custom Cordova Android engine version 9.1.1." /> 121<link rel="canonical" href="https://volt.build/news/2025/07/25/weekly-wrap-up.html" /> 122<meta property="og:url" content="https://volt.build/news/2025/07/25/weekly-wrap-up.html" /> 123<meta property="og:site_name" content="VoltBuilder" /> 124<meta property="og:type" content="article" /> 125<meta property="article:published_time" content="2025-07-25T10:00:00-04:00" /> 126<meta name="twitter:card" content="summary" /> 127<meta property="twitter:title" content="Weekly Wrap-up: July 25, 2025" />
128<script type="application/ld+json"> 129{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2025-07-25T10:00:00-04:00","datePublished":"2025-07-25T10:00:00-04:00","description":"This week, we added a feature that allows you to configure your release status when uploading your Android builds to Google Play. We also began a beta test to add support for using a custom Cordova Android engine version 9.1.1.","headline":"Weekly Wrap-up: July 25, 2025","mainEntityOfPage":{"@type":"WebPage","@id":"https://volt.build/news/2025/07/25/weekly-wrap-up.html"},"url":"https://volt.build/news/2025/07/25/weekly-wrap-up.html"}</script>
129 130<!-- End Jekyll SEO tag --> 131<link 132 rel="stylesheet" 133 href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" 134 /> 135 <link 136 rel="stylesheet" 137 href="https://cdn.auth0.com/js/auth0-samples-theme/1.0/css/auth0-theme.min.css" 138 /> 139 <link href="https://fonts.googleapis.com/css?family=Raleway:700,500,400,300,400italic" rel="stylesheet" type="text/css"> 140 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css"> 141 <link rel="stylesheet" href="/assets/css/styles.css"/><link type="application/atom+xml" rel="alternate" href="https://volt.build/feed.xml" title="VoltBuilder" /><!-- VoltBuilder - Google tag (gtag.js) website GA4 property and Ads -->
vendor: 64 bytes, lines 141-142
141 142<script async src="https://www.googletagmanager.com/gtag/js?id=
142G-XPJQFDJ3PM
vendor: 12 bytes, line 142
142"></script>
143<script> 144
vendor: 134 bytes, lines 144-148
144window.dataLayer = window.dataLayer || []; 145 function gtag(){dataLayer.push(arguments);} 146 gtag('js', new Date()); 147 148 gtag('config', '
148G-XPJQFDJ3PM
vendor: 6 bytes, lines 148-149
148'); 149
149gtag('config', 'AW-1071252111'); 150</script>
vendor: 1 bytes, line 150
150
151<script src="/assets/js/google-analytics.js"></script>
151 152</head> 153<body id="body" class="vflex"><!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 153-154
153 154<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
154GTM-WH2BLBZ5
vendor: 86 bytes, lines 154-156
154" 155 height="0" width="0" style="display:none;visibility:hidden"></iframe> 156</noscript>
157<!-- End Google Tag Manager (noscript) -->
158<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
vendor: 1 bytes, line 158
158
159<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js"></script>
vendor: 1 bytes, line 159
159
160<script src="https://cdn.auth0.com/js/auth0-spa-js/1.9.0/auth0-spa-js.production.js"></script>
vendor: 1 bytes, line 160
160
161<script src="/assets/js/auth0.js"></script>
vendor: 1 bytes, line 161
161
162<script src="/assets/js/default.js"></script>
162 163 164<header class="site-header" role="banner"> 165 166 <div class="nav-top"><a class="site-title site-logo-left" rel="author" href="/">VoltBuilder</a><nav class="site-nav"> 167 <input type="checkbox" id="nav-trigger" class="nav-trigger" /> 168 <label for="nav-trigger"> 169 <span class="menu-icon"> 170 <svg viewBox="0 0 18 15" width="18px" height="15px"> 171 <path d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.032C17.335,0,18,0.665,18,1.484L18,1.484z M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.032C17.335,6.031,18,6.696,18,7.516L18,7.516z M18,13.516C18,14.335,17.335,15,16.516,15H1.484 C0.665,15,0,14.335,0,13.516l0,0c0-0.82,0.665-1.483,1.484-1.483h15.032C17.335,12.031,18,12.695,18,13.516L18,13.516z"/> 172 </svg> 173 </span> 174 </label> 175 176 <div class="trigger site-nav-bottom"> 177 178 179 <a class="page-link" href="/tutorial/"> 180 <i class="bi bi-lightning"></i> Tutorial 181 </a> 182 183 184 185 <a class="page-link" href="/blog/"> 186 <i class="bi bi-newspaper"></i> News 187 </a> 188 189 190 191 <a class="page-link" href="/docs/all/"> 192 <i class="bi bi-file-earmark-text"></i> Docs 193 </a> 194 195 196 197 <a class="page-link" href="/support/"> 198 <i class="bi bi-chat-right-text"></i> Support 199 </a> 200 201 202 203 <a class="page-link" href="/plan/"> 204 <i class="bi bi-tags"></i> Pricing 205 </a> 206 207 208 209 <a class="page-link" href="/upload/"> 210 <i class="bi bi-cloud-upload"></i> Upload 211 </a> 212 213 214 215 <div class="page-link search-link"> 216 <div id="search-icon"> 217 <i class="bi bi-search"></i> <span class="name">Search</span> 218 </div> 219 <div class="arrow-up"></div> 220 <div id="search-box-wrapper"> 221 <input type="search" id="search-box" class="searchbox" placeholder="Search" /> 222 <div class="search-button"><i class="bi bi-search"></i></div> 223 </div> 224 </div> 225 226 227 </div> 228 </nav><div id="divHeaderRight"> 229 <button id="btnLogin" class="btn btn-primary" hidden onclick="login()">Log In/​Sign Up</button> 230 <div id="btnLoggedUser" hidden> 231 <input type="checkbox" id="userTrigger" /> 232 <label for="userTrigger"> 233 <span id="loggedUserIcon"></span> 234 </label> 235 <div class="popup user-nav-bottom"> 236 <div class="row-user" id="loggedUserEmail"></div> 237 <a id="aPlan" href="/plan/">Plan Settings</a> 238 <a id="aKey" href="/getactivationcode/">Get Activation Code</a> 239 <a class="row-logout" onclick="logout()" href="#">Logout</a> 240 </div> 241 </div> 242 </div> 243 </div> 244 245 246 247 <div id="popupOverlay"></div> 248</header> 249
250<script src="/assets/js/header.js"></script>
250 251<div class="scrollable"> 252 253 <div class="contentPane"> 254 255 <article class="post"> 256 257 <h1>Weekly Wrap-up: July 25, 2025</h1> 258 259 <p>This week, we added a feature that allows you to configure your release status when uploading your Android builds to Google Play. We also began a beta test to add support for using a custom Cordova Android engine version 9.1.1.</p> 260 261<h2 id="set-your-own-release-status">Set Your Own Release Status</h2> 262 263<p>Now you can use the <code class="language-plaintext highlighter-rouge">googlePlayReleaseStatus</code> attribute in your <code class="language-plaintext highlighter-rouge">voltbuilder.json</code> file to configure your appâs release status. You can set your status to one of four accepted release statuses: <code class="language-plaintext highlighter-rouge">completed</code>, <code class="language-plaintext highlighter-rouge">draft</code>, <code class="language-plaintext highlighter-rouge">halted</code>, or <code class="language-plaintext highlighter-rouge">inProgress</code>. The default value is <code class="language-plaintext highlighter-rouge">completed</code>. If youâre not sure which status to use, you can review the status definitions in the <a href="https://developers.google.com/android-publisher/api-ref/rest/v3/edits.tracks#status" target="\_blank">Google Play Developer API Documentation</a>.</p> 264 265<p>Check out what Android (and iOS) build attributes you can add to your <code class="language-plaintext highlighter-rouge">voltbuilder.json</code> over in our project set-up documentation for <a href="/docs/set_up/#voltbuilderjson">Cordova</a> or <a href="/docs/set_up-capacitor/#voltbuilderjson">Capacitor</a>.</p> 266 267<h2 id="custom-cordova-android-engine-911---now-in-beta">Custom Cordova Android Engine 9.1.1 - Now in beta!</h2> 268 269<p>Weâre adding support for using a custom Cordova Android engine 9.1.1 - and this feature is currently in beta! If youâd like to get involved in the beta, <a href="mailto:[email protected]?subject=Custom%20Engine%209.1.1%20Beta">email [email protected]</a>!</p> 270 271<h2 id="wrapping-up">Wrapping Up</h2> 272 273<p>Weâre on the lookout for things we can do to make your experience on our site and using our build service better. If you have questions, feedback, or need support, drop us a line on our <a href="https://forum.volt.build/" target="\_blank">Support Forum</a> â weâll be happy to hear from you!</p> 274 275<p>Thatâs all for this week! Happy building!</p> 276<section class="repeat-news bleed"> 277 <h2>What VoltBuilder Does</h2> 278 279 <p>VoltBuilder converts your web projects into native Android and iOS apps. VoltBu
279ilder is a wrapper for Apache Cordova and Ionic Capacitor, so you can add native features to your apps via <a href="https://www.npmjs.com/search?q=cordova">Cordova</a> and <a href="https://www.npmjs.com/search?q=capacitor">Capacitor</a> plugins.</p> 280 281 <p>VoltBuilder's Key features:</p> 282 283 <ul> 284 <li> 285 <strong>Produces native executables</strong> — for easy testing & app store publishing. 286 </li> 287 <li> 288 <strong>Publish in minutes</strong> — VoltBuilder uploads directly to Google Play and the Apple App Store. 289 </li> 290 <li> 291 <strong>Easily generate certificates</strong> — <a href="/VoltSigner/">VoltSigner</a> makes Android and iOS certificates. No Mac needed! 292 </li> 293 <li> 294 <strong>Nothing to install</strong> — just <a href="/upload/">head to the Uploads page</a> to get building. 295 </li> 296 <li> 297 <strong>Nothing to store</strong> — we don't keep your passwords, certs, or code in our cloud. 298 </li> 299 <li> 300 <strong>Always up-to-date</strong> — we install and maintain the latest SDKs and tooling so you don't have to. 301 </li> 302 </ul> 303 304 <h2>How to Use VoltBuilder</h2> 305 306 <p>It's as simple as Upload, Download, Run. Done.</p> 307 308 <ol> 309 <li>Zip your web project.</li> 310 <li><a href="/upload/">Upload it</a> to our platform.</li> 311 <li>Download the native app or let us deploy it to stores.</li> 312 <li>Run it instantly via QR code or direct link for testing.</li> 313 </ol> 314 315 <h2>Ready to Build?</h2> 316 317 <p>Skip the native-dev hassle. <a href="/plan/">Sign up</a> and start your first build today!</p> 318</section></article> 319 320 </div><section class="join-newsletter"> 321 <form action="https://news.voltbuilder.com/subscribe" method="POST" accept-charset="utf-8"> 322 <div class="wrapper"> 323 <div> 324 <div class="title">Join Our Newsletter</div> 325 <div class="subtitle">Stay up to date on all of the latest news and updates for VoltBu
325ilder</div> 326 </div> 327 <div class="signUpBtnWrapper"> 328 <input type="email" name="email" id="txtJoinNewsletterEmail" placeholder="Enter your email" /> 329 <button type="submit" id="btnJoinNewsletterSignUp">Sign Up!</button> 330 <div style="display:none;"> 331 <input type="text" name="hp" id="hp"/> 332 </div> 333 <input type="hidden" name="list" value="r4lP5uG9kzmIqTQ9c8tqVA"/> 334 <input type="hidden" name="subform" value="yes"/> 335 </div> 336 </div> 337 </form> 338</section> 339<footer class="site-footer h-card"> 340 <div class="wrapper"> 341 342 <h2 class="footer-heading">VoltBuilder</h2> 343 344 <div class="footer-col-wrapper flex-left-start"> 345 <div class="footer-column"> 346 <a href="/blog/">News</a><br> 347 <a href="https://status.volt.build/">Server Status</a> 348 <div class="divider"></div> 349 </div> 350 351 <div class="footer-column"> 352 <div class="follow-links"> 353 <p class="follow-p">Follow Us:</p> 354 <div class="follow-icons"> 355 356 <a href="https://github.com/voltbuilder" target="_blank" rel="noopener noreferrer" class="social-icon"> 357 <img src="/assets/images/github.svg" alt="GitHub icon"></a> 358 359 <a href="https://mastodon.social/@voltbuilder" target="_blank" rel="noopener noreferrer" class="social-icon"> 360 <img src="/assets/images/mastodon.svg" alt="Mastodon icon"></a> 361 362 <a href="https://bsky.app/profile/voltbuilder.bsky.social" target="_blank" rel="noopener noreferrer" class="social-icon"> 363 <img src="/assets/images/bluesky.svg" alt="Bluesky icon"></a> 364 365 </div> 366 </div><a class="u-email" href="mailto:[email protected]">[email protected]</a><br><div class="divider"></div> 367 </div> 368 369 <div class="footer-column"> 370 <a href="/privacy">Privacy Policy</a><br> 371 <a href="/TOS">Terms of Service</a><br> 372 </div> 373 374 <div class="footer-column">App Builds Made Simple!</div> 375 </div> 376 377 <div class="margin-top txt-small"> 378 © <span class="copyright-year">2026</span> NS Basic LLC. <span class="nowrap">All rights reserved.</span> 379 </div> 380 </div> 381 382</footer> 383</div> 384 385 </body> 386 387</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.