Comment on page

v1.4.0 to v2.2.0

Runtime compatibility

Appfigurate app 2.2.0 is backwardly runtime compatible with apps and app extensions linked against Appfigurate library 1.4.0.

Source compatibility

Appfigurate 2.2.0 is mostly source compatible with 1.4.0. Some minor changes are required:

Info.plist changes

  • Remove the APLInstallDelegateMethods key/value pair if it exists. Appfigurate Library no longer supports swizzling UIApplicationDelegate or WKExtensionDelegate. Instead you must programmatically call APLApplicationDidFinishLaunchingWithOptions, APLApplicationDidFinishLaunching and APLApplicationOpenURL at the appropriate times.

Project changes

  • Appfigurate Library is now distributed as a single static XCFramework rather than separate libAppfigurateLibrary.a (iOS) and libAppfigurateLibraryWatch.a (watchOS) static libraries.
  • Delete the old libAppfigurateLibrary.a and/or libAppfigurateLibraryWatch.a files from your project. Remove any search paths that pertain to Appfigurate under the App targetBuild SettingsLibrary Search Paths/Header Search Paths.
  • Add AppfiguateLibrary.xcframework to your project by dragging the .xcframework bundle over the top of the project navigator into your projects Frameworks directory. You can also continue to use Swift Package Manager, Cocoapods or Carthage.
  • Appfigurate Library requires Swift to be linked to your target. If your Objective-C project doesn't currently have any Swift source files, you'll need to create at least one empty .swift file.

Objective-C changes

  • References to #import "AppfigurateLibrary.h" need to be changed to @import AppfigurateLibrary;.
  • The configuration property macros all contain an extra restart parameter. The restart parameter is after the description parameter in every macro. If your configuration property requires an app restart after changing, set the value to YES.
SDK 1.4.0 examples (before)
BOOL_PROPERTY(logging, @"Enable debug logging to console");
DOUBLE_PROPERTY_SLIDER(maxDecibel, 60.5, 120.41, APLIconSliderVolume, @"Clipping - decibels");
STRING_PROPERTY_LIST(backgroundColorHex, @"Color of background", @{@"LightGray":@"#d3d3d3", @"White":@"#ffffff", @"Beige":@"f5fcdc"});
SDK 2.2.0 examples (after)
BOOL_PROPERTY(logging, @"Enable debug logging to console", NO);
DOUBLE_PROPERTY_SLIDER(maxDecibel, 60.5, 120.41, APLIconSliderVolume, @"Clipping - decibels", NO);
STRING_PROPERTY_LIST(backgroundColorHex, @"Color of background", NO, @{@"LightGray":@"#d3d3d3", @"White":@"#ffffff", @"Beige":@"f5fcdc"});
  • Add an implementation of the C APLConfigurationClass function (prototype available in Appfigurate.h header) to the bottom of your APLConfiguration subclass:
self.debugLogging = YES;
self.serverURL = @"";
Class APLConfigurationClass(void) {
return [ExampleConfiguration class];