Source for many of The Omni Group's frameworks
Clone or download
tjw Updated with changes from OmniGroup svn [318330:318505]
- Removed a bunch of workarounds and checks for old operating system versions.

- UIBarButtonItem overrides -isEqual: but not -hash, so cannot be safely placed into sets. Rework our UIPopoverPresentationController(OUIExtensions) bar button item managing system to deal in NSHashTable instances with object pointer personalities instead. Update callers for the new semantics.

- Decrease the initial height of the button used for toolbar item views, so that the image scaling doesn't accidentally make the image bigger than the border of the button.
Latest commit 7b5bea9 Sep 21, 2018



Checking out the source

git clone git://
git submodule update --init


  • We currently use Xcode 10.0 for all platforms. You'll probably have the best results if you do too.
  • Add the projects you want to your workspace.
  • Take a look in the Workspaces directory for a sample workspace for the TextEditor iPad example app.

Supported Targets

  • We require macOS 10.13, iOS 11.3, and watchOS 4.0, with our deployment builds happening on macOS Mojave 10.14.

Configuring the Source

We place our project-wide configuration options in xcconfig files, under OmniGroup/Configurations. The naming scheme of the files is fairly straightforward, hopefully. Each project has Omni-Global-{Debug,Release,...}.xcconfig as the basis for the corresponding configuration. Each Mac target has Omni-{Bundle,Application,Tool,...}-{Debug,Release,...}.xcconfig and each iOS target has Touch-{Application,Library}-{Debug,Release,...}.xcconfig. Each of these end point configurations when #includes 'superclass' configurations (with "Common" in the name).


The Workspaces directory contains a couple sample workspace that can be built from Xcode.