Developer

Branding iOS with the SMPAgentryClient Framework

Branding lets you personalize the Agentry Client with custom graphics and strings, even before the client connects to the server.

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

Currently, you can brand the following types of resources:
  • iOS resources ‒ used on behalf of the application before it launches, such as the icon and name on the springboard or home screen, default launch images, and so on. iOS resources are usually specified for an application in the Info.plist file.

    To brand or change iOS resources, the customer modifies the *Info.plist file in the SMPAgentryClientFrameworkSetup sample Xcode project to change any strings, or to add images to the application main bundle with the expected names (Default.png, Icon.png, and so forth). For more information on the required file format, see: https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.htmlInformation published on non-SAP site

  • Agentry resources ‒ used by default before an application has connected to the server. Agentry resources include items such as the Login Dialog Image or the About Dialog Image. These resources are delivered as part of the SMPAgentryClientResources.bundle that comes with the framework and are also part of the SMPAgentryClientFrameworkSetup sample Xcode project.

    To brand or change these resources, the customer adds a file of the same name and size to the main bundle of their new app. The Agentry Client gives preference to these resource files over the ones in the bundle.

  • Agentry strings ‒ localizable strings that are used throughout the Agentry Client user interface. Strings can be overridden via the server mechanism, but they can be branded as well, to customize the app even before the initial transmit.

    To brand or change these resources, customers must add a file called Branding.plist to the main bundle of their app. This file should include 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 in the Agentry string resources file ClientText.ini. For instance, the following Branding.plist
    \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
    
    							file changes string 6155 (the Login Dialog Caption) from "Welcome to
    							Agentry" to "Fun with Branded Apps":
    							

    You can add the following special strings to this file: agentryServerUrl provides a default URL for a server, which prevents users from being able to select their server URL.

Notes Related to Branding

Avoid trying to integrate a library that requires you to include the -all_load linker flag, because the Agentry Client libraries do not handle this option. Instead, use -force_load path/to/the/library, which has the same effect on only the specified 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, use double quotes around each path, for example, "SDK_INSTALL_HOME/path with spaces/SMPAgentryClientFramework/iOS/**"; otherwise Xcode treats them as compiler/linker options.

When you create the branding project, don't choose anything in Start of the navigation path Project Settings Next navigation step General Next navigation step App Icons and Launch Images Next navigation step Launch Screen End of the navigation path.

file changes string 6155 (the Login Dialog Caption) from "Welcome toThe sample projects have been tested Using Xcode 8.0 with iOS 9.x and iOS 10.0.