patchIosSplash method

Future<void> patchIosSplash(
  1. String appName
)

Handles the iOS LaunchScreen.storyboard renaming to avoid cache issues.

Implementation

Future<void> patchIosSplash(String appName) async {
  final storyboardFile = File(
    p.join(
        projectDir, 'ios', 'Runner', 'Base.lproj', 'LaunchScreen.storyboard'),
  );

  if (!storyboardFile.existsSync()) return;

  print('🍎 Patching iOS LaunchScreen for $appName...');
  var content = await storyboardFile.readAsString();

  // Replace default LaunchImage reference with a unique one per client
  content = content.replaceAll('LaunchImage', 'LaunchImage$appName');

  // De-duplicate lines (common issue with splash_master)
  final lines = content.split('\n');
  final uniqueContent = lines.toSet().toList().join('\n');

  await storyboardFile.writeAsString(uniqueContent);
}