Migrating from previous iOS agent versions

Changes introduced with Mobile OneAgent 8.x

  • Compatible with AppMon 2017 May and later (7.x).

  • Support for UIWebView has been removed

  • DTXSendEmptyAutoAction default value has been changed to true

  • Symbolication command line client usage has been changed. The new command line syntax is available with the DTXDssClient -help-appmon call and in Symbolication help.

  • Update your Podfile if you are using CocoaPods:
    If you use the Dynatrace Framework:

    use_frameworks!
    pod 'Dynatrace', '~> 8.181'
    

    If you use the Dynatrace static library:

    pod 'Dynatrace/lib', '~> 8.181'
    

Changes introduced with AppMon 2018 October

1. Deprecated old startup API - New Universal startup API available

The old manual startup API:

  • startupWithApplicationName:serverURL:allowAnyCert:certificatePath
+ (DTX_StatusCode) startupWithApplicationName:(NSString *)applicationId
                                      serverURL:(NSString *)serverURL
                                   allowAnyCert:(BOOL)allowAnyCert
                                certificatePath:(NSString *)pathToCertificateAsDER

Has been deprecated and completely removed. We have introduced and new and more versatile startup API. The new API takes a configuration dictionary, and starts the Mobile Agent with supplied configuration.

Method signature

  • startupWithConfig:(NSDictionary <NSString*,id>*) config;
+ (DTX_StatusCode)startupWithConfig:(NONNULL NSDictionary<NSString*,id>*)config;
  • Configuration dictionary

The configuration dictionary is a key-value dictionary where the Keys correspond to the keys you can use in your Info.plist, but with a "k" prefix. For example, DTXLogLevel => kDTXLogLevel. The Info.plist keys themselves are not changed. You can check the full list of available keys in the Intrsumentation keys section of the iOS auto instrumentation page.

2. Removed JSBridge

The JavaScript bridge—which has been deprecated in AppMon 2018 April—is now fully removed. To manually instrument JavaScript, use the JavaScript ADK instead.

3. Removal of Authentication delegate (NSURLConnection)

We have completely migrated to using NSURLSession instead of NSURLConnection. Which means we no longer support the authentication delegate. Use the new certificate pinning feature instead.

4. DTXMonitorCookie has been removed.

  • Both the plist setting and the API have been removed.
  • Use the new beaconHeaders call instead
let beaconHeaders = [
        "App":"My app",
        "Platform":"iOS",
        "Vendor":"Dynatrace"
        ]
Dynatrace.setBeaconHeaders(beaconHeaders)

5. Misc Changes

  • Update your Podfile if you are using CocoaPods:
    If you use the Dynatrace Framework:

    use_frameworks!
    pod 'Dynatrace', '~> 7.2'
    

    If you use the Dynatrace static library:

    pod 'Dynatrace/lib', '~> 7.2'
    
  • Kony is no longer supported.

  • Some instrumentation keys have been merged.

    • DTXInstrumentWebRequestTagging and DTXInstrumentWebRequestTiming are no longer separate features. Use only DTXInstrumentWebRequestTiming.
    • DTXInstrumentWebViewTagging and DTXInstrumentWebViewTiming are also no longer separate features. Use only DTXInstrumentWebViewTiming.
    • Setting DTXInstrumentWebRequestActionWrapping has been completely removed.
    • DTXURLFilters implementation has been stripped down and simplified.
    <key>DTXURLFilters</key>
        <array>
            <dict>
                <key>Url Name</key>
                <string>example.com</string>
            </dict>
            <dict>
                <key>Url Name</key>
                <!-- URL regex is also allowed -->
                <string>example.(com|org)</string>
            </dict>
        <array>
    
    

Changes introduced with AppMon 2018 April

Update your Podfile if you are using CocoaPods:

If you use the Dynatrace Framework:

use_frameworks!
pod 'Dynatrace', '~> 7.1'

If you use the Dynatrace static library:

pod 'Dynatrace/lib', '~> 7.1'
  • Setting DTXHybridApplication needs to be set to true for hybrid applications that also use a JavaScript agent.
  • Setting DTXInstrumentWebRequestActionWrapping has become deprecated.
  • Method setMonitorCookie has become deprecated, use setBeaconHeaders instead.
  • JavaScript Bridge (Dynatrace.js) is deprecated, use the JavaScript ADK instead.