# WordPress for iOS #
## Build Instructions
Please refer to the sections below for more detailed information. The instructions assume the work is performed from a command line inside the repository.
### Getting Started
1. [Download](https://developer.apple.com/downloads/index.action) and install Xcode. Refer to the [.xcode-version](./.xcode-version) file for the minimum required version.
1. [Clone this repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) in the folder of your preference.
1. Open `WordPress.xcworkspace` in Xcode and build the `Jetpack` or `WordPress` scheme. The first build downloads the Gutenberg frameworks the app needs (about 60 MB).
#### Create WordPress.com API Credentials
1. Create a WordPress.com account at https://wordpress.com/start/user (if you don't already have one).
1. Create an application at https://developer.wordpress.com/apps/.
1. Set **Website URL** to any valid host, **Redirect URLs** to `https://localhost`, and **Type** to `Native`.
1. Click "Create" then "Update".
1. Copy the `Client ID` and `Client Secret` from the OAuth Information.
#### Configure Your WordPress App Development Environment
1. Return to the command line and run `make credentials` to set up your own WordPress.com API credentials, so you can log in to WordPress.com in the app. To skip the prompts, run `Scripts/setup-credentials.sh --client-id <id> --client-secret <secret>` instead.
1. Once completed, run `open WordPress.xcworkspace` to open the project in Xcode.
If all went well you can now compile to your iOS device or simulator, and log into the WordPress app.
Note: You can only log in with the WordPress.com account that you used to create the WordPress application.
## Configuration Details
The steps above will help you configure the WordPress app to run and compile. But you may sometimes need to update or re-run specific parts of the initial setup (like updating the dependencies.) To see how to do that, please check out the steps below.
### Third party tools
We use a few Ruby tools for release and CI, such as fastlane and Danger. Run `bundle install` to install or update them. Building and testing the app doesn't need them. Use the Ruby version in [.ruby-version](./.ruby-version); a tool like [rbenv](https://github.com/rbenv/rbenv) picks it up automatically (`rbenv install`).
### Open Xcode
Open `WordPress.xcworkspace` in Xcode. The first build downloads the Gutenberg frameworks the app needs.
### Setup Credentials
In order to login to WordPress.com with the app you need to create an account over at the [WordPress.com Developer Portal](https://developer.wordpress.com).
After you create an account you can create an application on the [WordPress.com applications manager](https://developer.wordpress.com/apps/).
When creating your application, you should select "Native client" for the application type.
The "**Website URL**", "**Redirect URLs**", and "**Javascript Origins**" fields are required but not used for the mobile apps. Just use `https://localhost`.
Your new application will have an associated client ID and a client secret key. These are used to authenticate the API calls made by your application.
Next, run `make credentials`. You will be prompted for your Client ID and your Client Secret. Once added, you will be able to log into the WordPress app.
**Remember the only WordPress.com account you will be able to login in with is the one used to create your client ID and client secret.**
Read more about [OAuth2](https://developer.wordpress.com/docs/oauth2/) and the [WordPress.com REST endpoint](https://developer.wordpress.com/docs/api/).
## Contributing
Read our [Contributing Guide](CONTRIBUTING.md) to learn about reporting issues, contributing code, and more ways to contribute.
## Security
If you happen to find a security vulnerability, we would appreciate you letting us know at https://hackerone.com/automattic and allowing us to respond before disclosing the issue publicly.
## Getting in Touch ##
If you have questions about getting setup or just want to say hi, join the [WordPress Slack](https://chat.wordpress.org) and drop a message on the `#mobile` channel.
## Resources
- The [docs](docs/) contain information about our development practices.
- [WordPress Mobile Blog](http://make.wordpress.org/mobile)
- [WordPress Mobile Handbook](http://make.wordpress.org/mobile/handbook/)
## License
WordPress for iOS is an Open Source project covered by the [GNU General Public License version 2](LICENSE).