Show TOC

Branding iOS with the SMPAgentryClient FrameworkLocate this document in the navigation structure

With branding, you can personalize the Agentry Client with custom graphics and strings, even before the client connects to the server.

The iOS client can be easily branded using the SMPAgentryClientFrameworkSetup sample Xcode project. All the instructions below refer to using the SMPAgentryClientFrameworkSetup sample Xcode project to achieve this branding, but they also apply to any Xcode project that has been set up to use the SMPAgentryClient framework.

Currently, three types of resources can be branded:
  • iOS Resources

    These are resources that the OS uses on behalf of the application even before it launches such as the icon and name to use on the springboard or home screen, the default launch images to use while the app is being loaded for the first time, etc. These are the resources usually specified for an application in the Info.plist PLIST file.

    To brand or change these resources, the customer just needs to modify the `*Info.plist` file in the SMPAgentryClientFrameworkSetup` sample Xcode project to change the strings in the strings case or add their desired images to the application main bundle with the expected names (Default.png, Icon.png, and so forth). More information on the required file format can be found on Apple's website at: https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.htmlInformation published on non-SAP site

  • Agentry Resources

    These are resources that the Agentry Client application uses by default before it has connected to the server. These include things such as the Login Dialog Image or the About Dialog Image. These resources are delivered as part of the `SMPAgentryClientResources.bundle` bundle that comes with the framework and is part of the `SMPAgentryClientFrameworkSetup` sample Xcode project as well.

    To brand or change these resources, the customer just needs to add a file of the same name and size to the main bundle of their new app. The Agentry Client will give preference to using these resource files when present over the ones in the bundle.

  • Agentry Strings

    These are localizable strings that are used throughout the Agentry Client User Interface. These can be overridden via the server mechanism, but they can be branded as well in order to customize the app even before the initial transmit.

    To brand or change these resources, the customer must add a file to the main bundle of their app called `Branding.plist`. This file should have a all the required strings in a dictionary with the format `[key: String_N value: the new value]` where N is the number of the resource string in the Agentry string resources file `ClientText.ini`. For instance, the following `Branding.plist` file changes string 6155 (the Login Dialog Caption) from "Welcome to Agentry" to "Fun with Branded Apps".:
    \code{.xml}
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    	<key>String_6155</key>
    	<string>Fun with Branded Apps</string>
    </dict>
    </plist>
    \endcode
    
    A few special strings can be added to this file:
    • `agentryServerUrl` will provide a default URL for a server that will prevent the user from being able to select their server URL.

    • For ANGEL connections, use `agentryServerAddress` and `agentryServerPort` to brand the server address and port respectively into the file for the same effect as above. (\b deprecated)

Notes

If you are trying to integrate a library that requires you to include the -all_load linker flag. Do not do that because the Agentry Client includes libraries that do not handle this option. Instead, use the option -force_load path/to/the/library which will have the same effect on only that library. For a full technical note from Apple, visit this page: https://developer.apple.com/library/mac/#qa/qa2006/qa1490.htmlInformation published on non-SAP site.

If your directory paths have spaces, please enter them using double quotes such as `"SDK_INSTALL_HOME/path with spaces/SMPAgentryClientFramework/iOS/**"` or Xcode will think they are different compiler/linker options.

The sample projects have been tested with Xcode 6.0 together with iOS 7.x and iOS 8.0.