Skip to content
Go to file

Latest commit

since if it's nil, the property getter will create it,
which is unsafe in a dealloc context

Git stats


Failed to load latest commit information.
Latest commit message
Commit time


INaturalistIOS is the official iOS app for submitting data to


We use cocoapods for dependencies. Install it with: gem install cocoapods, then do pod install in this directory to install the INaturalistIOS dependencies. If you run into the build error Class 'RK_FIX_CATEGORY_BUGSNDictionary_RKAdditions' defined without specifying a base class, then you will need to set the clang warning Unintentional Root Class to be something other than Yes (Error) for the RestKit target in the Pods project. We are moving away from RestKit in 2019 so hopefully this won't be an issue for long.

You'll also need to copy config.h.example to config.h and fill in your details.

That should get you set up for local development with the Simulator. If you want to test on actual devices you'll need to get a provisioning profile from Apple and configure the project to use it:


We do our translations on Crowdin. Head over to and create an account, and you can start suggesting translations there. Our team regularly exports translations from crowdin and imports them to this project.


Check out our Roadmap for details on where we're doing.

Getting Help

Did you find this repository while searching for a solution to a problem with INaturalistIOS? Consider first checking in with the iNaturalist Forum to see if other users are reporting issues or to ask a question. If you're pretty sure there is a technical issue to raise, submit an issue. A "good" issue is one that is:

  • Reproducible, by you and others;
  • Well-described, including:
    • what steps led to the problem;
    • a description the problem;
    • what you expected if the problem had not occurred;
    • the exact error message if one was shown.
  • Documented, if possible (such as by using screenshots)
You can’t perform that action at this time.