Dev:Libobjcipc

libobjcipc is a developer library that provides an inter-process communication (between app and SpringBoard) solution for jailbroken iOS. It handles the socket connections between SpringBoard and app processes, the automatic set up of process assertions and the auto disconnection after timeout or the process terminates.

You only need to call the static methods in the main class. Messages and replies can be sent synchronously (blocking) or asynchronously.

How to use this library
Headers are available from libobjcipc GitHub project and the library can be found at  on a device where libobjcipc is installed. If using Theos, place the headers in, the library in.

Makefile
Add to your Makefile:


 * to the  variable.

Packaging
Add to your package's control file:


 * to the  field.

Basic Usage
The basic usage of the library is to have an extra MobileSubstrate extension which hooks into a specific app to set up an incoming message handler. Another instance in SpringBoard process sends a message to that app and wait for its reply, and vice versa. Messages can be sent from either end.

The library ensures that the receiver is able to receive new messages so it will make the app process stay in background until timeout occurs. Some potential problems, for instance the app is not opened yet or crashes, are appropriately handled by the library itself. In such cases, the messages are sent once the app process is opened or the sender gets an instant empty reply if there is any problem in the receiver (e.g. the app crashes).

If you encounter any crashes in the receiver end, check whether the incoming message handler (block) in the receiver end causes any crashes.