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.
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.html
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.
\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
`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)
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.html.
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.