MobileOrg is a FREE (open-source) iPhone and iPod Touch application for storing, searching, viewing and editing your Org mode files.
MobileOrg works offline. Although you may not always be online, you can always access your data. You can even capture notes while offline and sync the next time you have connectivity.
- Support for Dropbox, WebDAV and iCloud as a transfer mechanism
- Org files are stored offline and available anywhere
- Complete editing support, including editable headings, body text, todo state, tags and priority.
- Note-taking facility built in, including offline support
- Full-text search, or search by keyword (TODO, DONE, WAITING) or by tag (errand, office)
- Mark nodes as done, or flag them with an optional note for reference later
- Document view of your outlines, for reading document-style Org files with long body text
- Powerful support for linking between Org files
Org mode has built-in support for MobileOrg (or any other mobile client that may come along in the future and use the same asymmetric synchronization approach).
- A simple org-mobile-push will stage your complete set of Org-files for
MobileOrg to pick them up. The result includes:
- An Org file representing all of your custom agenda views
- Automatic checksum file construction to speed up sync
- Automatic index.org file generation with links to all of your Org files
- A powerful org-mobile-pull command, which will integrate changes you’ve made on the go into a local Org file
There are a few minor things we request in order to make it easier to accept contributions.
Of course, the main thing is to simply feel free to contribute any and all code. It’s much appreciated!
Xcode >=12 is required to build the project.
For the usage of the Dropbox API an application key is necessary. You can obtain it from Dropbox. It is important to apply for keys of the App Folder type not the Full Dropbox type.
Find the file AppKey.plist in the project and obtain the information you’ve received from Dropbox there.
MobileOrg uses Swift Package Manager to resolve dependencies.
To allow automated tests of syncing there is an additional Xcode scheme (All Tests) available. This scheme needs a running docker instance.
To set up the WebDAV server for manual tests, please take the Test’s pre-action script as a starting point.
You have to log in into iCloud account on the simulator to be able to run unit-tests. Otherwise, the test run skips iCloud unit-tests with a warning in the console.
Pull requests for bug fixes, features or anything else are gladly accepted. Since this is github we follow the fork/pull collaboration style. If you are planning to contribute you should have a fork of the mobileorg repository and issue pull requests from there.
It is expected that the code reviewer will merge your pull request. If you wish to open a pull request for a proof of concept or feedback on an idea, please clearly indicate this in the description or title.
MobileOrg loosely follows branching inspired by the Git Flow branching model. How this affects contributing is that all new work should be based off the develop branch and be named either feature/your-new-feature, hotfix/some-bug-fix or similar. See the previous link for more information. This will make it much easier to merge your work.
If you like to work further with your fork you should incorporate your changes into the develop-branch not by merging your branch into it, but by syncing your fork with the main repository.
A description how to do this is available at GitHub Help.
- Web: http://mobileorg.github.io
- IRC: #mobileorg on freenode
- Gitter: https://gitter.im/MobileOrg/Lobby
Merging a PR into develop delivers the app: the
release workflow archives in the AppStore
configuration, gates, and uploads to TestFlight — no manual steps. Builds
appear on TestFlight within minutes of the merge.
- Build number =
git rev-list HEAD --count, passed asCURRENT_PROJECT_VERSIONat archive time and substituted into the plist/binary/dSYM (the legacy bundle-version build phase is inert — Info.plist processing overwrites its stamp); re-running the same commit is rejected as a duplicate build. - Signing uses the App Store Connect API key (repo secrets
APP_STORE_CONNECT_KEY_ID,APP_STORE_CONNECT_ISSUER_ID,APP_STORE_CONNECT_P8) withxcodebuild -allowProvisioningUpdatescloud signing — no certificates or profiles live in the repo. - Scripts/release-preflight-gate.sh fails the run before upload if any
linked binary references UIWebView (ITMS-90809) or the app bundle lacks a
valid privacy manifest declaring its required-reason APIs
(
MobileOrg/PrivacyInfo.xcprivacy, ITMS-91053). - If the upload or build processing stalls, the signed IPA (with dSYMs) is
attached to the failed run as
testflight-fallback-ipa-<n>for manual re-upload. - Without the secrets configured, the job passes with “delivery disabled: secrets not configured” and builds nothing.
- Manual delivery: Actions → Release (TestFlight) → Run workflow.
See: MobileOrg/mobileorg.github.io#1
MobileOrg is thanks to the following:
- Richard Moreland
- Carsten Dominik
- Greg Newman
- Christophe Bataillon
- Joseph Wain of glyphish.com
- Sean Escriva
- Alex Rodich
- Russell McClellan
- Mario Martelli
MobileOrg will always stay free in the app store, but the Apple Developer program costs money. Currently I pay $99 a year to maintain this and keep it in the app store. If you’d like to donate toward that you can use the Sponsor button on the Github Repo.
You support MobileOrg just by using it or assisting with bug fixes and feature development. Thanks for your continued interest.
MobileOrg is distributed under the GNU Public License version 2. See LICENSE.txt for more info.
