feat(shorebird_cli): shorebird preview iOS support (#913)

This commit is contained in:
Felix Angelov
2023-07-26 14:24:29 -05:00
committed by GitHub
parent 1e264f0d81
commit fb8384b36a
10 changed files with 2006 additions and 324 deletions
@@ -10,6 +10,7 @@ import 'package:shorebird_cli/src/cache.dart';
import 'package:shorebird_cli/src/code_push_client_wrapper.dart';
import 'package:shorebird_cli/src/command_runner.dart';
import 'package:shorebird_cli/src/doctor.dart';
import 'package:shorebird_cli/src/ios_deploy.dart';
import 'package:shorebird_cli/src/java.dart';
import 'package:shorebird_cli/src/logger.dart';
import 'package:shorebird_cli/src/platform.dart';
@@ -30,6 +31,7 @@ Future<void> main(List<String> args) async {
codePushClientWrapperRef,
doctorRef,
engineConfigRef,
iosDeployRef,
javaRef,
loggerRef,
platformRef,
@@ -1,6 +1,8 @@
import 'dart:async';
import 'dart:convert';
import 'dart:isolate';
import 'package:archive/archive_io.dart';
import 'package:collection/collection.dart';
import 'package:mason_logger/mason_logger.dart';
import 'package:path/path.dart' as p;
@@ -9,6 +11,7 @@ import 'package:shorebird_cli/src/bundletool.dart';
import 'package:shorebird_cli/src/cache.dart';
import 'package:shorebird_cli/src/code_push_client_wrapper.dart';
import 'package:shorebird_cli/src/command.dart';
import 'package:shorebird_cli/src/ios_deploy.dart';
import 'package:shorebird_cli/src/logger.dart';
import 'package:shorebird_cli/src/shorebird_config_mixin.dart';
import 'package:shorebird_cli/src/shorebird_validation_mixin.dart';
@@ -125,10 +128,11 @@ class PreviewCommand extends ShorebirdCommand
Future<int> installAndLaunchAndroid(String appId, Release release) async {
const platform = ReleasePlatform.android;
final previewDirectory = cache.getPreviewDirectory(appId);
final aabPath = p.join(
previewDirectory.path,
'${platform}_${release.version}.aab',
final aabPath = getArtifactPath(
appId: appId,
release: release,
platform: platform,
extension: 'aab',
);
if (!File(aabPath).existsSync()) {
@@ -142,7 +146,7 @@ class PreviewCommand extends ShorebirdCommand
platform: platform,
);
await releaseAabArtifact.url.download(aabPath);
await releaseAabArtifact.url.download(outputPath: aabPath);
downloadArtifactProgress.complete();
} catch (error) {
downloadArtifactProgress.fail('$error');
@@ -160,9 +164,11 @@ class PreviewCommand extends ShorebirdCommand
return ExitCode.software.code;
}
final apksPath = p.join(
previewDirectory.path,
'${platform}_${release.version}.apks',
final apksPath = getArtifactPath(
appId: appId,
release: release,
platform: platform,
extension: 'apks',
);
if (!File(apksPath).existsSync()) {
@@ -206,12 +212,63 @@ class PreviewCommand extends ShorebirdCommand
}
Future<int> installAndLaunchIos(String appId, Release release) async {
return ExitCode.unavailable.code;
const platform = ReleasePlatform.ios;
final runnerPath = getArtifactPath(
appId: appId,
release: release,
platform: platform,
extension: 'app',
);
if (!Directory(runnerPath).existsSync()) {
final downloadArtifactProgress = logger.progress('Downloading release');
try {
final releaseRunnerArtifact =
await codePushClientWrapper.getReleaseArtifact(
appId: appId,
releaseId: release.id,
arch: 'runner',
platform: platform,
);
await releaseRunnerArtifact.url.downloadAndExtract(
outputPath: runnerPath,
);
downloadArtifactProgress.complete();
} catch (error) {
downloadArtifactProgress.fail('$error');
return ExitCode.software.code;
}
}
try {
final deviceId = results['device-id'] as String?;
final exitCode = await iosDeploy.installAndLaunchApp(
bundlePath: runnerPath,
deviceId: deviceId,
);
return exitCode;
} catch (error) {
return ExitCode.software.code;
}
}
String getArtifactPath({
required String appId,
required Release release,
required ReleasePlatform platform,
required String extension,
}) {
final previewDirectory = cache.getPreviewDirectory(appId);
return p.join(
previewDirectory.path,
'${platform.name}_${release.version}.$extension',
);
}
}
extension on String {
Future<void> download(String path) async {
Future<void> download({required String outputPath}) async {
final uri = Uri.parse(this);
final client = HttpClient();
final request = await client.getUrl(uri);
@@ -219,7 +276,27 @@ extension on String {
if (response.statusCode != 200) {
throw Exception('Failed to download artifact at $this');
}
final file = File(path)..createSync(recursive: true);
final file = File(outputPath)..createSync(recursive: true);
await response.pipe(file.openWrite());
}
Future<void> downloadAndExtract({required String outputPath}) async {
final uri = Uri.parse(this);
final client = HttpClient();
final request = await client.getUrl(uri);
final response = await request.close();
if (response.statusCode != 200) {
throw Exception('Failed to download artifact at $this');
}
final tempDir = Directory.systemTemp.createTempSync();
final file = File(p.join(tempDir.path, p.basename(outputPath)))
..createSync(recursive: true);
await response.pipe(file.openWrite());
logger.detail('Extracting ${file.path} to $outputPath');
await Isolate.run(() async {
final inputStream = InputFileStream(file.path);
final archive = ZipDecoder().decodeBuffer(inputStream);
extractArchiveToDisk(archive, outputPath);
});
}
}
+306 -12
View File
@@ -1,15 +1,35 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:mason_logger/mason_logger.dart';
import 'package:meta/meta.dart';
import 'package:path/path.dart' as p;
import 'package:scoped/scoped.dart';
import 'package:shorebird_cli/src/logger.dart';
import 'package:shorebird_cli/src/process.dart';
import 'package:shorebird_cli/src/shorebird_environment.dart';
/// A reference to a [IOSDeploy] instance.
final iosDeployRef = create(IOSDeploy.new);
/// The [IOSDeploy] instance available in the current zone.
IOSDeploy get iosDeploy => read(iosDeployRef);
/// lldb debugger state.
enum _DebuggerState {
detached,
launching,
attached,
}
/// Wrapper around the `ios-deploy` command cached by the Flutter tool.
/// https://github.com/ios-control/ios-deploy
class IOSDeploy {
IOSDeploy({ProcessSignal? sigint}) : _sigint = sigint ?? ProcessSignal.sigint;
final ProcessSignal _sigint;
@visibleForTesting
static File get iosDeployExecutable => File(
p.join(
@@ -24,8 +44,91 @@ class IOSDeploy {
static bool get _isInstalled => iosDeployExecutable.existsSync();
/// Installs the .app file at [bundlePath] to the device identified by
/// [deviceId] and attaches the debugger.
// (lldb) platform select remote-'ios' --sysroot
// This regex is to get the configurable lldb prompt.
// By default this prompt will be "lldb".
static final _lldbPlatformSelect =
RegExp(r"\s*platform select remote-'ios' --sysroot");
// (lldb) run
static final _lldbProcessExit = RegExp(r'Process \d* exited with status =');
// (lldb) Process 1234 stopped
static final _lldbProcessStopped = RegExp(r'Process \d* stopped');
// (lldb) Process 1234 detached
static final _lldbProcessDetached = RegExp(r'Process \d* detached');
// (lldb) Process 1234 resuming
static final _lldbProcessResuming = RegExp(r'Process \d+ resuming');
// Send signal to stop (pause) the app. Used before a backtrace dump.
static const String _signalStop = 'process signal SIGSTOP';
// Print backtrace for all threads while app is stopped.
static const String _backTraceAll = 'thread backtrace all';
// No provision profile errors.
static const noProvisioningProfileErrorOne = 'Error 0xe8008015';
static const noProvisioningProfileErrorTwo = 'Error 0xe8000067';
// Device locked errors.
static const deviceLockedError = 'e80000e2';
static const deviceLockedErrorMessage =
'the device was not, or could not be, unlocked';
// Unknown launch error.
static const unknownAppLaunchError = 'Error 0xe8000022';
// Message when there is an unknown error.
static const unknownErrorFixInstructions = '''
═══════════════════════════════════════════════════════════════════════════════════
Error launching app. Try launching from within Xcode via:
open ios/Runner.xcworkspace
Your Xcode version may be too old for your iOS version.
═══════════════════════════════════════════════════════════════════════════════════''';
// Message when the device is locked.
static const deviceLockedFixInstructions = '''
═══════════════════════════════════════════════════════════════════════════════════
Your device is locked. Unlock your device first before running.
═══════════════════════════════════════════════════════════════════════════════════''';
// Message when there is no development team selected.
static const developmentTeamFixInstructions = '''
1- Open the Flutter project's Xcode target with
open ios/Runner.xcworkspace
2- Select the 'Runner' project in the navigator then the 'Runner' target
in the project settings
3- Make sure a 'Development Team' is selected under Signing & Capabilities > Team.\u0020
You may need to:
- Log in with your Apple ID in Xcode first
- Ensure you have a valid unique Bundle ID
- Register your device with your Apple Developer Account
- Let Xcode automatically provision a profile for your app
4- Build or run your project again''';
/// Message when there is no provisioning profile.
static const noProvisioningProfileInstructions = '''
════════════════════════════════════════════════════════════════════════════════
No Provisioning Profile was found for your project's Bundle Identifier or your\u0020
device. You can create a new Provisioning Profile for your project in Xcode for\u0020
your team by:
$developmentTeamFixInstructions
It's also possible that a previously installed app with the same Bundle\u0020
Identifier was signed with a different certificate.
For more information, please visit:
https://flutter.dev/docs/get-started/install/macos#deploy-to-ios-devices
Or run on an iOS simulator without code signing
════════════════════════════════════════════════════════════════════════════════''';
/// Installs the .app file at [bundlePath]
/// to the device identified by [deviceId] and attaches the debugger.
/// Returns the process exit code.
///
/// Uses ios-deploy and returns the exit code.
/// `ios-deploy --id [deviceId] --debug --bundle [bundlePath]`
@@ -33,16 +136,161 @@ class IOSDeploy {
required String bundlePath,
String? deviceId,
}) async {
final result = await process.run(
iosDeployExecutable.path,
[
'--debug',
if (deviceId != null) ...['--id', deviceId],
'--bundle',
bundlePath,
],
);
return result.exitCode;
// Ensure ios-deploy executable is installed.
await installIfNeeded();
var debuggerState = _DebuggerState.detached;
// (lldb) run
var lldbRun = RegExp(r'\(lldb\)\s*run');
final launchProgress = logger.progress('Starting app');
late final Process launchProcess;
// If the user presses Ctrl-C, kill the ios-deploy process.
_sigint.watch().listen((signal) {
// If the debugger is attached, send the signal to the app process.
if (debuggerState.isAttached) launchProcess.stdin.writeln(_signalStop);
launchProcess.kill();
});
try {
launchProcess = await process.start(
iosDeployExecutable.path,
[
'--debug',
if (deviceId != null) ...['--id', deviceId],
'--bundle',
bundlePath,
],
);
void detach() {
if (debuggerState.isNotAttached) return;
launchProcess.stdin.writeln('process detach');
}
bool kill() => launchProcess.kill();
String? previousLine;
void onStdout(String line) {
detectFailures(line, logger);
// Detect the lldb prompt since it can be configured by the end user.
if (_lldbPlatformSelect.hasMatch(line)) {
final platformSelect = _lldbPlatformSelect.stringMatch(line) ?? '';
if (platformSelect.isEmpty) {
return;
}
final promptEndIndex = line.indexOf(platformSelect);
if (promptEndIndex == -1) {
return;
}
final prompt = line.substring(0, promptEndIndex);
lldbRun = RegExp(RegExp.escape(prompt) + r'\s*run');
logger.detail(line);
return;
}
// lldb is launching the debugger.
// Example: (lldb) run
if (lldbRun.hasMatch(line)) {
logger.detail(line);
debuggerState = _DebuggerState.launching;
return;
}
// The next line after "run" must either be "success"
// or attaching the debugger was unsuccessful.
if (debuggerState == _DebuggerState.launching) {
logger.detail(line);
final attachSuccess = line == 'success';
debuggerState =
attachSuccess ? _DebuggerState.attached : _DebuggerState.detached;
launchProgress.complete(
attachSuccess ? 'Started app' : 'Failed to start app',
);
return;
}
// The app has been stopped.
if (line.contains('PROCESS_STOPPED') ||
_lldbProcessStopped.hasMatch(line)) {
logger.detail(line);
launchProcess.stdin.writeln(_backTraceAll);
detach();
return;
}
// The app exited/crashed.
if (line.contains('PROCESS_EXITED') ||
_lldbProcessExit.hasMatch(line)) {
logger.detail(line);
kill();
return;
}
// The debugger has detached from the app.
if (_lldbProcessDetached.hasMatch(line)) {
kill();
return;
}
// The debugger is resuming.
if (_lldbProcessResuming.hasMatch(line)) {
logger.detail(line);
debuggerState = _DebuggerState.attached;
return;
}
// Format progress logs for the user while the debugger is attaching.
if (debuggerState != _DebuggerState.attached) {
if (line.contains('Copying') && line.endsWith('to device')) {
final abbreviatedLine = line.replaceFirst('$bundlePath/', '');
launchProgress.update(abbreviatedLine);
} else if (line.startsWith(RegExp(r'\[\s+\d+\%\]'))) {
launchProgress.update(line);
} else {
logger.detail(line);
}
return;
}
// Avoid logging empty lines.
if ((previousLine?.isNotEmpty ?? false) && line.isEmpty) return;
// Output logs after the debugger has attached.
if (debuggerState == _DebuggerState.attached) {
logger.info(line);
}
previousLine = line;
}
void onStderr(String line) {
detectFailures(line, logger);
logger.detail(line);
}
final stdoutSubscription =
launchProcess.stdout.asLines().listen(onStdout);
final stderrSubscription =
launchProcess.stderr.asLines().listen(onStderr);
final status = await launchProcess.exitCode;
logger.detail('[ios-deploy] exited with code: $exitCode');
debuggerState = _DebuggerState.detached;
unawaited(stdoutSubscription.cancel());
unawaited(stderrSubscription.cancel());
return status;
} catch (exception, stackTrace) {
logger.detail('[ios-deploy] failed: $exception\n$stackTrace');
debuggerState = _DebuggerState.detached;
logger.err('[ios-deplay] failed: $exception');
return ExitCode.software.code;
}
}
/// Installs ios-deploy if it is not already installed.
@@ -67,3 +315,49 @@ class IOSDeploy {
progress.complete();
}
}
// Handles interpretting stdout line and logs errors accordingly.
// Always returns the original line.
@visibleForTesting
String detectFailures(String line, Logger logger) {
final isMissingProvisioningProfile =
line.contains(IOSDeploy.noProvisioningProfileErrorOne) ||
line.contains(IOSDeploy.noProvisioningProfileErrorTwo);
// No provisioning profile.
if (isMissingProvisioningProfile) {
logger.err(IOSDeploy.noProvisioningProfileInstructions);
return line;
}
final isDeviceLocked = line.contains(IOSDeploy.deviceLockedError) ||
line.contains(IOSDeploy.deviceLockedErrorMessage);
if (isDeviceLocked) {
logger.err(IOSDeploy.deviceLockedFixInstructions);
return line;
}
final isUnknownAppLaunchError = line.contains(
IOSDeploy.unknownAppLaunchError,
);
if (isUnknownAppLaunchError) {
logger.err(IOSDeploy.unknownErrorFixInstructions);
return line;
}
return line;
}
extension on _DebuggerState {
bool get isAttached => this == _DebuggerState.attached;
bool get isNotAttached => this != _DebuggerState.attached;
}
extension on Stream<List<int>> {
Stream<String> asLines() {
return transform<String>(utf8.decoder)
.transform<String>(const LineSplitter());
}
}
@@ -0,0 +1,168 @@
[....] Waiting for iOS device to be connected
[....] Using 82b15a4a69ad47c74fe3e71b62a6a6e2842efe25 (D22AP, iPhone X, iphoneos, arm64, 16.3.1, 20D67) a.k.a. 'Felixs iPhone'.
------ Install phase ------
[ 0%] Found 82b15a4a69ad47c74fe3e71b62a6a6e2842efe25 (D22AP, iPhone X, iphoneos, arm64, 16.3.1, 20D67) a.k.a. 'Felixs iPhone' connected through USB, beginning install
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/META-INF/ to device
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/META-INF/com.apple.ZipMetadata.plist to device
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/_CodeSignature/ to device
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/_CodeSignature/CodeResources to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/_CodeSignature/CodeResources to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppIcon60x60@2x.png to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Runner to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/ to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/ to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/ to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/Info.plist to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/Info.plist to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/ to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/Info.plist to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Assets.car to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppFrameworkInfo.plist to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppIcon76x76@2x~ipad.png to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppIcon76x76@2x~ipad.png to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/ to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreImage.dylib to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftObjectiveC.dylib to device
[ 11%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftObjectiveC.dylib to device
[ 11%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 12%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 13%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 14%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 15%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 16%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 17%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 18%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 18%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreGraphics.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreGraphics.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftUIKit.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftMetal.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDispatch.dylib to device
[ 20%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDispatch.dylib to device
[ 20%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftos.dylib to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftos.dylib to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreFoundation.dylib to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/ to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/_CodeSignature/ to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/_CodeSignature/ to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/_CodeSignature/CodeResources to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/icudtl.dat to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 23%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 24%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 25%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 26%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 27%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 28%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 29%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 30%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 31%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/ to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterEngine.h to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterChannels.h to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPlugin.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPlugin.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterAppDelegate.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterTexture.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterEngineGroup.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterEngineGroup.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPlatformViews.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterHeadlessDartRunner.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterCodecs.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/Flutter.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/Flutter.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterViewController.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterMacros.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterDartProject.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterDartProject.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPluginAppLifeCycleDelegate.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterBinaryMessenger.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterCallbackCache.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Modules/ to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Modules/ to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Modules/module.modulemap to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Info.plist to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/ to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/ to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/_CodeSignature/ to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/_CodeSignature/CodeResources to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/App to device
[ 39%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/App to device
[ 39%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/ to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/ to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/NOTICES.Z to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shorebird.yaml to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/AssetManifest.json to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/AssetManifest.json to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/FontManifest.json to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shaders/ to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shaders/ink_sparkle.frag to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shaders/ink_sparkle.frag to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/AssetManifest.bin to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/fonts/ to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/fonts/MaterialIcons-Regular.otf to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/assets/ to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/assets/ to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/assets/palettes.json to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/Info.plist to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDarwin.dylib to device
[ 44%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDarwin.dylib to device
[ 44%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftQuartzCore.dylib to device
[ 44%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreAudio.dylib to device
[ 45%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreAudio.dylib to device
[ 45%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 46%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 47%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 48%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 48%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreMedia.dylib to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreMedia.dylib to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/embedded.mobileprovision to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Info.plist to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/PkgInfo to device
[ 52%] CreatingStagingDirectory
[ 57%] ExtractingPackage
[ 60%] InspectingPackage
[ 65%] PreflightingApplication
[ 70%] VerifyingApplication
[ 75%] CreatingContainer
[ 80%] InstallingApplication
[ 85%] PostflightingApplication
[ 90%] SandboxingApplication
[ 95%] GeneratingApplicationMap
[100%] InstallComplete
[100%] Installed package /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app
------ Debug phase ------
Starting debug of 82b15a4a69ad47c74fe3e71b62a6a6e2842efe25 (D22AP, iPhone X, iphoneos, arm64, 16.3.1, 20D67) a.k.a. 'Felixs iPhone' connected through USB...
[ 0%] Looking up developer disk image
[ 95%] Developer disk image mounted successfully
Symbol Path: /Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols
[100%] Connecting to remote debug server
-------------------------
(lldb) command source -s 0 '/tmp/6A794CCC-74AD-4307-B01C-BC045C28FEB0/fruitstrap-lldb-prep-cmds-82b15a4a69ad47c74fe3e71b62a6a6e2842efe25'
Executing commands in '/tmp/6A794CCC-74AD-4307-B01C-BC045C28FEB0/fruitstrap-lldb-prep-cmds-82b15a4a69ad47c74fe3e71b62a6a6e2842efe25'.
(lldb) platform select remote-'ios' --sysroot '/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols'
Platform: remote-ios
Connected: no
Sysroot: /Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols
SDK Path: "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols"
(lldb) target create "/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app"
Current executable set to '/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app' (arm64).
(lldb) script fruitstrap_device_app="/private/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC/ios_1.0.4+7.app"
(lldb) script fruitstrap_connect_url="connect://127.0.0.1:62320"
(lldb) script fruitstrap_output_path=""
(lldb) script fruitstrap_error_path=""
(lldb) target modules search-paths add /usr "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols/usr" /System "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols/System" "/private/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC" "/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e" "/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC" "/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e" /Developer "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols/Developer"
(lldb) command script import "/tmp/6A794CCC-74AD-4307-B01C-BC045C28FEB0/fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.py"
(lldb) command script add -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.connect_command connect
(lldb) command script add -s asynchronous -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.run_command run
(lldb) command script add -s asynchronous -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.autoexit_command autoexit
(lldb) command script add -s asynchronous -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.safequit_command safequit
(lldb) connect
(lldb) run
success
Process 4298231 detached
@@ -0,0 +1,168 @@
[....] Waiting for iOS device to be connected
[....] Using 82b15a4a69ad47c74fe3e71b62a6a6e2842efe25 (D22AP, iPhone X, iphoneos, arm64, 16.3.1, 20D67) a.k.a. 'Felixs iPhone'.
------ Install phase ------
[ 0%] Found 82b15a4a69ad47c74fe3e71b62a6a6e2842efe25 (D22AP, iPhone X, iphoneos, arm64, 16.3.1, 20D67) a.k.a. 'Felixs iPhone' connected through USB, beginning install
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/META-INF/ to device
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/META-INF/com.apple.ZipMetadata.plist to device
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/_CodeSignature/ to device
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/_CodeSignature/CodeResources to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/_CodeSignature/CodeResources to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppIcon60x60@2x.png to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Runner to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/ to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/ to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/ to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/Info.plist to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/Info.plist to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/ to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/Info.plist to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Assets.car to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppFrameworkInfo.plist to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppIcon76x76@2x~ipad.png to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppIcon76x76@2x~ipad.png to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/ to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreImage.dylib to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftObjectiveC.dylib to device
[ 11%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftObjectiveC.dylib to device
[ 11%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 12%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 13%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 14%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 15%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 16%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 17%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 18%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 18%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreGraphics.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreGraphics.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftUIKit.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftMetal.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDispatch.dylib to device
[ 20%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDispatch.dylib to device
[ 20%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftos.dylib to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftos.dylib to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreFoundation.dylib to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/ to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/_CodeSignature/ to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/_CodeSignature/ to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/_CodeSignature/CodeResources to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/icudtl.dat to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 23%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 24%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 25%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 26%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 27%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 28%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 29%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 30%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 31%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/ to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterEngine.h to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterChannels.h to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPlugin.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPlugin.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterAppDelegate.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterTexture.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterEngineGroup.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterEngineGroup.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPlatformViews.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterHeadlessDartRunner.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterCodecs.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/Flutter.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/Flutter.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterViewController.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterMacros.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterDartProject.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterDartProject.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPluginAppLifeCycleDelegate.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterBinaryMessenger.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterCallbackCache.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Modules/ to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Modules/ to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Modules/module.modulemap to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Info.plist to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/ to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/ to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/_CodeSignature/ to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/_CodeSignature/CodeResources to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/App to device
[ 39%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/App to device
[ 39%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/ to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/ to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/NOTICES.Z to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shorebird.yaml to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/AssetManifest.json to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/AssetManifest.json to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/FontManifest.json to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shaders/ to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shaders/ink_sparkle.frag to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shaders/ink_sparkle.frag to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/AssetManifest.bin to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/fonts/ to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/fonts/MaterialIcons-Regular.otf to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/assets/ to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/assets/ to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/assets/palettes.json to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/Info.plist to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDarwin.dylib to device
[ 44%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDarwin.dylib to device
[ 44%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftQuartzCore.dylib to device
[ 44%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreAudio.dylib to device
[ 45%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreAudio.dylib to device
[ 45%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 46%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 47%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 48%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 48%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreMedia.dylib to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreMedia.dylib to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/embedded.mobileprovision to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Info.plist to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/PkgInfo to device
[ 52%] CreatingStagingDirectory
[ 57%] ExtractingPackage
[ 60%] InspectingPackage
[ 65%] PreflightingApplication
[ 70%] VerifyingApplication
[ 75%] CreatingContainer
[ 80%] InstallingApplication
[ 85%] PostflightingApplication
[ 90%] SandboxingApplication
[ 95%] GeneratingApplicationMap
[100%] InstallComplete
[100%] Installed package /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app
------ Debug phase ------
Starting debug of 82b15a4a69ad47c74fe3e71b62a6a6e2842efe25 (D22AP, iPhone X, iphoneos, arm64, 16.3.1, 20D67) a.k.a. 'Felixs iPhone' connected through USB...
[ 0%] Looking up developer disk image
[ 95%] Developer disk image mounted successfully
Symbol Path: /Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols
[100%] Connecting to remote debug server
-------------------------
(lldb) command source -s 0 '/tmp/6A794CCC-74AD-4307-B01C-BC045C28FEB0/fruitstrap-lldb-prep-cmds-82b15a4a69ad47c74fe3e71b62a6a6e2842efe25'
Executing commands in '/tmp/6A794CCC-74AD-4307-B01C-BC045C28FEB0/fruitstrap-lldb-prep-cmds-82b15a4a69ad47c74fe3e71b62a6a6e2842efe25'.
(lldb) platform select remote-'ios' --sysroot '/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols'
Platform: remote-ios
Connected: no
Sysroot: /Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols
SDK Path: "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols"
(lldb) target create "/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app"
Current executable set to '/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app' (arm64).
(lldb) script fruitstrap_device_app="/private/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC/ios_1.0.4+7.app"
(lldb) script fruitstrap_connect_url="connect://127.0.0.1:62320"
(lldb) script fruitstrap_output_path=""
(lldb) script fruitstrap_error_path=""
(lldb) target modules search-paths add /usr "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols/usr" /System "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols/System" "/private/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC" "/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e" "/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC" "/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e" /Developer "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols/Developer"
(lldb) command script import "/tmp/6A794CCC-74AD-4307-B01C-BC045C28FEB0/fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.py"
(lldb) command script add -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.connect_command connect
(lldb) command script add -s asynchronous -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.run_command run
(lldb) command script add -s asynchronous -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.autoexit_command autoexit
(lldb) command script add -s asynchronous -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.safequit_command safequit
(lldb) connect
(lldb) run
success
PROCESS_EXITED
@@ -0,0 +1,168 @@
[....] Waiting for iOS device to be connected
[....] Using 82b15a4a69ad47c74fe3e71b62a6a6e2842efe25 (D22AP, iPhone X, iphoneos, arm64, 16.3.1, 20D67) a.k.a. 'Felixs iPhone'.
------ Install phase ------
[ 0%] Found 82b15a4a69ad47c74fe3e71b62a6a6e2842efe25 (D22AP, iPhone X, iphoneos, arm64, 16.3.1, 20D67) a.k.a. 'Felixs iPhone' connected through USB, beginning install
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/META-INF/ to device
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/META-INF/com.apple.ZipMetadata.plist to device
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/_CodeSignature/ to device
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/_CodeSignature/CodeResources to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/_CodeSignature/CodeResources to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppIcon60x60@2x.png to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Runner to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/ to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/ to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/ to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/Info.plist to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/Info.plist to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/ to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/Info.plist to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Assets.car to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppFrameworkInfo.plist to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppIcon76x76@2x~ipad.png to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppIcon76x76@2x~ipad.png to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/ to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreImage.dylib to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftObjectiveC.dylib to device
[ 11%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftObjectiveC.dylib to device
[ 11%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 12%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 13%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 14%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 15%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 16%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 17%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 18%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 18%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreGraphics.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreGraphics.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftUIKit.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftMetal.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDispatch.dylib to device
[ 20%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDispatch.dylib to device
[ 20%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftos.dylib to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftos.dylib to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreFoundation.dylib to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/ to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/_CodeSignature/ to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/_CodeSignature/ to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/_CodeSignature/CodeResources to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/icudtl.dat to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 23%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 24%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 25%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 26%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 27%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 28%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 29%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 30%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 31%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/ to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterEngine.h to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterChannels.h to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPlugin.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPlugin.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterAppDelegate.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterTexture.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterEngineGroup.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterEngineGroup.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPlatformViews.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterHeadlessDartRunner.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterCodecs.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/Flutter.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/Flutter.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterViewController.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterMacros.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterDartProject.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterDartProject.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPluginAppLifeCycleDelegate.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterBinaryMessenger.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterCallbackCache.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Modules/ to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Modules/ to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Modules/module.modulemap to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Info.plist to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/ to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/ to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/_CodeSignature/ to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/_CodeSignature/CodeResources to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/App to device
[ 39%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/App to device
[ 39%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/ to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/ to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/NOTICES.Z to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shorebird.yaml to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/AssetManifest.json to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/AssetManifest.json to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/FontManifest.json to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shaders/ to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shaders/ink_sparkle.frag to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shaders/ink_sparkle.frag to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/AssetManifest.bin to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/fonts/ to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/fonts/MaterialIcons-Regular.otf to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/assets/ to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/assets/ to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/assets/palettes.json to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/Info.plist to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDarwin.dylib to device
[ 44%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDarwin.dylib to device
[ 44%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftQuartzCore.dylib to device
[ 44%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreAudio.dylib to device
[ 45%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreAudio.dylib to device
[ 45%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 46%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 47%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 48%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 48%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreMedia.dylib to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreMedia.dylib to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/embedded.mobileprovision to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Info.plist to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/PkgInfo to device
[ 52%] CreatingStagingDirectory
[ 57%] ExtractingPackage
[ 60%] InspectingPackage
[ 65%] PreflightingApplication
[ 70%] VerifyingApplication
[ 75%] CreatingContainer
[ 80%] InstallingApplication
[ 85%] PostflightingApplication
[ 90%] SandboxingApplication
[ 95%] GeneratingApplicationMap
[100%] InstallComplete
[100%] Installed package /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app
------ Debug phase ------
Starting debug of 82b15a4a69ad47c74fe3e71b62a6a6e2842efe25 (D22AP, iPhone X, iphoneos, arm64, 16.3.1, 20D67) a.k.a. 'Felixs iPhone' connected through USB...
[ 0%] Looking up developer disk image
[ 95%] Developer disk image mounted successfully
Symbol Path: /Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols
[100%] Connecting to remote debug server
-------------------------
(lldb) command source -s 0 '/tmp/6A794CCC-74AD-4307-B01C-BC045C28FEB0/fruitstrap-lldb-prep-cmds-82b15a4a69ad47c74fe3e71b62a6a6e2842efe25'
Executing commands in '/tmp/6A794CCC-74AD-4307-B01C-BC045C28FEB0/fruitstrap-lldb-prep-cmds-82b15a4a69ad47c74fe3e71b62a6a6e2842efe25'.
(lldb) platform select remote-'ios' --sysroot '/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols'
Platform: remote-ios
Connected: no
Sysroot: /Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols
SDK Path: "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols"
(lldb) target create "/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app"
Current executable set to '/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app' (arm64).
(lldb) script fruitstrap_device_app="/private/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC/ios_1.0.4+7.app"
(lldb) script fruitstrap_connect_url="connect://127.0.0.1:62320"
(lldb) script fruitstrap_output_path=""
(lldb) script fruitstrap_error_path=""
(lldb) target modules search-paths add /usr "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols/usr" /System "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols/System" "/private/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC" "/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e" "/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC" "/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e" /Developer "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols/Developer"
(lldb) command script import "/tmp/6A794CCC-74AD-4307-B01C-BC045C28FEB0/fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.py"
(lldb) command script add -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.connect_command connect
(lldb) command script add -s asynchronous -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.run_command run
(lldb) command script add -s asynchronous -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.autoexit_command autoexit
(lldb) command script add -s asynchronous -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.safequit_command safequit
Process 42 resuming
(lldb) connect
(lldb) run
success
@@ -0,0 +1,168 @@
[....] Waiting for iOS device to be connected
[....] Using 82b15a4a69ad47c74fe3e71b62a6a6e2842efe25 (D22AP, iPhone X, iphoneos, arm64, 16.3.1, 20D67) a.k.a. 'Felixs iPhone'.
------ Install phase ------
[ 0%] Found 82b15a4a69ad47c74fe3e71b62a6a6e2842efe25 (D22AP, iPhone X, iphoneos, arm64, 16.3.1, 20D67) a.k.a. 'Felixs iPhone' connected through USB, beginning install
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/META-INF/ to device
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/META-INF/com.apple.ZipMetadata.plist to device
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/_CodeSignature/ to device
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/_CodeSignature/CodeResources to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/_CodeSignature/CodeResources to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppIcon60x60@2x.png to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Runner to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/ to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/ to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/ to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/Info.plist to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/Info.plist to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/ to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/Info.plist to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Assets.car to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppFrameworkInfo.plist to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppIcon76x76@2x~ipad.png to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppIcon76x76@2x~ipad.png to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/ to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreImage.dylib to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftObjectiveC.dylib to device
[ 11%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftObjectiveC.dylib to device
[ 11%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 12%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 13%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 14%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 15%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 16%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 17%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 18%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 18%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreGraphics.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreGraphics.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftUIKit.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftMetal.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDispatch.dylib to device
[ 20%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDispatch.dylib to device
[ 20%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftos.dylib to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftos.dylib to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreFoundation.dylib to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/ to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/_CodeSignature/ to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/_CodeSignature/ to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/_CodeSignature/CodeResources to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/icudtl.dat to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 23%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 24%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 25%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 26%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 27%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 28%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 29%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 30%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 31%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/ to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterEngine.h to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterChannels.h to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPlugin.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPlugin.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterAppDelegate.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterTexture.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterEngineGroup.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterEngineGroup.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPlatformViews.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterHeadlessDartRunner.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterCodecs.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/Flutter.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/Flutter.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterViewController.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterMacros.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterDartProject.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterDartProject.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPluginAppLifeCycleDelegate.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterBinaryMessenger.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterCallbackCache.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Modules/ to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Modules/ to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Modules/module.modulemap to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Info.plist to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/ to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/ to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/_CodeSignature/ to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/_CodeSignature/CodeResources to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/App to device
[ 39%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/App to device
[ 39%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/ to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/ to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/NOTICES.Z to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shorebird.yaml to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/AssetManifest.json to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/AssetManifest.json to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/FontManifest.json to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shaders/ to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shaders/ink_sparkle.frag to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shaders/ink_sparkle.frag to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/AssetManifest.bin to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/fonts/ to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/fonts/MaterialIcons-Regular.otf to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/assets/ to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/assets/ to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/assets/palettes.json to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/Info.plist to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDarwin.dylib to device
[ 44%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDarwin.dylib to device
[ 44%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftQuartzCore.dylib to device
[ 44%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreAudio.dylib to device
[ 45%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreAudio.dylib to device
[ 45%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 46%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 47%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 48%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 48%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreMedia.dylib to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreMedia.dylib to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/embedded.mobileprovision to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Info.plist to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/PkgInfo to device
[ 52%] CreatingStagingDirectory
[ 57%] ExtractingPackage
[ 60%] InspectingPackage
[ 65%] PreflightingApplication
[ 70%] VerifyingApplication
[ 75%] CreatingContainer
[ 80%] InstallingApplication
[ 85%] PostflightingApplication
[ 90%] SandboxingApplication
[ 95%] GeneratingApplicationMap
[100%] InstallComplete
[100%] Installed package /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app
------ Debug phase ------
Starting debug of 82b15a4a69ad47c74fe3e71b62a6a6e2842efe25 (D22AP, iPhone X, iphoneos, arm64, 16.3.1, 20D67) a.k.a. 'Felixs iPhone' connected through USB...
[ 0%] Looking up developer disk image
[ 95%] Developer disk image mounted successfully
Symbol Path: /Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols
[100%] Connecting to remote debug server
-------------------------
(lldb) command source -s 0 '/tmp/6A794CCC-74AD-4307-B01C-BC045C28FEB0/fruitstrap-lldb-prep-cmds-82b15a4a69ad47c74fe3e71b62a6a6e2842efe25'
Executing commands in '/tmp/6A794CCC-74AD-4307-B01C-BC045C28FEB0/fruitstrap-lldb-prep-cmds-82b15a4a69ad47c74fe3e71b62a6a6e2842efe25'.
(lldb) platform select remote-'ios' --sysroot '/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols'
Platform: remote-ios
Connected: no
Sysroot: /Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols
SDK Path: "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols"
(lldb) target create "/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app"
Current executable set to '/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app' (arm64).
(lldb) script fruitstrap_device_app="/private/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC/ios_1.0.4+7.app"
(lldb) script fruitstrap_connect_url="connect://127.0.0.1:62320"
(lldb) script fruitstrap_output_path=""
(lldb) script fruitstrap_error_path=""
(lldb) target modules search-paths add /usr "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols/usr" /System "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols/System" "/private/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC" "/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e" "/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC" "/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e" /Developer "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols/Developer"
(lldb) command script import "/tmp/6A794CCC-74AD-4307-B01C-BC045C28FEB0/fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.py"
(lldb) command script add -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.connect_command connect
(lldb) command script add -s asynchronous -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.run_command run
(lldb) command script add -s asynchronous -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.autoexit_command autoexit
(lldb) command script add -s asynchronous -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.safequit_command safequit
(lldb) connect
(lldb) run
success
PROCESS_STOPPED
@@ -0,0 +1,183 @@
[....] Waiting for iOS device to be connected
[....] Using 82b15a4a69ad47c74fe3e71b62a6a6e2842efe25 (D22AP, iPhone X, iphoneos, arm64, 16.3.1, 20D67) a.k.a. 'Felixs iPhone'.
------ Install phase ------
[ 0%] Found 82b15a4a69ad47c74fe3e71b62a6a6e2842efe25 (D22AP, iPhone X, iphoneos, arm64, 16.3.1, 20D67) a.k.a. 'Felixs iPhone' connected through USB, beginning install
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/META-INF/ to device
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/META-INF/com.apple.ZipMetadata.plist to device
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/_CodeSignature/ to device
[ 5%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/_CodeSignature/CodeResources to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/_CodeSignature/CodeResources to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppIcon60x60@2x.png to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Runner to device
[ 6%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/ to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/ to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/ to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib to device
[ 7%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/Info.plist to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/Main.storyboardc/Info.plist to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/ to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib to device
[ 8%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Base.lproj/LaunchScreen.storyboardc/Info.plist to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Assets.car to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppFrameworkInfo.plist to device
[ 9%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppIcon76x76@2x~ipad.png to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/AppIcon76x76@2x~ipad.png to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/ to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreImage.dylib to device
[ 10%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftObjectiveC.dylib to device
[ 11%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftObjectiveC.dylib to device
[ 11%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 12%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 13%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 14%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 15%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 16%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 17%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 18%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCore.dylib to device
[ 18%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreGraphics.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreGraphics.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftUIKit.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftMetal.dylib to device
[ 19%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDispatch.dylib to device
[ 20%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDispatch.dylib to device
[ 20%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftos.dylib to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftos.dylib to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreFoundation.dylib to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/ to device
[ 21%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/_CodeSignature/ to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/_CodeSignature/ to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/_CodeSignature/CodeResources to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/icudtl.dat to device
[ 22%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 23%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 24%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 25%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 26%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 27%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 28%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 29%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 30%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 31%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Flutter to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/ to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterEngine.h to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterChannels.h to device
[ 32%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPlugin.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPlugin.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterAppDelegate.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterTexture.h to device
[ 33%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterEngineGroup.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterEngineGroup.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPlatformViews.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterHeadlessDartRunner.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterCodecs.h to device
[ 34%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/Flutter.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/Flutter.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterViewController.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterMacros.h to device
[ 35%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterDartProject.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterDartProject.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterPluginAppLifeCycleDelegate.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterBinaryMessenger.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Headers/FlutterCallbackCache.h to device
[ 36%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Modules/ to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Modules/ to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Modules/module.modulemap to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/Flutter.framework/Info.plist to device
[ 37%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/ to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/ to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/_CodeSignature/ to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/_CodeSignature/CodeResources to device
[ 38%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/App to device
[ 39%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/App to device
[ 39%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/ to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/ to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/NOTICES.Z to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shorebird.yaml to device
[ 40%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/AssetManifest.json to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/AssetManifest.json to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/FontManifest.json to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shaders/ to device
[ 41%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shaders/ink_sparkle.frag to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/shaders/ink_sparkle.frag to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/AssetManifest.bin to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/fonts/ to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/fonts/MaterialIcons-Regular.otf to device
[ 42%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/assets/ to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/assets/ to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets/assets/palettes.json to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/App.framework/Info.plist to device
[ 43%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDarwin.dylib to device
[ 44%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftDarwin.dylib to device
[ 44%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftQuartzCore.dylib to device
[ 44%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreAudio.dylib to device
[ 45%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreAudio.dylib to device
[ 45%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 46%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 47%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 48%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftFoundation.dylib to device
[ 48%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreMedia.dylib to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Frameworks/libswiftCoreMedia.dylib to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/embedded.mobileprovision to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/Info.plist to device
[ 49%] Copying /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app/PkgInfo to device
[ 52%] CreatingStagingDirectory
[ 57%] ExtractingPackage
[ 60%] InspectingPackage
[ 65%] PreflightingApplication
[ 70%] VerifyingApplication
[ 75%] CreatingContainer
[ 80%] InstallingApplication
[ 85%] PostflightingApplication
[ 90%] SandboxingApplication
[ 95%] GeneratingApplicationMap
[100%] InstallComplete
[100%] Installed package /Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app
------ Debug phase ------
Starting debug of 82b15a4a69ad47c74fe3e71b62a6a6e2842efe25 (D22AP, iPhone X, iphoneos, arm64, 16.3.1, 20D67) a.k.a. 'Felixs iPhone' connected through USB...
[ 0%] Looking up developer disk image
[ 95%] Developer disk image mounted successfully
Symbol Path: /Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols
[100%] Connecting to remote debug server
-------------------------
(lldb) command source -s 0 '/tmp/6A794CCC-74AD-4307-B01C-BC045C28FEB0/fruitstrap-lldb-prep-cmds-82b15a4a69ad47c74fe3e71b62a6a6e2842efe25'
Executing commands in '/tmp/6A794CCC-74AD-4307-B01C-BC045C28FEB0/fruitstrap-lldb-prep-cmds-82b15a4a69ad47c74fe3e71b62a6a6e2842efe25'.
(lldb) platform select remote-'ios' --sysroot '/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols'
Platform: remote-ios
Connected: no
Sysroot: /Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols
SDK Path: "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols"
(lldb) target create "/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app"
Current executable set to '/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e/ios_1.0.4+7.app' (arm64).
(lldb) script fruitstrap_device_app="/private/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC/ios_1.0.4+7.app"
(lldb) script fruitstrap_connect_url="connect://127.0.0.1:62320"
(lldb) script fruitstrap_output_path=""
(lldb) script fruitstrap_error_path=""
(lldb) target modules search-paths add /usr "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols/usr" /System "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols/System" "/private/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC" "/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e" "/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC" "/Users/felix/Development/github.com/shorebirdtech/_shorebird/shorebird/bin/cache/previews/b3be02c7-97a8-4135-be71-814cc43d096e" /Developer "/Users/felix/Library/Developer/Xcode/iOS DeviceSupport/16.3.1 (20D67)/Symbols/Developer"
(lldb) command script import "/tmp/6A794CCC-74AD-4307-B01C-BC045C28FEB0/fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.py"
(lldb) command script add -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.connect_command connect
(lldb) command script add -s asynchronous -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.run_command run
(lldb) command script add -s asynchronous -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.autoexit_command autoexit
(lldb) command script add -s asynchronous -f fruitstrap_82b15a4a69ad47c74fe3e71b62a6a6e2842efe25.safequit_command safequit
(lldb) connect
(lldb) run
success
2023-07-26 10:59:09.856463-0500 Runner[980:32510] [SceneConfiguration] Info.plist contained no UIScene configuration dictionary (looking for configuration named "(no name)")
contained no UIScene configuration dictionary (looking for configuration named "(no name)")
2023-07-26 10:59:09.870538-0500 Runner[980:32510] SANITY CHECK: Running precompiled code.
2023-07-26 10:59:09.870893-0500 Runner[980:32510] Using App.framework from /private/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC/ios_1.0.4+7.app/Frameworks/App.framework
2023-07-26 10:59:09.871314-0500 Runner[980:32510] ASSET PATH /private/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC/ios_1.0.4+7.app/Frameworks/App.framework/flutter_assets
[00:00:00.001] (21378f6c0) INFO libapp_path: "/var/containers/Bundle/Application/AA5DF160-3F66-4239-9F6A-88D9D10F18DC/ios_1.0.4+7.app/Frameworks/App.framework/App"
[00:00:00.002] (21378f6c0) INFO Updater configured with: None
No such file or directory (os error 2)
2023-07-26 10:59:09.877841-0500 Runner[980:32510] [VERBOSE0:shorebird.cc(96)] Shorebird updater: no active patch.
2023-07-26 10:59:09.877863-0500 Runner[980:32510] [VERBOSE0:shorebird.cc(99)] Starting Shorebird update
[00:00:00.003] (16dc3f000) INFO 2023-07-26 10:59:09.878262-0500 Runner[980:32510] [VERBOSE0:FlutterViewController.mm(231)] CPU::Id(): simarm64
No cached state, making empty: No such file or directory (os error 2)
ng patch check request: PatchCheckRequest { app_id: "b3be02c7-97a8-4135-be71-814cc43d096e", channel: "stable", release_version: "1.0.4+7", patch_number: None, platform: "ios", arch: "aarch64" }
2023-07-26 10:59:09.999573-0500 Runner[980:32510] [VERBOSE-2:FlutterDarwinContextMetalImpeller.mm(35)] Using the Impeller rendering backend.
[00:00:00.611] (16dc3f000) INFO Patch check response: PatchCheckResponse { patch_available: false, patch: None }
[00:00:00.611] (16dc3f000) INFO Update thread finished with status: No update
@@ -2,6 +2,7 @@ import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:archive/archive.dart';
import 'package:args/args.dart';
import 'package:mason_logger/mason_logger.dart';
import 'package:mocktail/mocktail.dart';
@@ -13,6 +14,7 @@ import 'package:shorebird_cli/src/bundletool.dart';
import 'package:shorebird_cli/src/cache.dart';
import 'package:shorebird_cli/src/code_push_client_wrapper.dart';
import 'package:shorebird_cli/src/commands/commands.dart';
import 'package:shorebird_cli/src/ios_deploy.dart';
import 'package:shorebird_cli/src/logger.dart';
import 'package:shorebird_code_push_client/shorebird_code_push_client.dart';
import 'package:test/test.dart';
@@ -48,21 +50,18 @@ class _MockRelease extends Mock implements Release {}
class _MockReleaseArtifact extends Mock implements ReleaseArtifact {}
class _MockIOSDeploy extends Mock implements IOSDeploy {}
void main() {
group(PreviewCommand, () {
const appId = 'test-app-id';
const appDisplayName = 'Test App';
const platform = ReleasePlatform.android;
const releaseVersion = '1.2.3';
const releaseId = 42;
const releaseArtifactUrl = 'https://example.com/release.aab';
const packageName = 'com.example.app';
late Adb adb;
late AppMetadata app;
late ArgResults argResults;
late Auth auth;
late Bundletool bundletool;
late Cache cache;
late CodePushClientWrapper codePushClientWrapper;
late HttpClient httpClient;
@@ -70,7 +69,6 @@ void main() {
late HttpClientResponse httpClientResponse;
late Logger logger;
late Directory previewDirectory;
late Process process;
late Progress progress;
late Release release;
late ReleaseArtifact releaseArtifact;
@@ -81,9 +79,7 @@ void main() {
() => runScoped(
body,
values: {
adbRef.overrideWith(() => adb),
authRef.overrideWith(() => auth),
bundletoolRef.overrideWith(() => bundletool),
cacheRef.overrideWith(() => cache),
codePushClientWrapperRef.overrideWith(() => codePushClientWrapper),
loggerRef.overrideWith(() => logger),
@@ -93,16 +89,6 @@ void main() {
);
}
String aabPath() => p.join(
previewDirectory.path,
'${platform}_$releaseVersion.aab',
);
String apksPath() => p.join(
previewDirectory.path,
'${platform}_$releaseVersion.apks',
);
setUpAll(() {
registerFallbackValue(ReleasePlatform.android);
registerFallbackValue(StreamController<List<int>>());
@@ -110,11 +96,9 @@ void main() {
});
setUp(() {
adb = _MockAdb();
app = _MockAppMetadata();
argResults = _MockArgResults();
auth = _MockAuth();
bundletool = _MockBundletool();
cache = _MockCache();
codePushClientWrapper = _MockCodePushClientWrapper();
httpClient = _MockHttpClient();
@@ -122,7 +106,6 @@ void main() {
httpClientResponse = _MockHttpClientResponse();
logger = _MockLogger();
previewDirectory = Directory.systemTemp.createTempSync();
process = _MockProcess();
progress = _MockProgress();
release = _MockRelease();
releaseArtifact = _MockReleaseArtifact();
@@ -130,7 +113,6 @@ void main() {
when(() => argResults['app-id']).thenReturn(appId);
when(() => argResults['release-version']).thenReturn(releaseVersion);
when(() => argResults['platform']).thenReturn(platform.name);
when(() => auth.isAuthenticated).thenReturn(true);
when(() => cache.getPreviewDirectory(any())).thenReturn(previewDirectory);
when(
@@ -155,37 +137,7 @@ void main() {
ReleasePlatform.android: ReleaseStatus.active,
ReleasePlatform.ios: ReleaseStatus.active,
});
when(() => releaseArtifact.url).thenReturn(releaseArtifactUrl);
when(() => logger.progress(any())).thenReturn(progress);
when(
() => httpClient.getUrl(any()),
).thenAnswer((_) async => httpClientRequest);
when(
() => httpClientRequest.close(),
).thenAnswer((_) async => httpClientResponse);
when(() => httpClientResponse.statusCode).thenReturn(HttpStatus.ok);
when(() => httpClientResponse.pipe(any())).thenAnswer((_) async {});
when(
() => bundletool.getPackageName(any()),
).thenAnswer((_) async => packageName);
when(
() => bundletool.buildApks(
bundle: any(named: 'bundle'),
output: any(named: 'output'),
),
).thenAnswer((_) async {});
when(
() => bundletool.installApks(apks: any(named: 'apks')),
).thenAnswer((_) async {});
when(() => adb.startApp(any())).thenAnswer((_) async {});
when(
() => adb.logcat(filter: any(named: 'filter')),
).thenAnswer((_) async => process);
when(
() => process.exitCode,
).thenAnswer((_) async => ExitCode.success.code);
when(() => process.stdout).thenAnswer((_) => const Stream.empty());
when(() => process.stderr).thenAnswer((_) => const Stream.empty());
});
test('returns no user error when not logged in', () async {
@@ -208,235 +160,450 @@ void main() {
).called(1);
});
test('exits with code 70 when querying for release artifact fails',
() async {
final exception = Exception('oops');
when(
() => codePushClientWrapper.getReleaseArtifact(
appId: any(named: 'appId'),
releaseId: any(named: 'releaseId'),
arch: any(named: 'arch'),
platform: any(named: 'platform'),
),
).thenThrow(exception);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(
() => codePushClientWrapper.getReleaseArtifact(
appId: appId,
releaseId: releaseId,
arch: 'aab',
platform: platform,
),
).called(1);
group('android', () {
const platform = ReleasePlatform.android;
const releaseArtifactUrl = 'https://example.com/release.aab';
const packageName = 'com.example.app';
late Adb adb;
late Bundletool bundletool;
late Process process;
String aabPath() => p.join(
previewDirectory.path,
'${platform.name}_$releaseVersion.aab',
);
String apksPath() => p.join(
previewDirectory.path,
'${platform.name}_$releaseVersion.apks',
);
R runWithOverrides<R>(R Function() body) {
return HttpOverrides.runZoned(
() => runScoped(
body,
values: {
adbRef.overrideWith(() => adb),
authRef.overrideWith(() => auth),
bundletoolRef.overrideWith(() => bundletool),
cacheRef.overrideWith(() => cache),
codePushClientWrapperRef
.overrideWith(() => codePushClientWrapper),
loggerRef.overrideWith(() => logger),
},
),
createHttpClient: (_) => httpClient,
);
}
setUp(() {
adb = _MockAdb();
bundletool = _MockBundletool();
process = _MockProcess();
when(() => argResults['platform']).thenReturn(platform.name);
when(
() => httpClient.getUrl(any()),
).thenAnswer((_) async => httpClientRequest);
when(
() => httpClientRequest.close(),
).thenAnswer((_) async => httpClientResponse);
when(() => httpClientResponse.statusCode).thenReturn(HttpStatus.ok);
when(() => httpClientResponse.pipe(any())).thenAnswer((_) async {});
when(
() => bundletool.getPackageName(any()),
).thenAnswer((_) async => packageName);
when(
() => bundletool.buildApks(
bundle: any(named: 'bundle'),
output: any(named: 'output'),
),
).thenAnswer((_) async {});
when(
() => bundletool.installApks(apks: any(named: 'apks')),
).thenAnswer((_) async {});
when(() => adb.startApp(any())).thenAnswer((_) async {});
when(
() => adb.logcat(filter: any(named: 'filter')),
).thenAnswer((_) async => process);
when(
() => process.exitCode,
).thenAnswer((_) async => ExitCode.success.code);
when(() => process.stdout).thenAnswer((_) => const Stream.empty());
when(() => process.stderr).thenAnswer((_) => const Stream.empty());
when(() => releaseArtifact.url).thenReturn(releaseArtifactUrl);
});
test('exits with code 70 when querying for release artifact fails',
() async {
final exception = Exception('oops');
when(
() => codePushClientWrapper.getReleaseArtifact(
appId: any(named: 'appId'),
releaseId: any(named: 'releaseId'),
arch: any(named: 'arch'),
platform: any(named: 'platform'),
),
).thenThrow(exception);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(
() => codePushClientWrapper.getReleaseArtifact(
appId: appId,
releaseId: releaseId,
arch: 'aab',
platform: platform,
),
).called(1);
});
test('exits with code 70 when downloading release artifact fails',
() async {
final exception = Exception('oops');
when(() => httpClient.getUrl(any())).thenThrow(exception);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(() => httpClient.getUrl(Uri.parse(releaseArtifactUrl)))
.called(1);
});
test(
'exits with code 70 when downloading release artifact '
'returns non-200 response', () async {
when(
() => httpClientResponse.statusCode,
).thenReturn(HttpStatus.badRequest);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(() => httpClientRequest.close()).called(1);
verify(() => httpClientResponse.statusCode).called(1);
});
test('exits with code 70 when extracting metadata fails', () async {
final exception = Exception('oops');
when(() => bundletool.getPackageName(any())).thenThrow(exception);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(() => bundletool.getPackageName(aabPath())).called(1);
});
test('exits with code 70 when building apks fails', () async {
final exception = Exception('oops');
when(
() => bundletool.buildApks(
bundle: any(named: 'bundle'),
output: any(named: 'output'),
),
).thenThrow(exception);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(
() => bundletool.buildApks(bundle: aabPath(), output: apksPath()),
).called(1);
});
test('exits with code 70 when installing apks fails', () async {
final exception = Exception('oops');
when(
() => bundletool.installApks(apks: any(named: 'apks')),
).thenThrow(exception);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(() => bundletool.installApks(apks: apksPath())).called(1);
});
test('exits with code 70 when starting app fails', () async {
final exception = Exception('oops');
when(() => adb.startApp(any())).thenThrow(exception);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(() => adb.startApp(packageName)).called(1);
});
test('exits with non-zero exit code when logcat process fails', () async {
when(() => process.exitCode).thenAnswer((_) async => 1);
final result = await runWithOverrides(command.run);
expect(result, equals(1));
verify(() => adb.logcat(filter: 'flutter')).called(1);
});
test('pipes stdout output to logger', () async {
final completer = Completer<int>();
when(() => process.exitCode).thenAnswer((_) => completer.future);
const output = 'hello world';
when(
() => process.stdout,
).thenAnswer((_) => Stream.value(utf8.encode(output)));
final result = runWithOverrides(command.run);
completer.complete(0);
await expectLater(await result, equals(ExitCode.success.code));
verify(() => logger.info(output)).called(1);
});
test('pipes stderr output to logger', () async {
final completer = Completer<int>();
when(() => process.exitCode).thenAnswer((_) => completer.future);
const output = 'hello world';
when(
() => process.stderr,
).thenAnswer((_) => Stream.value(utf8.encode(output)));
final result = runWithOverrides(command.run);
completer.complete(0);
await expectLater(await result, equals(ExitCode.success.code));
verify(() => logger.err(output)).called(1);
});
test('queries for apps when app-id is not specified', () async {
when(() => argResults['app-id']).thenReturn(null);
when(
() => logger.chooseOne<AppMetadata>(
any(),
choices: any(named: 'choices'),
display: any(named: 'display'),
),
).thenReturn(app);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.success.code));
final captured = verify(
() => logger.chooseOne<AppMetadata>(
any(),
choices: any(named: 'choices'),
display: captureAny(named: 'display'),
),
).captured.single as String Function(AppMetadata);
expect(captured(app), equals(app.displayName));
verify(() => codePushClientWrapper.getApps()).called(1);
});
test('prompts for platforms when platform is not specified', () async {
when(() => argResults['platform']).thenReturn(null);
when(
() => logger.chooseOne<String>(
any(),
choices: any(named: 'choices'),
display: any(named: 'display'),
),
).thenReturn(platform.name);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.success.code));
final platforms = verify(
() => logger.chooseOne<String>(
any(),
choices: captureAny(named: 'choices'),
display: any(named: 'display'),
),
).captured.single as List<String>;
expect(
platforms,
equals([
ReleasePlatform.android.name,
ReleasePlatform.ios.name,
]),
);
});
test('exits early when no apps are found', () async {
when(() => argResults['app-id']).thenReturn(null);
when(() => codePushClientWrapper.getApps()).thenAnswer((_) async => []);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.success.code));
verifyNever(
() => logger.chooseOne<AppMetadata>(
any(),
choices: any(named: 'choices'),
display: captureAny(named: 'display'),
),
);
verify(() => codePushClientWrapper.getApps()).called(1);
verify(() => logger.info('No apps found')).called(1);
});
test('exits early when no releases are found', () async {
when(() => argResults['release-version']).thenReturn(null);
when(
() => codePushClientWrapper.getReleases(appId: any(named: 'appId')),
).thenAnswer((_) async => []);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.success.code));
verifyNever(
() => logger.chooseOne<AppMetadata>(
any(),
choices: any(named: 'choices'),
display: captureAny(named: 'display'),
),
);
verify(() => codePushClientWrapper.getReleases(appId: appId)).called(1);
verify(() => logger.info('No releases found')).called(1);
});
test(
'queries for releases when '
'release-version is not specified', () async {
when(() => argResults['release-version']).thenReturn(null);
when(
() => logger.chooseOne<Release>(
any(),
choices: any(named: 'choices'),
display: any(named: 'display'),
),
).thenReturn(release);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.success.code));
final captured = verify(
() => logger.chooseOne<Release>(
any(),
choices: any(named: 'choices'),
display: captureAny(named: 'display'),
),
).captured.single as String Function(Release);
expect(captured(release), equals(releaseVersion));
verify(() => codePushClientWrapper.getReleases(appId: appId)).called(1);
});
});
test('exits with code 70 when downloading release artifact fails',
() async {
final exception = Exception('oops');
when(() => httpClient.getUrl(any())).thenThrow(exception);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(() => httpClient.getUrl(Uri.parse(releaseArtifactUrl))).called(1);
});
group('ios', () {
const releaseArtifactUrl = 'https://example.com/runner.app';
const platform = ReleasePlatform.ios;
late IOSDeploy iosDeploy;
test(
'exits with code 70 when downloading release artifact '
'returns non-200 response', () async {
when(
() => httpClientResponse.statusCode,
).thenReturn(HttpStatus.badRequest);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(() => httpClientRequest.close()).called(1);
verify(() => httpClientResponse.statusCode).called(1);
});
String runnerPath() => p.join(
previewDirectory.path,
'${platform.name}_$releaseVersion.app',
);
test('exits with code 70 when extracting metadata fails', () async {
final exception = Exception('oops');
when(() => bundletool.getPackageName(any())).thenThrow(exception);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(() => bundletool.getPackageName(aabPath())).called(1);
});
R runWithOverrides<R>(R Function() body) {
return HttpOverrides.runZoned(
() => runScoped(
body,
values: {
adbRef.overrideWith(() => adb),
authRef.overrideWith(() => auth),
bundletoolRef.overrideWith(() => bundletool),
cacheRef.overrideWith(() => cache),
codePushClientWrapperRef
.overrideWith(() => codePushClientWrapper),
iosDeployRef.overrideWith(() => iosDeploy),
loggerRef.overrideWith(() => logger),
},
),
createHttpClient: (_) => httpClient,
);
}
test('exits with code 70 when building apks fails', () async {
final exception = Exception('oops');
when(
() => bundletool.buildApks(
bundle: any(named: 'bundle'),
output: any(named: 'output'),
),
).thenThrow(exception);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(
() => bundletool.buildApks(bundle: aabPath(), output: apksPath()),
).called(1);
});
setUp(() {
iosDeploy = _MockIOSDeploy();
when(() => argResults['platform']).thenReturn(platform.name);
when(
() => httpClient.getUrl(any()),
).thenAnswer((_) async => httpClientRequest);
when(
() => httpClientRequest.close(),
).thenAnswer((_) async => httpClientResponse);
when(() => httpClientResponse.statusCode).thenReturn(HttpStatus.ok);
when(() => httpClientResponse.pipe(any()))
.thenAnswer((invocation) async {
(invocation.positionalArguments.single as IOSink)
.add(ZipEncoder().encode(Archive())!);
// Wait 1 tick for the content to be written.
await Future<void>.delayed(Duration.zero);
});
when(
() => iosDeploy.installAndLaunchApp(
bundlePath: any(named: 'bundlePath'),
deviceId: any(named: 'deviceId'),
),
).thenAnswer((_) async => ExitCode.success.code);
when(() => releaseArtifact.url).thenReturn(releaseArtifactUrl);
});
test('exits with code 70 when installing apks fails', () async {
final exception = Exception('oops');
when(
() => bundletool.installApks(apks: any(named: 'apks')),
).thenThrow(exception);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(() => bundletool.installApks(apks: apksPath())).called(1);
});
test('exits with code 70 when querying for release artifact fails',
() async {
final exception = Exception('oops');
when(
() => codePushClientWrapper.getReleaseArtifact(
appId: any(named: 'appId'),
releaseId: any(named: 'releaseId'),
arch: any(named: 'arch'),
platform: any(named: 'platform'),
),
).thenThrow(exception);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(
() => codePushClientWrapper.getReleaseArtifact(
appId: appId,
releaseId: releaseId,
arch: 'runner',
platform: platform,
),
).called(1);
});
test('exits with code 70 when starting app fails', () async {
final exception = Exception('oops');
when(() => adb.startApp(any())).thenThrow(exception);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(() => adb.startApp(packageName)).called(1);
});
test('exits with code 70 when downloading release artifact fails',
() async {
final exception = Exception('oops');
when(() => httpClient.getUrl(any())).thenThrow(exception);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(
() => httpClient.getUrl(Uri.parse(releaseArtifactUrl)),
).called(1);
});
test('exits with non-zero exit code when logcat process fails', () async {
when(() => process.exitCode).thenAnswer((_) async => 1);
final result = await runWithOverrides(command.run);
expect(result, equals(1));
verify(() => adb.logcat(filter: 'flutter')).called(1);
});
test(
'exits with code 70 when downloading release artifact '
'returns non-200 response', () async {
when(
() => httpClientResponse.statusCode,
).thenReturn(HttpStatus.badRequest);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(() => httpClientRequest.close()).called(1);
verify(() => httpClientResponse.statusCode).called(1);
});
test('pipes stdout output to logger', () async {
final completer = Completer<int>();
when(() => process.exitCode).thenAnswer((_) => completer.future);
const output = 'hello world';
when(
() => process.stdout,
).thenAnswer((_) => Stream.value(utf8.encode(output)));
final result = runWithOverrides(command.run);
completer.complete(0);
await expectLater(await result, equals(ExitCode.success.code));
verify(() => logger.info(output)).called(1);
});
test(
'exits with code 70 when extracting '
'release artifact fails', () async {
when(
() => httpClientResponse.pipe(any()),
).thenThrow(Exception());
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(() => httpClientRequest.close()).called(1);
verify(() => httpClientResponse.statusCode).called(1);
verify(() => httpClientResponse.pipe(any())).called(1);
});
test('pipes stderr output to logger', () async {
final completer = Completer<int>();
when(() => process.exitCode).thenAnswer((_) => completer.future);
const output = 'hello world';
when(
() => process.stderr,
).thenAnswer((_) => Stream.value(utf8.encode(output)));
final result = runWithOverrides(command.run);
completer.complete(0);
await expectLater(await result, equals(ExitCode.success.code));
verify(() => logger.err(output)).called(1);
});
test('exits with code 70 when install/launch throws', () async {
final exception = Exception('oops');
when(
() => iosDeploy.installAndLaunchApp(
bundlePath: any(named: 'bundlePath'),
deviceId: any(named: 'deviceId'),
),
).thenThrow(exception);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.software.code));
verify(
() => iosDeploy.installAndLaunchApp(bundlePath: runnerPath()),
).called(1);
});
test('queries for apps when app-id is not specified', () async {
when(() => argResults['app-id']).thenReturn(null);
when(
() => logger.chooseOne<AppMetadata>(
any(),
choices: any(named: 'choices'),
display: any(named: 'display'),
),
).thenReturn(app);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.success.code));
final captured = verify(
() => logger.chooseOne<AppMetadata>(
any(),
choices: any(named: 'choices'),
display: captureAny(named: 'display'),
),
).captured.single as String Function(AppMetadata);
expect(captured(app), equals(app.displayName));
verify(() => codePushClientWrapper.getApps()).called(1);
});
test('prompts for platforms when platform is not specified', () async {
when(() => argResults['platform']).thenReturn(null);
when(
() => logger.chooseOne<String>(
any(),
choices: any(named: 'choices'),
display: any(named: 'display'),
),
).thenReturn(platform.name);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.success.code));
final platforms = verify(
() => logger.chooseOne<String>(
any(),
choices: captureAny(named: 'choices'),
display: any(named: 'display'),
),
).captured.single as List<String>;
expect(
platforms,
equals([
ReleasePlatform.android.name,
ReleasePlatform.ios.name,
]),
);
});
test('exits with unavailable when platform is ios', () async {
when(() => argResults['platform']).thenReturn(ReleasePlatform.ios.name);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.unavailable.code));
});
test('exits early when no apps are found', () async {
when(() => argResults['app-id']).thenReturn(null);
when(() => codePushClientWrapper.getApps()).thenAnswer((_) async => []);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.success.code));
verifyNever(
() => logger.chooseOne<AppMetadata>(
any(),
choices: any(named: 'choices'),
display: captureAny(named: 'display'),
),
);
verify(() => codePushClientWrapper.getApps()).called(1);
verify(() => logger.info('No apps found')).called(1);
});
test('exits early when no releases are found', () async {
when(() => argResults['release-version']).thenReturn(null);
when(
() => codePushClientWrapper.getReleases(appId: any(named: 'appId')),
).thenAnswer((_) async => []);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.success.code));
verifyNever(
() => logger.chooseOne<AppMetadata>(
any(),
choices: any(named: 'choices'),
display: captureAny(named: 'display'),
),
);
verify(() => codePushClientWrapper.getReleases(appId: appId)).called(1);
verify(() => logger.info('No releases found')).called(1);
});
test(
'queries for releases when '
'release-version is not specified', () async {
when(() => argResults['release-version']).thenReturn(null);
when(
() => logger.chooseOne<Release>(
any(),
choices: any(named: 'choices'),
display: any(named: 'display'),
),
).thenReturn(release);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.success.code));
final captured = verify(
() => logger.chooseOne<Release>(
any(),
choices: any(named: 'choices'),
display: captureAny(named: 'display'),
),
).captured.single as String Function(Release);
expect(captured(release), equals(releaseVersion));
verify(() => codePushClientWrapper.getReleases(appId: appId)).called(1);
test('exits with code 0 when install/launch succeeds', () async {
when(
() => iosDeploy.installAndLaunchApp(
bundlePath: any(named: 'bundlePath'),
deviceId: any(named: 'deviceId'),
),
).thenAnswer((_) async => ExitCode.success.code);
final result = await runWithOverrides(command.run);
expect(result, equals(ExitCode.success.code));
verify(
() => iosDeploy.installAndLaunchApp(bundlePath: runnerPath()),
).called(1);
});
});
});
}
@@ -1,3 +1,5 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io' hide Platform;
import 'package:mason_logger/mason_logger.dart';
@@ -19,12 +21,20 @@ class _MockProgress extends Mock implements Progress {}
class _MockShorebirdProcess extends Mock implements ShorebirdProcess {}
class _MockProcess extends Mock implements Process {}
class _MockIOSink extends Mock implements IOSink {}
class _MockProcessSignal extends Mock implements ProcessSignal {}
void main() {
group(IOSDeploy, () {
late Logger logger;
late Platform platform;
late Progress progress;
late ShorebirdProcess process;
late ShorebirdProcess shorebirdProcess;
late Process process;
late IOSink ioSink;
late IOSDeploy iosDeploy;
R runWithOverrides<R>(R Function() body) {
@@ -33,7 +43,7 @@ void main() {
values: {
loggerRef.overrideWith(() => logger),
platformRef.overrideWith(() => platform),
processRef.overrideWith(() => process),
processRef.overrideWith(() => shorebirdProcess),
},
);
}
@@ -41,8 +51,10 @@ void main() {
setUp(() {
logger = _MockLogger();
platform = _MockPlatform();
process = _MockShorebirdProcess();
shorebirdProcess = _MockShorebirdProcess();
process = _MockProcess();
progress = _MockProgress();
ioSink = _MockIOSink();
iosDeploy = IOSDeploy();
final tempDir = Directory.systemTemp.createTempSync();
@@ -51,31 +63,41 @@ void main() {
p.join(tempDir.path, 'bin', 'cache', 'shorebird.snapshot'),
)..create(recursive: true);
when(() => platform.script).thenReturn(shorebirdScriptFile.uri);
when(() => logger.progress(any())).thenReturn(progress);
when(
() => shorebirdProcess.start(any(), any()),
).thenAnswer((_) async => process);
when(() => process.stdout).thenAnswer((_) => const Stream.empty());
when(() => process.stderr).thenAnswer((_) => const Stream.empty());
when(() => process.stdin).thenReturn(ioSink);
when(
() => process.exitCode,
).thenAnswer((_) async => ExitCode.success.code);
when(() => process.kill()).thenReturn(true);
});
group('installAndLaunchApp', () {
test('executes correct command when deviceId is provided', () async {
const processResult = ShorebirdProcessResult(
exitCode: 0,
stdout: '',
stderr: '',
setUp(() {
runWithOverrides(
() => IOSDeploy.iosDeployExecutable.createSync(recursive: true),
);
});
test('executes correct command when deviceId is provided', () async {
when(() => process.stdout).thenAnswer((_) => const Stream.empty());
when(
() => process.run(any(), any()),
).thenAnswer((_) async => processResult);
const deviceId = 'test-device-id';
() => shorebirdProcess.start(any(), any()),
).thenAnswer((_) async => process);
const bundlePath = 'test-bundle-path';
final result = await runWithOverrides(
const deviceId = 'test-device-id';
await runWithOverrides(
() => iosDeploy.installAndLaunchApp(
deviceId: deviceId,
bundlePath: bundlePath,
deviceId: deviceId,
),
);
expect(result, equals(processResult.exitCode));
verify(
() => process.run(any(that: endsWith('ios-deploy')), [
() => shorebirdProcess.start(any(that: endsWith('ios-deploy')), [
'--debug',
'--id',
deviceId,
@@ -86,29 +108,292 @@ void main() {
});
test('executes correct command when deviceId is not provided', () async {
const processResult = ShorebirdProcessResult(
exitCode: 0,
stdout: '',
stderr: '',
);
when(() => process.stdout).thenAnswer((_) => const Stream.empty());
when(
() => process.run(any(), any()),
).thenAnswer((_) async => processResult);
() => shorebirdProcess.start(any(), any()),
).thenAnswer((_) async => process);
const bundlePath = 'test-bundle-path';
final result = await runWithOverrides(
await runWithOverrides(
() => iosDeploy.installAndLaunchApp(
bundlePath: bundlePath,
),
);
expect(result, equals(processResult.exitCode));
verify(
() => process.run(any(that: endsWith('ios-deploy')), [
() => shorebirdProcess.start(any(that: endsWith('ios-deploy')), [
'--debug',
'--bundle',
bundlePath,
]),
).called(1);
});
test('exits with code 70 on process exception', () async {
final exception = Exception('oops');
when(() => shorebirdProcess.start(any(), any())).thenThrow(exception);
const bundlePath = 'test-bundle-path';
final exitCode = await runWithOverrides(
() => iosDeploy.installAndLaunchApp(
bundlePath: bundlePath,
),
);
expect(exitCode, equals(ExitCode.software.code));
verify(
() => shorebirdProcess.start(any(that: endsWith('ios-deploy')), [
'--debug',
'--bundle',
bundlePath,
]),
).called(1);
verify(() => logger.err('[ios-deplay] failed: $exception')).called(1);
});
test('dumps backtrace on process stopped', () async {
final completer = Completer<int>();
when(() => process.stdout).thenAnswer(
(_) => Stream.value(utf8.encode('PROCESS_STOPPED')),
);
when(() => process.exitCode).thenAnswer((_) => completer.future);
const bundlePath = 'test-bundle-path';
final exitCode = runWithOverrides(
() => iosDeploy.installAndLaunchApp(
bundlePath: bundlePath,
),
);
await untilCalled(() => ioSink.writeln('thread backtrace all'));
completer.complete(ExitCode.software.code);
await expectLater(exitCode, completion(equals(ExitCode.software.code)));
verify(
() => shorebirdProcess.start(any(that: endsWith('ios-deploy')), [
'--debug',
'--bundle',
bundlePath,
]),
).called(1);
});
test('detaches on process stopped', () async {
final completer = Completer<int>();
when(() => process.stdout).thenAnswer(
(_) =>
File('test/fixtures/ios-deploy/process_stopped.txt').openRead(),
);
when(() => process.exitCode).thenAnswer((_) => completer.future);
const bundlePath = 'test-bundle-path';
final exitCode = runWithOverrides(
() => iosDeploy.installAndLaunchApp(
bundlePath: bundlePath,
),
);
await untilCalled(() => ioSink.writeln('thread backtrace all'));
await untilCalled(() => ioSink.writeln('process detach'));
completer.complete(ExitCode.software.code);
await expectLater(exitCode, completion(equals(ExitCode.software.code)));
verify(
() => shorebirdProcess.start(any(that: endsWith('ios-deploy')), [
'--debug',
'--bundle',
bundlePath,
]),
).called(1);
});
test('kills process on process exited', () async {
final completer = Completer<int>();
when(() => process.stdout).thenAnswer(
(_) => File('test/fixtures/ios-deploy/process_exited.txt').openRead(),
);
when(() => process.exitCode).thenAnswer((_) => completer.future);
const bundlePath = 'test-bundle-path';
final exitCode = runWithOverrides(
() => iosDeploy.installAndLaunchApp(
bundlePath: bundlePath,
),
);
await untilCalled(() => process.kill());
completer.complete(ExitCode.software.code);
await expectLater(exitCode, completion(equals(ExitCode.software.code)));
verify(
() => shorebirdProcess.start(any(that: endsWith('ios-deploy')), [
'--debug',
'--bundle',
bundlePath,
]),
).called(1);
});
test('kills process on process detached', () async {
final completer = Completer<int>();
when(() => process.stdout).thenAnswer(
(_) =>
File('test/fixtures/ios-deploy/process_detached.txt').openRead(),
);
when(() => process.exitCode).thenAnswer((_) => completer.future);
const bundlePath = 'test-bundle-path';
final exitCode = runWithOverrides(
() => iosDeploy.installAndLaunchApp(
bundlePath: bundlePath,
),
);
await untilCalled(() => process.kill());
completer.complete(ExitCode.software.code);
await expectLater(exitCode, completion(equals(ExitCode.software.code)));
verify(
() => shorebirdProcess.start(any(that: endsWith('ios-deploy')), [
'--debug',
'--bundle',
bundlePath,
]),
).called(1);
});
test('handles process resuming', () async {
final completer = Completer<int>();
when(() => process.stdout).thenAnswer(
(_) =>
File('test/fixtures/ios-deploy/process_resuming.txt').openRead(),
);
when(() => process.exitCode).thenAnswer((_) => completer.future);
const bundlePath = 'test-bundle-path';
final exitCode = runWithOverrides(
() => iosDeploy.installAndLaunchApp(
bundlePath: bundlePath,
),
);
await untilCalled(() => progress.complete('Started app'));
completer.complete(ExitCode.success.code);
await expectLater(exitCode, completion(equals(ExitCode.success.code)));
verify(
() => shorebirdProcess.start(any(that: endsWith('ios-deploy')), [
'--debug',
'--bundle',
bundlePath,
]),
).called(1);
});
test('kills process on sigint', () async {
final signal = _MockProcessSignal();
final controller = StreamController<ProcessSignal>();
iosDeploy = IOSDeploy(sigint: signal);
when(signal.watch).thenAnswer((_) => controller.stream);
final completer = Completer<int>();
when(() => process.stdout).thenAnswer(
(_) => File('test/fixtures/ios-deploy/success.txt').openRead(),
);
when(() => process.exitCode).thenAnswer((_) => completer.future);
const bundlePath = 'test-bundle-path';
final exitCode = runWithOverrides(
() => iosDeploy.installAndLaunchApp(
bundlePath: bundlePath,
),
);
await untilCalled(() => progress.complete('Started app'));
controller.add(ProcessSignal.sigint);
await untilCalled(() => process.kill());
completer.complete(ExitCode.success.code);
await expectLater(exitCode, completion(equals(ExitCode.success.code)));
verify(
() => shorebirdProcess.start(any(that: endsWith('ios-deploy')), [
'--debug',
'--bundle',
bundlePath,
]),
).called(1);
});
test('handles process stderr', () async {
const message = 'test-stderr';
final completer = Completer<int>();
when(() => process.stderr).thenAnswer(
(_) => Stream.value(utf8.encode(message)),
);
when(() => process.exitCode).thenAnswer((_) => completer.future);
const bundlePath = 'test-bundle-path';
final exitCode = runWithOverrides(
() => iosDeploy.installAndLaunchApp(
bundlePath: bundlePath,
),
);
await untilCalled(() => logger.detail(message));
completer.complete(ExitCode.software.code);
await expectLater(exitCode, completion(equals(ExitCode.software.code)));
verify(
() => shorebirdProcess.start(any(that: endsWith('ios-deploy')), [
'--debug',
'--bundle',
bundlePath,
]),
).called(1);
});
test('exits with code 0 on success', () async {
final completer = Completer<int>();
when(() => process.stdout).thenAnswer(
(_) => File('test/fixtures/ios-deploy/success.txt').openRead(),
);
when(() => process.exitCode).thenAnswer((_) => completer.future);
const bundlePath = 'test-bundle-path';
final exitCode = runWithOverrides(
() => iosDeploy.installAndLaunchApp(
bundlePath: bundlePath,
),
);
await untilCalled(() => progress.complete('Started app'));
completer.complete(ExitCode.success.code);
await expectLater(exitCode, completion(equals(ExitCode.success.code)));
verify(
() => shorebirdProcess.start(any(that: endsWith('ios-deploy')), [
'--debug',
'--bundle',
bundlePath,
]),
).called(1);
});
});
group('detectFailures', () {
test('handles no provisioning profile error (1)', () {
const line = IOSDeploy.noProvisioningProfileErrorOne;
final result = detectFailures(line, logger);
expect(result, equals(line));
verify(
() => logger.err(IOSDeploy.noProvisioningProfileInstructions),
).called(1);
});
test('handles no provisioning profile error (2)', () {
const line = IOSDeploy.noProvisioningProfileErrorTwo;
final result = detectFailures(line, logger);
expect(result, equals(line));
verify(
() => logger.err(IOSDeploy.noProvisioningProfileInstructions),
).called(1);
});
test('handles device locked', () {
const line = IOSDeploy.deviceLockedError;
final result = detectFailures(line, logger);
expect(result, equals(line));
verify(
() => logger.err(IOSDeploy.deviceLockedFixInstructions),
).called(1);
});
test('handles unknown error', () {
const line = IOSDeploy.unknownAppLaunchError;
final result = detectFailures(line, logger);
expect(result, equals(line));
verify(
() => logger.err(IOSDeploy.unknownErrorFixInstructions),
).called(1);
});
test('always returns original line', () {
const line = 'test-line';
final result = detectFailures(line, logger);
expect(result, equals(line));
verifyNever(() => logger.err(any()));
});
});
group('installIfNeeded', () {
@@ -121,11 +406,11 @@ void main() {
completes,
);
verifyNever(() => process.run(any(), any()));
verifyNever(() => shorebirdProcess.run(any(), any()));
});
test('throws ProcessException if flutter precache fails', () async {
when(() => process.run(any(), any())).thenAnswer(
when(() => shorebirdProcess.run(any(), any())).thenAnswer(
(_) async => ShorebirdProcessResult(
exitCode: ExitCode.software.code,
stdout: null,
@@ -144,7 +429,7 @@ void main() {
test(
'''throws Exception if ios-deploy is not installed after running flutter precache''',
() async {
when(() => process.run(any(), any())).thenAnswer(
when(() => shorebirdProcess.run(any(), any())).thenAnswer(
(_) async => ShorebirdProcessResult(
exitCode: ExitCode.success.code,
stdout: null,
@@ -163,7 +448,7 @@ void main() {
test(
'''completes successfully if ios-deploy is installed after running flutter precache''',
() async {
when(() => process.run(any(), any())).thenAnswer(
when(() => shorebirdProcess.run(any(), any())).thenAnswer(
(_) async {
runWithOverrides(
() => IOSDeploy.iosDeployExecutable.createSync(recursive: true),
@@ -180,7 +465,9 @@ void main() {
completes,
);
verify(() => process.run('flutter', ['precache', '--ios'])).called(1);
verify(
() => shorebirdProcess.run('flutter', ['precache', '--ios']),
).called(1);
verify(progress.complete).called(1);
});
});