Replies: 7 comments 15 replies
-
Hello @ayoy. May I ask you, one of the authors of https://github.com/duckduckgo/GRDB.swift (the GRDB fork that ships a pre-built XCFramework of GRDB + SQLCipher), if you can imagine anything that could be done from here, the main repository? |
Beta Was this translation helpful? Give feedback.
-
Hello @michaelkirk and @charlesmchen. We had conversation about GRDB in the Signal app in the past. Signal currently uses GRDB+SQLCipher through CocoaPods, so I thought you'd be happy to know about the situation. I'm curious about your opinions. |
Beta Was this translation helpful? Give feedback.
-
We use GRDB + SQLCipher with a small script that wraps CocoaPods to generate XCFrameworks, which I'd love to do away with. Unfortunately I don't have any good ideas off the top of my head as to how you could accomplish that with SQLCipher not supporting SPM themselves, and assuming you had that - without forcing it to be a dependency for everyone regardless of whether they want it or not, I guess for the latter you could create a GRDB-SQLCipher wrapper package that depends on both, but without a way to pass configuration , compiler directives or anything really between packages it feels pretty difficult. If you do include it in the main package you can probably usage the We do also use data protection but its not something you can rely on in a number of situations — such as when the user disables their iPhone's passcode. Yes the user is compromising their own information security so its their own fault, but we would likely still suffer reputation damage if that happened (I work for a large bank), so we want to make sure we have full control over the encryption of the database. Hope that context helps some. |
Beta Was this translation helpful? Give feedback.
-
It should be possible for applications to keep on using GRDB+SQLCipher with CocoaPods even if it is impossible to publish a new version of the GRDB pod, by declaring a dependency on a branch: # Same as pod 'GRDB.swift/SQLCipher', '~> 6.0'
# We depend on a branch due to https://github.com/CocoaPods/CocoaPods/issues/11839
# that prevents GRDB from publishing tagged releases on cocoapods.org.
pod 'GRDB.swift/SQLCipher', git: 'https://github.com/groue/GRDB.swift.git', branch: 'GRDB6'
pod 'SQLCipher', '~> 4.0' The GRDB6 will only ever point to tagged releases. For example, on 2024/03/24, GRDB6 is identical to v6.26.0. The same technique will be available for GRDB7 (on the GRDB7 branch - which is currently a work in progress and is NOT production-ready). |
Beta Was this translation helpful? Give feedback.
-
Hello! I have a question: When I rely on a sqlcipher fork that supports spm through spm (such as https://github.com/Tencent/sqlcipher/blob/v1.4.4/Package.swift), can GRDB's encryption function be used normally? (Current version, and upcoming GRDB7) |
Beta Was this translation helpful? Give feedback.
-
Have you ever considered separating the SQLCipher-related code from GRDB's main repository ( As mentioned above, I tried to rely on the SQLCipher binary library, but there were many changes to be made. And it would be very troublesome to synchronize GRDB upstream updates in the future. If the SQLCipher-related functions are separated from GRDB, then users including me can rely on GRDB and the SQLCipher binary library to make their own component library, which is more flexible. And the amount of SQLCipher-related function code is not large, which is convenient to rely on in the form of source code (or other methods) in this secondary development component. Unless there are special circumstances, users do not need to care about GRDB updates, and can use the latest version of GRDB in the project without updating this secondary development component. |
Beta Was this translation helpful? Give feedback.
-
@rakuyoMo We've updated DuckDuckGo's awesome fork to use latest GRDB 7.0.0-beta.6, feel free to use! |
Beta Was this translation helpful? Give feedback.
-
Hello all,
GRDB 7, presently in the making, will drop CocoaPods support. 💔
Some folks will be able to migrate to SPM. But folks who use GRDB + SQLCipher will be stuck with GRDB 6.
This sad situation is a conjunction of several blockers:
I will not remove the SQLCipher and CocoaPods support from the repository, because the CocoaPods blocker might be resolved one day.
I have a question for the community: do you have any advice or experience that could help unblocking the situation and allow SQLCipher users to enjoy the upcoming GRDB 7?
Also, if you are using SQLCipher and are concerned with this announcement, did you consider using data protection instead?
Please share your experiences below 🙏
Beta Was this translation helpful? Give feedback.
All reactions