woocommerce-ios icon indicating copy to clipboard operation
woocommerce-ios copied to clipboard

WooCommerce iOS app


for iOS

A Jetpack-powered companion app for WooCommerce.

CircleCI Reviewed by Hound

Build InstructionsDocumentationContributingAutomationSecurityNeed Help?ResourcesLicense

🎉 Build Instructions

  1. Download Xcode

    At the moment WooCommerce for iOS uses Swift 5 and requires Xcode 12 or newer. Previous versions of Xcode can be downloaded from Apple.

  2. Install Ruby. We recommend using rbenv to install it. Please refer to the .ruby-version file for the required Ruby version.

    We use Ruby to manage the third party dependencies and other tools and automation.

  3. Clone project in the folder of your preference

    git clone https://github.com/woocommerce/woocommerce-ios.git
    
  4. Enter the project directory

    cd woocommerce-ios
    
  5. Install the third party dependencies and tools required to run the project.

    bundle install && bundle exec rake dependencies
    

    This command installs the required tools like CocoaPods. And then it installs the iOS project dependencies using CocoaPods.

  6. Open the project by double clicking on WooCommerce.xcworkspace file, or launching Xcode and choose File > Open and browse to WooCommerce.xcworkspace

Credentials for External Contributors

In order to login to WordPress.com using the app:

  1. Create a WordPress.com account (if you don't already have one).

  2. Create a new developer application here.

  3. Set "Website URL" = http://www.wordpress.com, "Redirect URLs" = https://localhost, "Javascript Origins" = https://localhost and "Type" = Native and click Create. On the next page, click Update.

  4. Copy the Client ID and Client Secret from the OAuth Information.

  5. Build the app. A file named ApiCredentials.swift should be generated.

  6. Navigate to the generated WooCommerce/DerivedSources/ApiCredentials.swift file.

  7. Fill in the dotcomAppId with the Client ID.

  8. Fill in the dotcomSecret with the Client Secret.

  9. Recompile and run the app on a device or inside simulator.

Please, remember to not add this information on your commits and PRs.

📚 Documentation

  • Architecture
    • Overview
    • Networking
    • Storage
    • Yosemite
    • Hardware
  • Coding Guidelines
    • Coding Style
    • Naming Conventions
      • Protocols
      • String Constants in Nested Enums
      • Test Methods
    • Choosing Between Structures and Classes
    • Creating Core Data Model Versions
    • Localization
  • Design Patterns
    • Copiable
      • Generating Copiable Methods
      • Modifying The Copiable Code Generation
    • Fakeable
      • Generating Fake Methods
      • Modifying Fakes Code Generation
    • Tracking Events
      • Custom Properties
  • Quality & Testing
    • UI Tests
    • Testing Card Present Payments
    • Beta Testing
    • Issue Triage
  • Features
    • In-app Feedback
    • Card Present Payments
  • Other
    • Enable hot reload with Inject

👏 Contributing

Read our Contributing Guide to learn about reporting issues, contributing code, and more ways to contribute.

🤖 Automation

Peril

The woocommerce-ios project uses Peril to enforce Pull Request guidelines.

Circle CI

The woocommerce-ios project uses Circle CI for continuous integration.

🔐 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.

🦮 Need Help?

You can find the WooCommerce usage docs here: docs.woocommerce.com

General usage and development questions:

🔗 Resources

📜 License

WooCommerce for iOS is an Open Source project covered by the GNU General Public License version 2.



Made with 💜 by WooCommerce.
We're hiring! Come work with us!