【问题标题】:flutter project not running on ios [duplicate]颤振项目未在ios上运行[重复]
【发布时间】:2020-07-11 11:18:28
【问题描述】:

有一个以前运行的应用程序不再运行,我已经尝试解决这个问题好几个星期了。现在已经到了几乎可以运行的地步,但我在最后一个障碍中遇到了以下问题:

flutter run -v

这似乎成功构建应用程序并启动它,屏幕短暂变白,然后应用程序关闭。终端输出的最后一个条目是:

[ +293 ms] ------ Debug phase ------
[        ] Starting debug of 53225g34b4c604fe43a334525340e269626a (D111AP,
iPhone 7 Plus, iphoneos, arm64) a.k.a. 'iPhone' connected through USB...
[ +935 ms] [  0%] Looking up developer disk image
[  +27 ms] [ 95%] Developer disk image mounted successfully
[ +367 ms] [100%] Connecting to remote debug server
[        ] -------------------------
[+1080 ms] (lldb) command source -s 0
'/tmp/1D186BA70/fruitstrap-lldb-prep-cmds-4c604fe43a334525340e269626a'
[        ] Executing commands in
'/tmp/1D186BA70/fruitstrap-lldb-prep-cmds-4c604fe43a334525340e269626a'
[        ] (lldb)     platform select remote-ios --sysroot
'/Users/sjr/Library/Developer/Xcode/iOS DeviceSupport/13.3.1 (17D50)/Symbols'
[        ]   Platform: remote-ios
[        ]  Connected: no
[        ]   SDK Path: "/Users/sjr/Library/Developer/Xcode/iOS
DeviceSupport/13.3.1 (17D50)/Symbols"
[        ] (lldb)     target create
"/Users/sjr/Projects/my_app/build/ios/iphoneos/Runner.app"
[+10050 ms] Current executable set to
'/Users/sjr/Projects/my_app/build/ios/iphoneos/Runner.app' (arm64).
[        ] (lldb)     script
fruitstrap_device_app="/private/var/containers/Bundle/Application/62B3E66E1/Runner.app"
[ +443 ms] (lldb)     script fruitstrap_connect_url="connect://127.0.0.1:49422"
[        ] (lldb)     script fruitstrap_output_path=""
[        ] (lldb)     script fruitstrap_error_path=""
[        ] (lldb)     target modules search-paths add /usr
"/Users/sjr/Library/Developer/Xcode/iOS DeviceSupport/13.3.1
(17D50)/Symbols/usr" /System "/Users/sjr/Library/Developer/Xcode/iOS
DeviceSupport/13.3.1 (17D50)/Symbols/System"
"/private/var/containers/Bundle/Application/62B3E66E1
" "/Users/sjr/Projects/my_app/build/ios/iphoneos"
"/var/containers/Bundle/Application/62B3E66E1"
"/Users/sjr/Projects/my_app/build/ios/iphoneos" /Developer
"/Users/sjr/Library/Developer/Xcode/iOS DeviceSupport/13.3.1
(17D50)/Symbols/Developer"
[  +35 ms] (lldb)     command script import
"/tmp/1D186BA70/fruitstrap_4c604fe43a334525340e269626a.py"
[   +4 ms] (lldb)     command script add -f
fruitstrap_4c604fe43a334525340e269626a.connect_command connect
[        ] (lldb)     command script add -s asynchronous -f
fruitstrap_4c604fe43a334525340e269626a.run_command run
[        ] (lldb)     command script add -s asynchronous -f
fruitstrap_4c604fe43a334525340e269626a.autoexit_command autoexit
[        ] (lldb)     command script add -s asynchronous -f
fruitstrap_4c604fe43a334525340e269626a.safequit_command safequit
[        ] (lldb)     connect
[  +52 ms] (lldb)     run
[ +277 ms] success
[        ] (lldb)     safequit
[ +120 ms] Process 434 detached
[  +48 ms] Application launched on the device. Waiting for observatory port.
[   +4 ms] Checking for advertised Dart observatories...
[+5026 ms] mDNS lookup failed, attempting fallback to reading device log.
[        ] Waiting for observatory port.

这个问题在 Xcode 中看起来不同(尽管很可能是完全相同的问题)。看起来可能是内存泄漏?我不确定如何阅读这些信息。我收到如下所示的错误:

io.flutter.204.ui (625): signal SIGABRT

