Флаттер недопустимые сжатые данные для надувания. плохое смещение zip-файла
Я создавал свое приложение для IOS на Macbook. Сборка и установка на физическом Iphone прошла успешно. Но после вызова Firebase_Auth.verifyPhoneNr() он продолжал падать без каких-либо сообщений об ошибке. Затем я переключился на бета-канал flutters и наконец кое-что получил в консоли:
error: invalid compressed data to inflate /Users/*user*/flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk_product/vm_outline_strong.dill
file #3: bad zipfile offset (local header sig): 553391
file #4: bad zipfile offset (local header sig): 3196642
Oops; flutter has exited unexpectedly: "ProcessException: The command failed
Command: unzip -o -q /Users/*user*/flutter/bin/cache/downloads/storage.googleapis.com/flutter_infra/flutter/9a28c3bcf40ce64fee61e807ee3e1395fd6bd954/flutter_patched_sdk_product.zip -d /Users/*user*/flutter/bin/cache/artifacts/engine/common".
A crash report has been written to /Users/*user*/Documents/GitHub/*Project*/flutter_01.log.
Я уже выполнил очистку flutter, но это не помогло. Я не уверен, что это ошибка в фреймворке флаттера или просто проблема с ОС на моей стороне.
2 ответа
Согласно запросу, вот фрагмент кода.
Сомневаюсь, что это мой код. На андроиде все нормально работает. Переход на бета-версию также разрешил еще одну ошибку: https://github.com/flutter/flutter/issues/39032
FirebaseAuth _auth = FirebaseAuth.instance;
ProgressDialog loadingDialog =
ProgressDialog(context, isDismissible: false);
loadingDialog.style(
message: "Überprüfe Nummer",
progressWidget: Container(
padding: EdgeInsets.all(10), child: CircularProgressIndicator()),
);
await loadingDialog.show();
await _auth.verifyPhoneNumber( //Crash happens here.
phoneNumber: normalizedPhoneNr,
timeout: Duration(seconds: 30),
verificationCompleted: (_credentials) async {
await _auth.signInWithCredential(_credentials);
await loadingDialog.hide();
},
verificationFailed: (AuthException authException) {
loadingDialog.hide();
return Flushbar(
message: authException.message,
backgroundColor: Colors.red,
duration: Duration(seconds: 8),
)..show(context);
},
codeSent: null,
codeAutoRetrievalTimeout: (_verID) async {
await loadingDialog.hide();
await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => VerificationCodeEnterPage(_verID),
),
);
},
Я покопал чуть глубже:
Fatal Exception: NSInternalInconsistencyException
0 CoreFoundation 0x1baed8164 __exceptionPreprocess
1 libobjc.A.dylib 0x1babecc1c objc_exception_throw
2 CoreFoundation 0x1badc7bb8 -[NSCache init]
3 Runner 0x10486ad14 -[FIRPhoneAuthProvider verifyPhoneNumber:UIDelegate:completion:] + 130 (FIRPhoneAuthProvider.m:130)
4 Runner 0x104ab8550 -[FLTFirebaseAuthPlugin handleMethodCall:result:] + 350 (FLTFirebaseAuthPlugin.m:350)
5 Flutter 0x10583f830 (Fehlt)
6 Flutter 0x10532f750 (Fehlt)
7 Flutter 0x1055e9fbc (Fehlt)
8 Flutter 0x105337ea8 (Fehlt)
9 Flutter 0x105339b20 (Fehlt)
10 CoreFoundation 0x1bae53efc __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
11 CoreFoundation 0x1bae53c14 __CFRunLoopDoTimer
12 CoreFoundation 0x1bae53288 __CFRunLoopDoTimers
13 CoreFoundation 0x1bae4dfe0 __CFRunLoopRun
14 CoreFoundation 0x1bae4d660 CFRunLoopRunSpecific
15 GraphicsServices 0x1c525e604 GSEventRunModal
16 UIKitCore 0x1bf02215c UIApplicationMain
17 Runner 0x1047f8aa0 main + 6 (AppDelegate.swift:6)
18 libdyld.dylib 0x1bacc91ec start
Мне просто нужно было добавить URL-адрес моего проекта Firebase в Info.plist.