# Below is a list of Flutter team members' GitHub handles who are
# suggested reviewers for contributions to this repository.
#
# These names are just suggestions. It is fine to have your changes
# reviewed by someone else.
#
# Use git ls-files '<pattern>' without a / prefix to see the list of matching files.

/engine/src/build/config/ios/** @vashworth
/packages/flutter_tools/templates/module/ios/ @vashworth
/packages/flutter_tools/templates/**/Podfile* @vashworth
/packages/flutter_tools/lib/src/ios/ @vashworth

# Internal dev infra that is closely tied to team-infra.
/bin/internal/** @jtmcdole
/dev/tools/test/** @jtmcdole

# The following files define an Application Binary Interface (ABI) that must maintain
# both forward and backward compatibility. Changes should be heavily
# scrutinized as mistakes are irreversible.
/engine/src/flutter/shell/platform/embedder/embedder.h @loic-sharma
/engine/src/flutter/shell/platform/embedder/tests/embedder_frozen.h @loic-sharma

# Android team - keep this synced with .github/labeler.yml's team-android section.
/docs/platform/android/** @flutter/android-reviewers
/engine/src/flutter/shell/platform/android/** @flutter/android-reviewers
/packages/flutter_tools/**/*android* @flutter/android-reviewers
/packages/flutter_tools/**/*gradle* @flutter/android-reviewers

# iOS team - keep this synced with .github/labeler.yml's team-ios section.
/engine/src/flutter/shell/platform/darwin/common/ @flutter/ios-reviewers
/engine/src/flutter/shell/platform/darwin/ios/framework/ @flutter/ios-reviewers
/packages/flutter_tools/**/ios/* @flutter/ios-reviewers
/packages/flutter_tools/**/macos/* @flutter/ios-reviewers
/packages/flutter_tools/**/*xcode* @flutter/ios-reviewers
/packages/flutter_tools/**/*ios* @flutter/ios-reviewers
/packages/flutter_tools/**/*macos* @flutter/ios-reviewers