然后在下面的日志中我有:

Runner(439,0x1009c5800) malloc: enabling scribbling to detect mods to free blocks

Runner(439,0x1009c5800) malloc: recording malloc and VM allocation stacks using lite mode

2020-03-31 07:54:22.330547+0800 Runner[439:345566] Failed to find snapshot: /private/var/containers/Bundle/Application/E00E6D3690/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin

2020-03-31 07:54:22.475589+0800 Runner[439:345566] Metal API Validation Enabled

2020-03-31 07:54:22.864937+0800 Runner[439:345566] Failed to find snapshot: /private/var/containers/Bundle/Application/E00E6D3690/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin

2020-03-31 07:54:22.932713+0800 Runner[439:345566] Failed to find snapshot: /private/var/containers/Bundle/Application/E00E6D3690/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin

2020-03-31 07:54:22.976036+0800 Runner[439:345823] flutter: Observatory listening on http://127.0.0.1:51027/Wl9caPukKFs=/

2020-03-31 07:54:22.993612+0800 Runner[439:345566] Failed to find snapshot: /private/var/containers/Bundle/Application/E00E6D3690/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin

2020-03-31 07:54:23.030173+0800 Runner[439:345566] Failed to find snapshot: /private/var/containers/Bundle/Application/E00E6D3690/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin

这个确切的部分还有数百个:

2020-03-31 07:54:23.030173+0800 Runner[439:345566] Failed to find snapshot: /private/var/containers/Bundle/Application/E00E6D3690/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin

然后它继续:

../../third_party/dart/runtime/vm/clustered_snapshot.cc: 68: error: Out of memory.

2020-03-31 07:54:35.497087+0800 Runner[439:346457] version=2.5.0 (Fri Sep 6 20:10:36 2019 +0200) on "ios_arm64"

thread=1245963, isolate=main(0x2cb9de000)

2020-03-31 07:54:35.510204+0800 Runner[439:346457]   pc 0x00000001013019ac fp 0x00000002d76837e0 Dart_DumpNativeStackTrace

2020-03-31 07:54:35.510996+0800 Runner[439:346457]   pc 0x0000000100e94518 fp 0x00000002d7683800 dart::Assert::Fail(char const*, ...)

2020-03-31 07:54:35.511862+0800 Runner[439:346457]   pc 0x0000000100f2969c fp 0x00000002d7683860 dart::FunctionDeserializationCluster::ReadFill(dart::Deserializer*)

2020-03-31 07:54:35.512319+0800 Runner[439:346457]   pc 0x0000000100f2e4ec fp 0x00000002d76839b0 dart::FullSnapshotReader::ReadIsolateSnapshot()

2020-03-31 07:54:35.512738+0800 Runner[439:346457]   pc 0x0000000100f34d88 fp 0x00000002d7683f70 dart::Dart::InitializeIsolate(unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, long, void*)

2020-03-31 07:54:35.513417+0800 Runner[439:346457]   pc 0x00000001012e8220 fp 0x00000002d7684010 dart::CreateIsolate(dart::IsolateGroup*, char const*, void*, char**)

2020-03-31 07:54:35.514492+0800 Runner[439:346457]   pc 0x0000000100b0ccd4 fp 0x00000002d7684270 flutter::DartIsolate::CreateDartVMAndEmbedderObjectPair(char const*, char const*, char const*, char const*, Dart_IsolateFlags*, std::__1::shared_ptr<flutter::DartIsolate>*, bool, char**)

2020-03-31 07:54:35.515065+0800 Runner[439:346457]   pc 0x0000000100b0c4fc fp 0x00000002d7684450 flutter::DartIsolate::CreateRootIsolate(flutter::Settings const&, fml::RefPtr<flutter::DartSnapshot const>, fml::RefPtr<flutter::DartSnapshot const>, flutter::TaskRunners, std::__1::unique_ptr<flutter::Window, std::__1::default_delete<flutter::Window> >, fml::WeakPtr<flutter::IOManager>, fml::WeakPtr<flutter::ImageDecoder>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, Dart_IsolateFlags*, std::__1::function<void ()>, std::__1::function<void ()>)

