validatePackageName function

String? validatePackageName(
  1. String name,
  2. Set<String> used
)

Returns an error message if name is not a valid Android package name, or if it duplicates an entry already in used. Returns null when valid.

Implementation

String? validatePackageName(String name, Set<String> used) {
  if (name.isEmpty) return 'Package name is required.';
  if (name == 'com.example.app') {
    return 'com.example.app is a placeholder — use your real package name.';
  }
  if (!RegExp(r'^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*){1,}$').hasMatch(name)) {
    return 'Invalid: "$name"\n'
        '  Must be lowercase, dot-separated, at least 2 segments.\n'
        '  Example: com.mycompany.myapp or dev.mhmz';
  }
  if (used.contains(name)) {
    return '"$name" is already used by another flavor in this config.';
  }
  return null;
}