Is there a way to disable automatic extraction when using String Catalog?
The following code block invokes an initializer with LocalizedStringKey and not with StringProtocol.
Text("Hello World!")
Text has a workaround for this in a form of init(verbatim:). But the same functionality doesn't exist for other UI elements—Button, TextField, etc.
I was looking for more global solution. But using String("Hello World!") or "Hello World!".toString everywhere seems excessive.
Yes you can do so by updating the following build settings in your target:
LOCALIZED_STRING_SWIFTUI_SUPPORT): NOSWIFT_EMIT_LOC_STRINGS): NO💡 Compiler extracts LocalizedStringKey from some SwiftUI initializers.
✅ You can force it use the String overload instead to prevent automatic extraction:
Text(String("Hello World!"))
Button(String("Goodbye World!")) { }
// or
let string = "What in the World!"
Text(string)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With