2020-03-31 07:54:35.515707+0800 Runner[439:346457]   pc 0x0000000100b15000 fp 0x00000002d7684720 flutter::RuntimeController::RuntimeController(flutter::RuntimeDelegate&, flutter::DartVM*, fml::RefPtr<flutter::DartSnapshot const>, fml::RefPtr<flutter::DartSnapshot const>, flutter::TaskRunners, fml::WeakPtr<flutter::IOManager>, fml::WeakPtr<flutter::ImageDecoder>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::function<void (long long)>, flutter::RuntimeController::WindowData, std::__1::function<void ()>, std::__1::function<void ()>)

2020-03-31 07:54:35.516437+0800 Runner[439:346457]   pc 0x0000000100b1b858 fp 0x00000002d7684b50 flutter::Engine::Engine(flutter::Engine::Delegate&, flutter::DartVM&, fml::RefPtr<flutter::DartSnapshot const>, fml::RefPtr<flutter::DartSnapshot const>, flutter::TaskRunners, flutter::Settings, std::__1::unique_ptr<flutter::Animator, std::__1::default_delete<flutter::Animator> >, fml::WeakPtr<flutter::IOManager>)

2020-03-31 07:54:35.517172+0800 Runner[439:346457]   pc 0x0000000100b2c1d0 fp 0x00000002d7684fe0 std::__1::__function::__func<fml::internal::CopyableLambda<flutter::Shell::CreateShellOnPlatformThread(flutter::DartVMRef, flutter::TaskRunners, flutter::Settings, fml::RefPtr<flutter::DartSnapshot const>, fml::RefPtr<flutter::DartSnapshot const>, std::__1::function<std::__1::unique_ptr<flutter::PlatformView, std::__1::default_delete<flutter::PlatformView> > (flutter::Shell&)>, std::__1::function<std::__1::unique_ptr<flutter::Rasterizer, std::__1::default_delete<flutter::Rasterizer> > (flutter::Shell&)>)::$_0>, std::__1::allocator<fml::internal::CopyableLambda<flutter::Shell::CreateShellOnPlatformThread(flutter::DartVMRef, flutter::TaskRunners, flutter::Settings, fml::RefPtr<flutter::DartSnapshot const>, fml::RefPtr<flutter::DartSnapshot const>, std::__1::function<std::__1::unique_ptr<flutter::PlatformView, std::__1::default_delete<flutter::PlatformView> > (flutter::Shell&)>, std::__1::function<std::__1::unique_ptr<flutter::Rasterizer, std::__1::default_delete<flutter::Rasterizer> > (flutter::Shell&)>)::$_0> >, void ()>::operator()()

2020-03-31 07:54:35.518362+0800 Runner[439:346457]   pc 0x0000000100add9e8 fp 0x00000002d7685030 fml::MessageLoopImpl::FlushTasks(fml::FlushType)

2020-03-31 07:54:35.518837+0800 Runner[439:346457]   pc 0x0000000100ae209c fp 0x00000002d7685050 fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*)

2020-03-31 07:54:35.519148+0800 Runner[439:346457]   pc 0x000000019eb6503c fp 0x00000002d7685060 <redacted>

2020-03-31 07:54:35.519351+0800 Runner[439:346457]   pc 0x000000019eb64d78 fp 0x00000002d7686110 <redacted>

2020-03-31 07:54:35.519583+0800 Runner[439:346457]   pc 0x000000019eb64448 fp 0x00000002d76861a0 <redacted>

所以在我未经训练的眼睛看来,它正在尝试这样做:

2020-03-31 07:54:23.030173+0800 Runner[439:345566] Failed to find snapshot: /private/var/containers/Bundle/Application/E00E6D3690/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin

数千次直到它耗尽内存,但我不太确定这是什么,或者如何开始尝试解决它。​​

编辑:颤振医生输出。

flutter doctor -v

[✓] Flutter (Channel stable, v1.9.1+hotfix.6, on Mac OS X 10.15.4 19E264b,

    locale en-AU)

    • Flutter version 1.9.1+hotfix.6 at /Users/sjr/flutter

    • Framework revision 68587a0916 (7 months ago), 2019-09-13 19:46:58 -0700

    • Engine revision b863200c37

    • Dart version 2.5.0



[✗] Android toolchain - develop for Android devices

    ✗ Unable to locate Android SDK.

      Install Android Studio from:

      https://developer.android.com/studio/index.html

      On first launch it will assist you in installing the Android SDK

      components.

      (or visit https://flutter.dev/setup/#android-setup for detailed

      instructions).

      If the Android SDK has been installed to a custom location, set

      ANDROID_HOME to that location.

      You may also want to add it to your PATH environment variable.







