cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Does Dynatrace rely on method swizzling in iOS?

xavier_pereta
Newcomer

Due to security requirements we are not allowing method swizzling in one of our applications.

Can Dynatrace be used without method swizzling?

7 REPLIES 7

harp
Dynatrace Pro
Dynatrace Pro

Yes it does rely on swizzling. You can turn off any swizzling but in that case you need to use manual instrumentation as no events will be generated.

andrew_cundy
Newcomer

Hi, Is there a definitive list of classes that are swizzled. Our dev team are saying that their swizzling detection tool is detecting what I what call App classes being swizzled. I would have thought that didn't make sense. Your competitors make a full list if swizzled classes available 🙂

What are "App classes" from your point of view? If e.g the mobile agent should report "Display MyAppsViewController" then some methods like viewDidAppear need to be swizzled in "MyAppsViewController" if they have been overwritten there to get correct timings.
We do not have a put together a public available list of swizzled classes.

xavier_pereta
Newcomer

AFAIK the methods that are swizzled are part of UIKit and of course your view controller classes inherit from UIKit classes. Then your class methods are being swizzled.

andrew_cundy
Newcomer

Patrick and Xavier, many thanks for such quick replies. Unfortunately you are dealing with someone whose coding life finished way before OO languages 🙂 From what I infer you are saying if we have a technology that detects and blocks swizzling (Arxan) even if it allows specific classes to be included from detection that the siwzzling could affect so many classes due to inheritance that we could potentially need to include so many classes that it sort of makes the detection redundant. If that is the case then Manual Instrumentation is the only option. Have I got that sort of right?

harp
Dynatrace Pro
Dynatrace Pro

Basically yes - also every change in the mobile agent or new UIKit derived classes in the App that lead to swizzle a new class will probably break the include list. The downside of manual instrumentation is that it is a lot of effort to manually instriment everything you would automatically get by swizzling.

andrew_cundy
Newcomer

Many thanks!