Encrypted String
Last updated
Last updated
The default value of an encrypted NSString
is nil. You must change the default value of the property by assigning a new plain text value in an overridden reset
method.
This page describes encrypted strings. Appfigurate also supports plain textual strings.
Allows a string property to be changed in Appfigurate by allowing the user to select from a predefined list of valid choices. The user can customize the list adding by additional values using a text field and an optional regular expression validating input.
Prototype
Example
ENCRYPTED_STRING
macroFor an iOS app where the APLConfiguration
subclass has one public key use the ENCRYPTED_STRING
macro for each list item in the ENCRYPTED_STRING_PROPERTY_LIST_EDIT
.
The first parameter of the ENCRYPTED_STRING
macro is the plain text, and will be used by DEBUG
builds. The second parameter of the ENCRYPTED_STRING
macro is the ciphertext, and will be used by RELEASE
builds. To generate the ciphertext, use the AppfigurateSE app or source editor extension for Xcode.
Example
ENCRYPTED_STRING_IOS_WATCHOS
macroFor an iOS and watchOS app where the APLConfiguration
subclass has two public keys, use the ENCRYPTED_STRING_IOS_WATCHOS
macro for each list item in the ENCRYPTED_STRING_PROPERTY_LIST_EDIT
macro.
The first parameter of the ENCRYPTED_STRING
macro is the plain text, and will be used by DEBUG
builds. The second and third parameters of the ENCRYPTED_STRING
macro are the ciphertext for iOS and watchOS apps, and will be used by RELEASE
builds. To generate the ciphertext, use the AppfigurateSE app or source editor extension for Xcode.
Example
Using ENCRYPTED_STRING
and ENCRYPTED_STRING_IOS_WATCHOS
guarantees that the plaintext of the list item values will not be included in the resulting application binary, only the ciphertext. The ciphertext can only be decrypted by Appfigurate using the correct private key.
You can verify that the plain text is not included in the RELEASE application binary using the macOS strings
tool as follows:
Terminal
It is best practice to use ENCRYPTED_STRING
and ENCRYPTED_STRING_IOS_WATCHOS
to encrypt sensitive information such as server urls (e.g. internal test environments), rather than expose them as plain text.
Using a combination of BuildConfig.ENCRYPTED
and ProGuard guarantees that the plaintext of the list item values will not be included in the resulting application binary, only the ciphertext. The ciphertext can only be decrypted by Appfigurate using the correct private key.
You can verify that the plaintext is not included in the RELEASE build variant APK or AAB using the macOS strings tool as follows:
Terminal
The dex2jar
tool can be installed using brew.
Ensure you have read the encryption best practices for iOS and watchOS, and Android sections.
Ensure you have read the encryption best practices for iOS and watchOS, and Android sections.