[✓] Xcode - develop for iOS and macOS (Xcode 11.4)

    • Xcode at /Applications/Xcode.app/Contents/Developer

    • Xcode 11.4, Build version 11E146

    • CocoaPods version 1.7.5



[!] Android Studio (not installed)

    • Android Studio not found; download from

      https://developer.android.com/studio/index.html

      (or visit https://flutter.dev/setup/#android-setup for detailed

      instructions).



[!] Connected device

    ! No devices available



! Doctor found issues in 3 categories.

编辑:

@Hannes Sverrisson 的建议导致的错误代码:

Running pod install...                                              4.7s
Running Xcode build...                                                                                                 

Xcode build done.                                           16.8s
Failed to build iOS app

Error output from Xcode build:
    ** BUILD FAILED **

Xcode's output:

 === BUILD TARGET PromisesObjC OF PROJECT Pods WITH CONFIGURATION Release ===

    In file included from

    /Users/sjr/Projects/my_app/ios/Pods/GoogleDataTransport/GoogleDataTran

    sport/GDTCORLibrary/GDTCORLifecycle.m:22:

    In file included from

    /Users/sjr/Projects/my_app/ios/Pods/GoogleDataTransport/GoogleDataTran

    sport/GDTCORLibrary/Private/GDTCORRegistrar_Private.h:17:

    In file included from

    /Users/sjr/Projects/my_app/build/ios/Release-iphoneos/GoogleDataTransp

    ort/GoogleDataTransport.framework/Headers/GDTCORRegistrar.h:19:

    In file included from

    /Users/sjr/Projects/my_app/build/ios/Release-iphoneos/GoogleDataTransp

    ort/GoogleDataTransport.framework/Headers/GDTCORPrioritizer.h:19:

    /Users/sjr/Projects/my_app/build/ios/Release-iphoneos/GoogleDataTransp

    ort/GoogleDataTransport.framework/Headers/GDTCORLifecycle.h:26:11: error:

    duplicate protocol definition of 'GDTCORLifecycleProtocol' is ignored

    [-Werror,-Wduplicate-protocol]

    @protocol GDTCORLifecycleProtocol <NSObject>

然后还有数千个“文件内”错误,直到失败。

编辑:git push 后,重新创建并拉取:在构建过程中 Xcode 中显示错误。

【问题讨论】:

  • 好的,但是你能把颤振医生的输出贴出来吗?
  • 将firebase集成到您的应用程序后是否会发生这种情况?如果是,那么您是否正确遵循了 pub 页面上提到的步骤?
  • 如果您使用终端进入项目文件夹并运行:flutter build ios,安装是否有效?
  • 你有开发者账号吗?如果它是 iOS 13.3.1,那么您需要有一个开发者帐户才能在真实设备上运行它。 github.com/flutter/flutter/issues/49693 。你试过在模拟器上运行它吗?
  • 这是您下一个问题的副本:Flutter project not running on iOS (attempt 2)

标签: ios xcode flutter


【解决方案1】:

1) 更新 mac 和 Xcode。

2) 打开 Xcode 并安装模拟器。

3) 在 Flutter 应用目录中,在 Xcode 中打开 ios/Runner.xcworkspace 并在 Signing & Capabilities 下选择一个开发团队。

4) 遵循这些说明https://flutter.dev/docs/development/ios-project-migration

5) 然后运行:

flutter clean
flutter build ios
flutter run

全部来自您的项目文件夹。

6a) 如果上述方法不起作用并且您正在使用 git 或其他外部源代码控制,那么我提交了所有内容并将其推送。然后,我删除了该文件夹,git再次获取它,一切正常。

6b) 另一种解决方案是删除所有 pod:

Remove the Pods folder and Podfile.lock files.

然后重建 pod:

cd ios
pod deintegrate
cd ..
flutter clean
flutter build ios

