anchor.diff:          watch.start();
           await flutter('build', options: options);
           watch.stop();
  -        // IPAs are created manually AFAICT
  -        await exec('tar', <String>['-zcf', 'build/app.ipa', 'build/ios/Release-iphoneos/Runner.app/']);
  +        final String appPath =  '$cwd/build/ios/Release-iphoneos/Runner.app/';
  +        // IPAs are created manually, https://flutter.io/ios-release/
  +        await exec('tar', <String>['-zcf', 'build/app.ipa', appPath]);
           releaseSizeInBytes = await file('$cwd/build/app.ipa').length();
  +        if (reportPackageContentSizes)
  +          metrics.addAll(await getSizesFromIosApp(appPath));
           break;
         case DeviceOperatingSystem.android:
           options.insert(0, 'apk');
  
positive.code:     return _kSdkNameToMetricNameMapping[sdkName];
    }
  
    static Future<Map<String, dynamic>> getSizesFromApk(String apkPath) async {
      final  String output = await eval('unzip', <String>['-v', apkPath]);
      final List<String> lines = output.split('\n');
  
negative.code: import 'dart:io';
  
  import 'package:meta/meta.dart';
  import 'package:path/path.dart' as p;
  
  import '../framework/adb.dart';
  import '../framework/framework.dart';
  