Skip to content
Source for many of The Omni Group's frameworks
Objective-C C HTML Ruby Shell Ragel in Ruby Host Other
Latest commit 18113ca Feb 19, 2016 @tjw tjw Updated with changes from OmniGroup svn [r250963:255236]
- More ARC conversion.
- Lots of nullability annotations and property conversion for Swift interoperability.
- Add more ObjC generics annotations.
- Localization updates.
- Some fixes for CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK=YES, but we haven't yet turned this on globally.

- Added OBErrorWellKnownInfoKey().
- Fix runtime checks for 32-bit systems when frameworks get loaded at addresses at 0x8xxxxxxx or above.

- Improve parsing of time spans in various locales.
- Updates to avoid 'now' getting stuck in some cases in OFRelativeDateParser.
- Added OFIsEmptyString() inline to replace +[NSString isEmptyString:], to help the compiler avoid spurious nullability warnings.
- Split out some variants of string hashing for different format inputs.
- Add some simple NSMethodSignature/NSInvocation protocols to allow them to be used from Swift.

- Add support for async DELETE.
- Add ODAVStaleFiles helper class.
- Add some support range gets and 206 PARTIAL RESPONSE.
- More work on encryption.

- Fix a few error conditions.

- Fix crash related to deleting large numbers of files at the same time.

- More work on encryption.
- More async operations.
- Add a notion of a delete operation.

- NSStackView extensions for animation.
- OADefaultSettingIndicatorButton avoids overriding `identifier` since OS X undercut that API.
- Added OAAppearancePropertyListCoder and support for exporting appearance plists.

- Clean up of informal protocols into formal so that inspectors can be written in Swift.
- Better typing via __kindof.

- Support for non-update news announcements.

- Move OUIUploadController out of this code.

- Lots of inspector cleanup and layout fixes.
- Updates and extensions to debug undo indicator.
- Added API to get images from the framework via OUIServerAccountValidationSuccessImage().
- Support for in-app news display from OSU.

- Handle the case of a document close request happening before an open has fully finished for large documents.
- Update display of undo debug view.
- Support for different bar button items in compact layouts.
- Avoid using a weak/strong NSMapTable for export controllers since it make their lifetime indeterminate.
- Document renaming adds a background blur.
- Constraint and layout fixes in the document picker and rename session.
- Added OUIReplaceRenameDocumentAlert and deprecated OUIReplaceDocumentAlert.



Checking out the source

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


  • We currently use Xcode 7.1 for iOS, watchOS, and Mac OS X. 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 iOS 9.0 and Mac OS X 10.10.

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.


Something went wrong with that request. Please try again.