v3.2.1 to v4.0.0
Runtime compatibility
Appfigurate app version 4.0.0 is backwardly runtime compatible with apps and app extensions linked against earlier versions of Appfigurate Library.
iOS source compatibility
Appfigurate Library version 4.0.0 requires the following source code changes to your app:
The
allowInvalidSignaturesmethod must be overridden, as it no longer provides default behaviour. You must remove any calls tosuper, otherwise anAppfigurateLibraryExceptionwill be thrown.The
resetmethod must be overridden. You must remove any calls tosuper, otherwise anAppfigurateLibraryExceptionwill be thrown.The
publicKeymethod must be overridden. You must remove any calls tosuper, otherwise anAppfigurateLibraryExceptionwill be thrown.A new
CONFIGURATIONfunction has been added to the Swift class - see Output Source Code Snippets.A new
CONFIGURATIONmacro has been added to the Objective-C header - see Output Source Code Snippets.The
customIdentifiermethod has been removed (deprecated in 3.0.0).Default values of
NSString/Stringproperties are now an empty string""instead ofnull. You should continue to set a default value in theresetmethod for your properties.Appfigurate no longer supports having an iOS and watchOS app using different public/private key pairs. Instead the watchOS app must be changed to use the iOS public/private key pair (in Appfigurate, remove your existing watchOS app, then duplicate the iOS app as a watchOS app). The
ENCRYPTED_STRING_IOS_WATCHOSfunction/macro has been removed, replace withENCRYPTED_STRINGfunction/macro instead.
Before migration (abbreviated Swift example shown)
@EncryptedStringPropertyListEdit(regex: "", description: "encrypted String - textfield, customizable list", encrypted: ENCRYPTED(), restart: false, values: [
"Red":ENCRYPTED_STRING_IOS_WATCHOS("r","3/iZ...3ysB","dHRf...reoB"),
"Green":ENCRYPTED_STRING_IOS_WATCHOS("g","PkQf...fdgB","B2l4...XOYB"),
"Blue":ENCRYPTED_STRING_IOS_WATCHOS("b","jaIx...7poB","hksx...R5IB")])
var encrypted_string_Textfield_List: String
override func publicKey() -> String {
#if os(iOS)
// 41 36 87 71 0D 05
return "-----BEGIN PUBLIC KEY-----\n" +
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4TZnKfGeXttN7Rr3eiAZ\n" +
...
"ywIDAQAB\n" +
"-----END PUBLIC KEY-----\n"
#elseif os(watchOS)
// 0C 96 66 39 0C 04
return "-----BEGIN PUBLIC KEY-----\n" +
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArxgy6NU0IsJxLSZqcZzJ\n" +
...
"QQIDAQAB\n" +
"-----END PUBLIC KEY-----\n"
#endif
}After migration (abbreviated Swift example shown)
Property list keys may no longer contain
{and}characters, these characters are now used for specifying environment tags.Cocoapods and Carthage are no longer supported, move to Swift Package Manager instead. The existing Cocoapods repo remains at 3.2.1 and will not be updated.
Android source compatibility
Appfigurate Library version 4.0.0 requires the following source code changes to your app:
The
allowInvalidSignaturesmethod must be overridden, as it no longer provides default behaviour and is now markedabstract.The
resetmethod must be overridden, and is now marked abstract. You must remove any calls tosuper.reset().A new
CONFIGURATIONfunction has been added to the Kotlin and Java classes - see Output Source Code Snippets.Default values of
Stringproperties are now an empty string""instead ofnull. You should continue to set a default value in theresetmethod for your properties.Property list keys may no longer contain
{and}characters, these characters are now used for specifying environment tags.
Last updated