Offline instrumentation for iOS apps

With Perfecto, you can instrument and re-sign iOS applications even if you are subjected to network and security restrictions that do not allow you to connect through the internet to Perfecto servers. Any of the following reasons may prevent you from leveraging Perfecto's online instrumentation service:

  • Your build environment is not connected to the internet

  • Your organization's security team does not permit online app transfer

  • Performance considerations prevent you from connecting to the online instrumentation service

  • You cannot install the app using Perfecto's regular app installation process

  • You have to sign your app with your organization's certificate and this prevents you from performing instrumentation during Perfecto's online app installation process

If any of these restrictions apply to you, contact Perfecto Support about Perfecto's offline instrumentation option for iOS applications, a Python-based CLI instrumentation tool.

Prerequisites

Perfecto's offline instrumentation tool for iOS requires the following:

  • macOS 12 (Monterey) or later

  • Python 3, downloaded from the python website (not from a package manager like Homebrew)

  • Access to the application's .ipa file to be instrumented

  • Intermediate certificates in login and system keychains

    To establish a certificate trust chain for Apple-issued certificates, make sure to import the intermediate certificates to both login and system keychains. You can also download the certificate from the following location: https://www.apple.com/certificateauthority

Limitations

Perfecto only supports the latest version of the offline instrumentation tool. Make sure you always run the latest version of this tool. To request the latest version, contact Perfecto Support .

If you are not sure which version you use, run the tool with the optional parameter -v to display the current version.

If you are not sure which version is the latest version, see our Release highlights.

What's next?

Run offline instrumentation on iOS apps