Signal iOS v2.46 is now available as a public alpha, and we could really use your help.

Alpha, not beta?

Although our beta releases are rarely perfect, and our beta testers are always brave, Signal iOS v2.46 includes a big database migration. That’s what we need your help testing, but the risk of instability or data loss is higher than it would be for a normal beta.

What’s up with the migration?

Signal iOS v2.46 still uses SQLCipher as its underlying database. That isn’t changing at all.

In version 2.46, we are switching from the Objective-C-based YapDatabase library to the Swift-based GRDB library. Because these two libraries use different approaches to store and abstract data within SQLCipher, a larger-than-normal database migration needs to take place.

During this process, information is migrated from the legacy schema to the new GRDB schema. We have done our best to optimize the amount of time this migration takes so that even users on older iPhones with large databases shouldn’t have to wait very long. We have also tested it extensively on our own collection of phones, but there is no substitute for real-world usage.

Hopefully that’s where you come in!

Why are we switching to GRDB?

GRDB makes it easier to interact with SQLCipher while still providing a lot of helpful functionality for common database operations. This will lead to improved performance and a better overall experience in the future. For example, full-text search is faster with the GRDB library than it was with YapDatabase, particularly for users with very large databases.

What could possibly go wrong for me as an alpha tester?

You could lose your Signal message history on your phone. – Although we have done a lot of internal pre-alpha testing (and none of us have lost any messages so far) it’s possible that you’ll help us catch new bugs that affect the migration process. If the alpha is too buggy for you to use while we work on fixing these issues, you may need to reinstall Signal and start from scratch.

Signal could crash often or be less stable. – We’re running v2.46 every day on our primary devices, but this is definitely an alpha release. It will have bugs. You’ll be helping us find them, but it could be a little frustrating.

Will I be stuck on the alpha forever?

No. We are committed to doing everything we can to make this a positive experience for the alpha testers who help us get this version ready for the general public. After the release has been stabilized, you can install the production version from the App Store or re-join the beta group if you want to continue testing beta releases.

However, your database will not be compatible with older versions of Signal after you go through the migration process. If you want to switch back to a stable release during the alpha testing period, you will need to delete and reinstall Signal.

I want to help! How do I get started?

You are the best. Seriously.

Join the Signal alpha group on TestFlight. After the alpha is complete, you can rejoin the beta group here. Install Signal v2.46 from TestFlight. Launch v2.46 and wait for the migration process to complete. Use Signal as you normally would and let us know how it goes. Please describe the bugs that you experience in detail. Including a debug log in your bug report will make it easier for us to track down any issues.

We are truly grateful for your assistance during this testing process and for your ongoing support of Signal. Thank you!