Flutter iOS

Add new app into Appfigurate Simulator

Run Appfigurate in the iOS Simulator.

Tap Add app.

Select app type iOS.

Enter a URL scheme that will be used by Appfigurate to launch your app in order to read or apply configuration. The URL scheme must be 4-64 ASCII characters in length and must be unique to your app. e.g. YOUR-APP-URLSCHEME

Tap Add app.

Output source code snippets

In Appfiguate Simulator app, under the SWIFT/IOS LIBRARY INTEGRATION section:

Tap Output implementation then tap Clipboard.

Create APLConfiguration subclass

In Xcode, add a new Swift class, subclassing APLConfiguration. e.g. Configuration

In your apps Configuration.swift file, paste the implementation file in the clipboard from the section Output source code snippets above.

Note: your public key copied into the clipboard in the Output source code snippets section above will be different to the public key in the following example.

Swift Configuration example

import Foundation
import AppfigurateLibrary

@objcMembers class Configuration: APLConfiguration {

    @BoolProperty(description: "Log debug output to console", restart: false)
    var debugLogging: Bool

    @StringPropertyListEdit(regex: #"https://[\w\.-]+\.yourappserver.com/.*"#, description: "Application server url", restart: false, values: ["Dev":"https://dev.yourappserver.com/api", "Prod":"https://www.yourappserver.com/api"])
    var serverURL: String

    override func allowInvalidSignatures() -> Bool {
        return !ENCRYPTED()
    }

    override func publicKey() -> String {
        // 41 36 87 71 0D 05
        return "-----BEGIN PUBLIC KEY-----\n" +
            "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4TZnKfGeXttN7Rr3eiAZ\n" +
            ...
            "ywIDAQAB\n" +
            "-----END PUBLIC KEY-----\n";
    }

    override func reset() {
        debugLogging = true
        serverURL = "https://www.yourappserver.com/api"
    }

}

@_cdecl("APLConfigurationClass")
func APLConfigurationClass() -> AnyClass {
    return Configuration.self
}

The APLConfigurationClass function with C calling convention must be implemented in your app otherwise a linker error will be issued. The recommended place to implement is at the bottom of your APLConfiguration subclass.

Edit Info.plist

In your apps Info.plist file (right click, Open As ‣ Source Code) include the following. Replace the text YOUR-APP-URLSCHEME with your own app's URL Scheme - the same value you added in the section Add new app into Appfigurate Simulator above.

Info.plist example

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>appfigurate.YOUR-APP-URLSCHEME</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>YOUR-APP-URLSCHEME</string>
        </array>
    </dict>
</array>

If you already have an existing CFBundleURLTypes array in your Info.plist file, then insert just the <dict> ... </dict> portion.

Test your iOS app

To test that you've successfully updated your app to use Appfigurate:

  • Compile and run your app to the Simulator instance.

  • Launch the Appfigurate Simulator app.

  • Tap your applications row. The app will be run and made visible, it's configuration read, and then swap back to Appfigurate.

  • Appfigurate's Configure app screen will now be displayed. You can now change the debugLogging and serverURL properties. Tap Apply⌄ to apply the configuration to your app.

Now jump to Flutter Android.

Last updated