SQLite WASM - iOS/Android

I have checked the Libraries: SQLite WASM so I can test the app in the browser but I use <plugin name="cordova-sqlite-evcore-extbuild-free" /> when I build the app for iOS and Android with VoltBuilder.

If there something I can put in the config to tell the build process NOT to include “SQLite WASM” when building for native Android / iOS with VoltBuilder?

The reason for this is in case I forget to uncheck SQLite WASM before building for iOS/Android with VoltBuilder.

This is a new issue, starting with 9.0.2. We’ll be sure to resolve this in the next build.

I use cordova-sqlite-storage.

What do I need to do differently? My iOS and Android Native Apps stopped working when I upgraded to Version 9.

Thank you

1 Like

We’ll test this out - I think I know what might have happened.

Are there any messages on the Remote Console?

@Warren_Sundet - thank you for sending me your app. I’m able to build and run it. There are no errors on the Remote Console. What problem should I be seeing?

There was an error when you run the native app and try to enter the initial 4-digit code. Same error in the browser.

You can run it in the browser too?

No, I am not seeing an error.

What error are you seeing? Is there anything on the Remote Console?

When I run in the browser, I do get an error. Are you using SQLimport or SQLExport? They are not supported in AS9 yet.

Here’s more info.

AppStudio has been released. When building with VoltBuilder, the Sqlite.js and Sqlite.WASM files are no longer included. Please use Cordova Plugins for SQLite on native apps.

Hi George,

I don’t get this I’m sorry. When I try a native SQLite app build from AppStudio I tried unchecking the WASM libraries checkbox and reverting to the Cordova plugin. Didn’t work on IOS. Keeping the WASM Library checked works fine. So I probably won’t change :slight_smile:


Correct - SQL WASM should be checked. It will include the WASM code for desktop builds, but not for VoltBuilder.

1 Like


Thank you for all the work you and your group do to facilitate app development for all of us. Your development environment is amazing!

My app has been on both app stores for over a year. I have developed a major enhancement that I would like to release soon. I want to make sure it has the latest code from every perspective, for both Apple and Android. My app has 2 SQLite databases and uses the cordova-sqlite-storage plugin.

It is not clear to me how the WASM issue affects me with APPStudio 9.x. As you would expect, I usually do most of the debugging using the browser and Voltbuilder to create the native app.

My questions are:
Do I need to include the WASM library as part of the Voltbuilder build or is its inclusion simply to allow me to do debugging in the browser?

Given that I can’t run my app in the browser in AppStudio 9.x, is it acceptable to do the debugging on a second computer with AppStudio 8.5.x and then use 9.x to do the Final Build?

An unrelated question: When an individual uses automated cloud backup on iOS, does a restore to a new phone restore each app from the backup or does it reinstall the app from the app store. I have a user who had Verizon upgrade his phone, using an existing cloud backup. When he tried to use my app on his new phone, a new install had been done and his data was gone. My app stores ALL the data on the phone in a SQLite database, it does not use a server.

I appreciate your clarification on these matters. I do not desire to release a major app upgrade and then in a short period of time find that I need to do another release.

Thank you for all your good work,

The upcoming deprecation of SQLite in browsers will not affect apps built in VoltBuilder - cordova-sqlite-storage has everything that is needed to run SQLite. No need to include SQLite WASM.

The upcoming SQLite issue will affect all AppStudio users, not just those on AppStudio 9. We’ve added SQLite WASM support to AppStudio 9, so you’ll continue to be able to use SQLite if you’re on the current AppStudio. Using AppStudio 8.5 will not help you.

We’re working on further improvements for SQLite. The current workaround will continue to work until May 28th, 2024, when Chrome is scheduled to have another update affecting this.

When I looked at a few weeks ago, there were still some gaps in the browser tools and examples. We will be revisiting this in plenty of time - I expect it will get easier to solve.

I do not know exactly how iCloud handles restoring application files, though I’m surprised it didn’t restore them. It’s probably worth doing some testing. If a Verizon tech did the upgrade, it’s also possible it was done improperly.

For native apps (Android/iOS) I use the cordova-sqlite-evcore-extbuild-free plugin.

For testing in the Chrome Browser I now have to check the SQLite (WASM) in Libraries, as Chrome no longer supports SQLite.

When I run the app in the Chrome browser I keep getting this error in the console “SQLite3Error: SQLITE_MISUSE: Invalid argument for BEGIN qualifier.”

Has any code changed for WASM when compared to the old Chrome built-in SQLite?

Yes, it’s a completely different animal under the covers.

What operation gives you that error?

    function (transaction) {
        "CREATE TABLE IF NOT EXISTS locations (location_id INTEGER PRIMARY KEY, location_name, location_address, location_deleted INTEGER , location_created DATETIME DEFAULT CURRENT_TIMESTAMP)"

Is this snippet in your code or in AppStudio?

its my code, I’ve emailed a screenshot.

db.transaction is no longer supported. It’s not a documented feature of AppStudio, though it was part of WebSQL.

AppStudio expects you to use SQL(), which has been updated to SQLite WASM. Can you convert your code to use that?