Добрый день,
Я следую учебному пособию по Windows 7 для Ipad на IOS 9.3.5:
https://medium.com/flutter-community/developing-and-debugging-flutter-apps-for-ios-without-a-mac-8d362a8ec667, и я застрял на восстановление инструмента Flutter .(Последняя часть урока)
Я скачал (по ссылке урока) и скопировал в C:\src\flutter\bin
libimobiledevice , ideviceinstaller и , которые двоичные файлы.Затем я запустил git apply ios.diff
, который выдает мне несколько ошибок, иногда это просто mac.dart, а иногда это выглядит примерно так:
error: patch failed: packages/flutter_tools/lib/src/ios/devices.dart:103
error: packages/flutter_tools/lib/src/ios/devices.dart: patch does not apply
error: patch failed: packages/flutter_tools/lib/src/ios/ios_workflow.dart:26
error: packages/flutter_tools/lib/src/ios/ios_workflow.dart: patch does not apply
error: patch failed: packages/flutter_tools/lib/src/ios/mac.dart:124
error: packages/flutter_tools/lib/src/ios/mac.dart: patch does not apply
Затем я нашел эту команду здесь: git:патч не применяется
git apply --reject --whitespace=fix mychanges.patch
То, что я получил, было: (не обращайте внимания на содержание Future<String>
, потому что я уже изменил его на то, что он должен был быть)
Checking patch packages/flutter_tools/lib/src/ios/mac.dart...
error: while searching for:
Future<String> getAvailableDeviceIDs() async {
try {
final ProcessResult result = await processManager.run(<String>['idevice_id', '-l']);
if (result.exitCode != 0)
throw ToolExit('idevice_id returned an error:\n${result.stderr}');
return result.stdout;
} on ProcessException {
throw ToolExit('Failed to invoke idevice_id. Run flutter doctor.');
error: patch failed: packages/flutter_tools/lib/src/ios/mac.dart:124
Applying patch packages/flutter_tools/lib/src/ios/devices.dart with 1 reject...
Rejected hunk #1.
Applying patch packages/flutter_tools/lib/src/ios/ios_workflow.dart with 1 reject...
Rejected hunk #1.
Applying patch packages/flutter_tools/lib/src/ios/mac.dart with 1 reject...
Rejected hunk #1.
На этом этапе я вручную вставил нужное содержимое в файл mac.dart (как вы могли видеть в приведенной выше ошибке), но я все еще не уверен, что все прошлохорошо из-за:
error: patch failed: packages/flutter_tools/lib/src/ios/mac.dart:124
В любом случае, я продолжил и выполнил команду для перестройки инструмента флаттера:
bin\cache\dart-sdk\bin\dart --snapshot=.\bin\cache\flutter_tools.snapshot --packages=.\packages\flutter_tools\.packages .\packages\flutter_tools\bin\flutter_tools.dart
Наконец, вывод такой:
C:\src\flutter>bin\cache\dart-sdk\bin\dart --snapshot=.\bin\cache\flutter_tools.snapshot --packages=.\packages\flutter_tools\.packages .\
packages\flutter_tools\bin\flutter_tools.dart
packages/flutter_tools/lib/src/ios/ios_workflow.dart:20:30: Error: Getter not found: 'iMobileDevice'.
bool get canListDevices => iMobileDevice.isInstalled || (xcode.isInstalledAndMeetsVersionCheck && xcode.isSimctlInstalled);
^^^^^^^^^^^^^
packages/flutter_tools/lib/src/ios/ios_workflow.dart:20:30: Error: The getter 'iMobileDevice' isn't defined for the class 'IOSWorkflow'.
- 'IOSWorkflow' is from 'package:flutter_tools/src/ios/ios_workflow.dart' ('packages/flutter_tools/lib/src/ios/ios_workflow.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'iMobileDevice'.
bool get canListDevices => iMobileDevice.isInstalled || (xcode.isInstalledAndMeetsVersionCheck && xcode.isSimctlInstalled);
^^^^^^^^^^^^^
Это iMobileDevice связано с этим libimobiledevice?Я могу запустить любой из ideviceinstaller.exe
или idevice_id.exe
, поэтому, я думаю, я установил его правильно.
Мне не хватает чего-то важного для исправления этой ошибки?
Большое спасибо за ваше время:)