findPodfileDirs function

List<String> findPodfileDirs(
  1. String projectRoot
)

Returns directories containing a Podfile, searching common locations: <root>/ios/, <root>/macos/, <root>/example/ios/, <root>/example/macos/, and any direct child */ios/ or */macos/.

Implementation

List<String> findPodfileDirs(String projectRoot) {
  final candidates = [
    p.join(projectRoot, 'ios'),
    p.join(projectRoot, 'macos'),
    p.join(projectRoot, 'example', 'ios'),
    p.join(projectRoot, 'example', 'macos'),
  ];
  try {
    for (final entity in Directory(projectRoot).listSync()) {
      if (entity is Directory) {
        candidates.add(p.join(entity.path, 'ios'));
        candidates.add(p.join(entity.path, 'macos'));
      }
    }
  } catch (_) {}
  return candidates
      .where((dir) => File(p.join(dir, 'Podfile')).existsSync())
      .toList();
}