【讨论】:

  • 嗨@Hannes Sverrisson。我设法完全按照您的答案中列出的方式执行您的建议。在它声明“flutter build ios”的部分,我收到一个严重错误:“致命错误:发出太多错误,现在停止 [-ferror-limit=] 1 个警告和 20 个错误生成。”我将在我原来的问题中发布这个输出,以便您查看。
  • @Bisclavret,这个新的错误消息是完全不同的,因此,如果步骤 6a 不可能(你没有' t 澄清您是否再次执行 git clone),那么这应该有助于您的构建。
  • 谢谢汉内斯。在尝试了 6b 步骤之后,flutter build ios 现在已成功完成(或至少它声称如此)。再次尝试 flutter run -v 后,我又回到了这个问题的开头:[+5026 ms] mDNS 查找失败,尝试回退到读取设备日志。 [ ] 等待观景台。因此,虽然它可能做了一些事情,但不幸的是,它对原始问题根本没有任何影响。不过,感谢您所有的时间。我希望有任何进一步的建议。
  • 我注意到的一件事,不确定它是否有帮助,我的 ios/Frameworks 文件夹完全是空的。在 Xcodes 调试中,它会一遍又一遍地在此处查找文件,直到崩溃。这个文件夹里应该有文件吗?如果是这样,我为什么没有呢?再次感谢。
  • @Bisclavret 那里至少应该有 Runner.pods,但如果你可以构建,它就会出现, ios/Frameworks 文件夹。删除 Pods 文件夹和 Podfile.lock 文件。运行之后:再次“flutter build ios”。如果这不起作用,请将代码推送到 git 并执行解决方案 6a。
【解决方案2】:

我遇到了类似的问题。我下载了一个 Flutter 示例,它在短暂的白屏后一直崩溃,没有任何可以理解的错误。我终于发现有些代码或包依赖于 Flutter 的较新版本而不是稳定版本。

在终端类型中:

flutter channel

查看您当前的频道是什么,然后您可以尝试主频道或测试频道:

flutter channel master
flutter upgrade

看看有没有帮助!

同时检查这个建议的解决方案:https://github.com/flutter/flutter/issues/29286

你需要跑

flutter build ios --debug (or --profile or --release) 
flutter run --release

在 Xcode 中启动项目之前。

【讨论】:

  • @bisclavret 我用建议解决方案的链接更新了答案。看看能不能解决你的问题。
  • 嗨,aldobaie。感谢您花时间发布建议,但绝对不能更新颤振。在排除所有其他可能的修复后绝对最后的手段。原因是 Flutter 开发很糟糕,到目前为止,我每次更新 Flutter 时,都会严重破坏我套件中的每个应用程序,通常需要数周或数月的全职工作才能修复。你可以在这里看到我的帖子:github.com/flutter/flutter/issues/54088 一个颤振开发者建议我这样做,我克隆了我的系统来取悦他。灾难性的结果张贴在那里。
  • 这个解决方案对我有用。
【解决方案3】:

目前似乎没有足够的信息让我们解决您的问题,但是从颤振医生那里,您使用的颤振 SDK 版本可能有问题,因为它已经 7 个月大并且您使用的是新版本的 xcode 来构建项目。看起来存在与您遇到的与该版本的 SDK 相关的问题。 Reference

首先,尝试使用flutter upgrade 更新您的flutter sdk

请在更新后更新颤振医生和最新调试运行的输出,以便我们尝试进一步帮助您。

另外,您能否尝试在模拟的 iOS 设备以及外部设备上运行它,看看它是否可能与 xcode 项目的构建方式有问题?

【讨论】:

  • 您好 Jwildsmith,感谢您的回复,但我会将您转介给我上面的 cmets,您永远不应该允许任何更新出现波动。后端开发太不稳定,只是……差。升级结果贴在这个帖子里:github.com/flutter/flutter/issues/54088
  • 关于信息方面,我可以使用任何工具来查找此内存泄漏的来源吗?就像必须尝试在某处执行此操作一样:无法找到快照:/private/var/containers/Bundle/Application/E00E6D3690/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin ...有什么我可以用它来找出试图做到这一点的原因是什么?该平台的开发人员绝对知道这是做什么的。否则他们在做什么。
【解决方案4】:

我也遇到了这个错误,但是在安装了最新版本的 android studio 之后,这个错误就消失了。我认为这是由系统而不是手动发生的。你也应该试试。

【讨论】:

  • 嗨,伙计。这是给ios的。它是 Xcode。在我运行 Android Studio 的 Windows 机器上,此应用程序没有问题。该应用已经在安卓商店发布一年了。
猜你喜欢
  • 2021-07-08
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
  • 2020-07-29
  • 2020-07-13
  • 2020-04-06
  • 2021-02-13
  • 2020-03-12
相关资源
最近更新 更多