Messier

Messier is an app for tracing objective-c methods in an iOS app.

What is Messier

messier

Typical use-cases

Components

Latest build

Latest Build

Usage

(1) Desktop

  1. Install desktop app Messier.dmg from here.
  2. If you wish to trace apps on Jailbreak iOS, you could install the tweak as below.
  3. If you wish to trace apps under debugger, just config your app depending on the dylib(messier.framework) as below.

(2) Tweak (Jailbreak)

> Install

  1. Open Cydia.
  2. Tap Sources -> Edit -> Add.
  3. Input https://messier-app.github.io/cydia/ , tap Add Source. After reloading the sources, you will see Messier Repo.
  4. Go into Messier Repo, install the tweak Messier. (Messier tweak depends on PreferenceLoader and AppList, so make sure they are installed)

Or manually install from deb file

> Configurations

  1. Open Settings.
  2. Scroll down to the row Messier.
  3. Enable app in Enabled Applications.

(2) Dylib (Non-Jailbreak)

> Install

  1. Drag messier.framework into Xcode Targets -> Build Phases -> Link Binary With Libraries.
  2. Tap New Copy Files Phase to add a Copy Files phase, drag messier.framework into the region, and config Destination to Frameworks.

> Configurations

Normally, no configurations are needed. But there are indeed some. Goto Xcode Project Scheme -> Run -> Arguments, config Environment Variables as below.

MessierEnableOnAppBoot : true | false
MessierMainThreadMethodsOnly : true | false

(3) Start Trace

  1. Open Desktop Messier.
  2. Connect iPhone via USB wire.
  3. Open app on iPhone.
  4. Click Start or Stop to control the tracing range.
  5. Click Fetch (after Stop) to fetch the tracing files, after fetch completed, trace.json will be generated in the ~/Documents/MessierWorkspace directory.
  6. Open Chrome (or Chromium), visit chrome://tracing.
  7. Drop trace.json into.
  8. Press w a s d to enjoy.

Q&A

  1. How to deal with crash when the app is launching?
    • Go into Settings -> Messier, try to disable Inline Hook.
    • If still not working, create an issue here.
  2. Where is the name Messier come from?
    • The Messier object are a set of 110 astronomical objects cataloged by the French astronomer Charles Messier in his Catalogue des Nébuleuses et des Amas d’Étoiles (“Catalogue of Nebulae and Star Clusters”)
  3. Connected to another app that is not in the foreground?
    • Close(Kill) apps that are enabled Messier, then open the target app that you wish to trace.

Thanks

Discussion

Contact me

Buy me a coffee

Changelog

  1. v0.2 Bugfix
  2. v0.1 Messier born in 2019.05
  3. v0.0 AppleTrace born in 2017.09

Source code

Sorry, no source code. Messier is free (now, or at least a half year, or forever) but not opensource.

:)