Flutter:iOS上应用程序无法构建

10

我的应用在iOS上构建失败,但在Android上却可以正常工作。Flutter clean或pod install命令都没有帮助。

重现步骤

flutter build ios

日志

请将所有日志输出信息复制并粘贴到下方的反引号符之间。如果出现异常,请检查错误信息是否包含足够的信息以说明如何解决问题。 -->

Encountered error while building for device.
Elliots-Mac-mini:club_lime elliot_thm$ flutter clean
Deleting 'build/'.
Deleting '/Users/elliot_thm/Documents/club_lime/.dart_tool/'.
Elliots-Mac-mini:club_lime elliot_thm$ flutter build ios
Building com.vivaleasure.clubLime for device (ios-release)...
Automatically signing iOS for device deployment using specified development team in Xcode project: 6NDB4SY6HS
Running pod install...                                              1.1s
Running Xcode build...                                                  
 ├─Building Dart code...                                    34.7s
 ├─Generating dSYM file...                                   0.3s
 ├─Stripping debug symbols...                                0.0s
 ├─Assembling Flutter resources...                           1.2s
 └─Compiling, linking and signing...                         1.7s
Xcode build done.                                           39.0s
Failed to build iOS app
Error output from Xcode build:
↳
    ** BUILD FAILED **


Xcode's output:
↳
    === BUILD TARGET Runner OF PROJECT Runner WITH CONFIGURATION Release ===
    2019-07-08 12:13:10.058 defaults[26804:842682] 
    The domain/default pair of (/Users/elliot_thm/Documents/club_lime/build/ios/Release-iphoneos/Runner.app/Frameworks/App.framework/flutter_assets/ios/Flutter/App%202.framework/Info.plist, CFBundleExecutable)
    does not exist
    fatal error: lipo: can't map input file: /Users/elliot_thm/Documents/club_lime/build/ios/Release-iphoneos/Runner.app/Frameworks/App.framework/flutter_assets/ios/Flutter/App%202.framework/ (Invalid argument)
    fatal error: lipo: can't map input file: /Users/elliot_thm/Documents/club_lime/build/ios/Release-iphoneos/Runner.app/Frameworks/App.framework/flutter_assets/ios/Flutter/App%202.framework/ (Invalid argument)
    Failed to extract arm64 for /Users/elliot_thm/Documents/club_lime/build/ios/Release-iphoneos/Runner.app/Frameworks/App.framework/flutter_assets/ios/Flutter/App%202.framework/. Running lipo -info:
    fatal error: lipo: can't map input file: /Users/elliot_thm/Documents/club_lime/build/ios/Release-iphoneos/Runner.app/Frameworks/App.framework/flutter_assets/ios/Flutter/App%202.framework/ (Invalid argument)

flutter analyze
Analyzing club_lime...                                                  
No issues found! (ran in 2.5s)

flutter doctor -v
[✓] Flutter (Channel stable, v1.5.4-hotfix.2, on Mac OS X 10.14.5 18F132, locale en-AU)
    • Flutter version 1.5.4-hotfix.2 at /Users/elliot_thm/flutter
    • Framework revision 7a4c33425d (10 weeks ago), 2019-04-29 11:05:24 -0700
    • Engine revision 52c7a1e849
    • Dart version 2.3.0 (build 2.3.0-dev.0.5 a1668566e5)


[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.0)
    • Android SDK at /Users/elliot_thm/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.2.1, Build version 10E1001
    • ios-deploy 1.9.4
    • CocoaPods version 1.7.2

[!] Android Studio (version 3.4)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[✓] VS Code (version 1.36.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.2.0

[✓] Connected device (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator)

! Doctor found issues in 1 category.
6个回答

21

首先备份您现有的ios文件夹。 删除它并运行。

    flutter create .

它将生成ios文件夹。构建和运行,然后你就可以开始了。


4
在最后,我通过创建一个新项目来解决了这个问题。
flutter create -i swift -a kotlin project_name

将lib文件夹移动到那里,而不需要对dart代码进行任何更改。


但是我认为这并不是解决方案。如果有人已经拥有生产应用程序,几乎不可能使用此解决方案...因为涉及到密钥、签名应用等问题。 - Nihad Delic
后来我发现,问题的根源是将项目目录放置在启用iCloud的文件夹中。由于某种原因,它会在Flutter目录中创建新文件夹(命名为Flutter 2、Flutter 3...)。删除这些文件夹可以解决问题。 - Ilia Tikhomirov

1

我也遇到过同样的问题。通过清空构建文件夹来解决。


1
请注意,这个问题似乎是当前Flutter版本(1.20.2 bbfbf17)中的一个bug。在最新的dev频道Flutter版本中似乎已经修复了这个问题。
因此,如果您可以使用dev频道:
flutter channel dev
flutter upgrade --force
flutter build ios

对我来说,使用开发通道解决了这个问题。

这可能会在1.20.3中热修复

关于2020年8月14日的问题评论:

修复程序#61129在1.20稳定通道上不可用。它在1.21.0-1.0.pre中可用,这是当前的开发通道。正在评估是否适用于1.20稳定热修复。如果您仍然在1.21.0-1.0.pre或更高版本中看到此问题,请提交新问题并完整填写模板,以便我们进行调查。

请参阅樱桃选择,了解1.20.3https://github.com/flutter/flutter/pull/64984


编辑:

这个问题似乎已经被修复了。请查看发布日志:

https://github.com/flutter/flutter/releases/tag/1.20.3

使用 flutter upgrade 命令可以解决此问题。

0
在我的情况下,我需要勾选构建标志: 输入图像描述

0
flutter create -i swift -a kotlin project_name
cd project_name
flutter run

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接