WordPress for iOS
Please refer to the sections below for more detailed information. The instructions assume the work is performed from a command line.
- Download and install Xcode. WordPress for iOS requires Xcode 11.2.1 or newer.
- From a command line,
git clone email@example.com:wordpress-mobile/WordPress-iOS.gitin the folder of your preference.
cd WordPress-iOSto enter the working directory.
rake dependenciesto install all dependencies required to run the project (this may take some time to complete).
rake xcodeto open the project in Xcode.
- Compile and run the app on a device or an simulator.
In order to login to WordPress.com using the app:
- Create a WordPress.com account at https://wordpress.com/start/user (if you don't already have one).
- Create an application at https://developer.wordpress.com/apps/.
- Set "Redirect URLs"=
https://localhostand "Type" =
Nativeand click "Create" then "Update".
- Copy the
Client Secretfrom the OAuth Information.
- From a command line, ensure you are in the project's working directory and run
cp WordPress/Credentials/wpcom_app_credentials-example .configure-files/wpcom_app_credentialsto copy the sample credentials file.
- Open the newly copied
.configure-files/wpcom_app_credentialswith the text editor of your choice, and replace
Client Secretof the application you created. Note that
.configure-fileswill be hidden by default in Finder. If you need to view it in Finder, hold down
.and it should appear.
- Recompile and run the app on a device or an simulator.
You can only log in with the WordPress.com account that you used to create the WordPress application.
Third party tools
We use a few tools to help with development. Running
rake dependencies will configure them for you.
WordPress for iOS uses CocoaPods to manage third party libraries.
Third party libraries and resources managed by CocoaPods will be installed by the
rake dependencies command above.
We use SwiftLint to enforce a common style for Swift code. The app should build and work without it, but if you plan to write code, you are encouraged to install it. No commit should have lint warnings or errors.
You can set up a Git pre-commit hook to run SwiftLint automatically when committing by running:
This is the recommended way to include SwiftLint in your workflow, as it catches lint issues locally before your code makes its way to Github.
Alternately, a SwiftLint scheme is exposed within the project; Xcode will show a warning if you don't have SwiftLint installed.
Finally, you can also run SwiftLint manually from the command line with:
If your code has any style violations, you can try to automatically correct them by running:
Otherwise you have to fix them manually.
Launch the workspace by running the following from the command line:
This will ensure any dependencies are ready before launching Xcode.
You can also open the project by double clicking on
WordPress.xcworkspace file, or launching Xcode and choose
Open and browse to
In order to login to WordPress.com with the app you need to create an account over at the WordPress.com Developer Portal.
After you create an account you can create an application on the WordPress.com applications manager.
When creating your application, select "Native client" for the application type. The applications manager currently requires a "redirect URL", but this isn't used for 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, create a credential file. Start by copying the sample credentials file in your local repo by doing this:
cp WordPress/Credentials/wpcom_app_credentials-example .configure-files/wpcom_app_credentials
Then edit the
WordPress/Credentials/wpcom_app_credentials-example file and change the
WPCOM_APP_SECRET fields to the values of your application's client ID and client secret.
Now you can compile and run the app on a simulator and log in with a WordPress.com account. Note that authenticating to WordPress.com via Google is not supported in development builds of the app, only in the official release.
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 our Contributing Guide to learn about reporting issues, contributing code, and more ways to contribute.
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 and drop a message on the
- The docs contain information about our development practices.
- WordPress Mobile Blog
- WordPress Mobile Handbook
WordPress for iOS is an Open Source project covered by the GNU General Public License version 2.