We are currently stuck on Xcode 10.0 (possibly 10.1) and use CocoaPods 1.6.1. We no longer support CocoaPods 1.5.x, nor do we regularly use Xcode 9.x except for presubmit testing. Fixes #7143
Build environment
Material Components for iOS builds with the standard open-source iOS toolchain: Xcode and CocoaPods. However, there are certain settings that you can use to maximize compatibility with our source.
Xcode warning settings
Deprecation warnings are an important part of how we communicate upcoming changes to the library; they are enabled by default in typical Xcode and CocoaPods projects.
If your project doesn't already specify these warnings, include the following flags in your build:
-Wdeprecated
-Wdeprecated-declarations
If you treat warnings as errors (-Werror or "Treat warnings as errors" in
Xcode), then you should exclude deprecation warnings from being treated as
errors to allow the normal deprecation process to work:
-Wno-error=deprecated
-Wno-error=deprecated-declarations
Supported versions
Xcode
The core team tests against Xcode 10.0 and Swift 3.2. Swift 4 support is added whenever possible and will be the standard when Xcode 8 support is dropped.
iOS
Our components currently support iOS 9.0 and up.
CocoaPods
We are using CocoaPods 1.6.1.
Ruby
The core team uses Ruby 2.0.0. Newer versions of ruby have subtle modifications that affect our
Podfile.lock output.