Integrating Reveal: Static Linking
Integrating Reveal's static library into your iOS application is the quickest and easiest way to enable Reveal introspection.
WARNING: Never ship a product which has been linked with the Reveal library. The instructions below outline a way to use build configurations to isolate linking the Reveal static library to Debug builds.
-
Open your iOS project in Xcode.
-
Launch Reveal and select Help → Show Reveal Library in Finder. This will open a Finder window showing a folder named iOS-Libraries.
-
Drag Reveal.framework into the Project Navigator panel of your project in Xcode.
-
In the Add to targets dialog that is shown, select all targets you want to integrate with. Optionally, select Copy items if needed to copy libReveal.dylib into your project — if you do, you'll need to remember to update this library whenever Reveal is updated by following the previous steps again.
-
Click Finish.
-
In Xcode's Project Navigator, select your project then do the following for each target that you wish to use with Reveal:
-
Select the Build Phases tab and remove Reveal.framework from the Link Binary With Libraries section if it is present.
-
Select the Build Settings tab and add the following to the Debug configuration of the Other Linker Flagssetting:
-ObjC -lz -framework Reveal
-
-
In Xcode, build and run your application using a scheme that is set to use the Debug configuration. If you are running your iOS application on a device, ensure that it is on the same Wi-Fi network as Mac running Reveal.
If everything worked, you should be able to switch to Reveal and see your iOS application listed in the app selector pull-down. Select your app and verify that you can see a snapshot of the app matching what you see in the simulator (or device).
-
Run your application again, this time using a scheme set to use the Release configuration. Verify that Reveal cannot connect to your application. If you can still connect, check to make sure Reveal.framework is not listed in the Link Binary With Libraries section of the Build Phases tab.
No code needs to be added, nor any headers imported for Reveal integration. The library will load automatically at launch and start the necessary Reveal services within your app.
If you'd like more control of the integration you should read the dynamic loading integration instructions.