【问题标题】:Flutter - Codemagic - IOS build failFlutter - Codemagic - IOS构建失败
【发布时间】:2020-12-07 14:36:24
【问题描述】:

我正在尝试用 Flutter 为 IOS 构建一个应用程序。

我没有 mac 设备来完成这项工作,所以我正在尝试从 codemagic.io 生成我的 IPA 文件。

我为 Apple Developer Program 创建了一个帐户并支付了账单。

我遵循了使用 Codemagic 的说明,包括 iOS 代码签名说明:https://docs.codemagic.io/code-signing/ios-code-signing/

我在 GitHub 上创建了一个存储库并生成了一个配置文件 (codemagic.yaml)。

所以当我尝试构建我的应用程序(发布版本)时,我遇到了以下问题:

Building iOS
1m 23s




== Building for iOS ==


> /usr/local/bin/flutter build ios --release --no-codesign

/Users/builder/clone/ios/Runner/Info.plist: Property List error: Found non-key inside <dict> at line 44 / JSON error: JSON text did not start with array or object and option to allow fragments not set.

Warning: Building for device with codesigning disabled. You will have to manually codesign before deploying to device.
Building fr.remax.franckehrart for device (ios-release)...

Project base configurations detected, removing.

Running pod install...                                          
    6.2s

/Users/builder/clone/ios/Runner/Info.plist: Property List error: Found non-key inside <dict> at line 44 / JSON error: JSON text did not start with array or object and option to allow fragments not set.
Running Xcode build...                                          

Xcode build done.                                           48.3s

Failed to build iOS app
Error output from Xcode build:
↳
    ** BUILD FAILED **


Xcode's output:
↳
    ../programs/flutter/.pub-cache/hosted/pub.dartlang.org/neumorphic-0.3.2/lib/src/components/selection_controls.dart:182:10: Error: The method '_NeuSelectionControls.buildToolbar' has fewer positional arguments than those of overridden method 'TextSelectionControls.buildToolbar'.
      Widget buildToolbar(
             ^
    ../programs/flutter/packages/flutter/lib/src/widgets/text_selection.dart:136:10: Context: This is the overridden method ('buildToolbar').
      Widget buildToolbar(
             ^
    ../programs/flutter/.pub-cache/hosted/pub.dartlang.org/neumorphic-0.3.2/lib/src/components/selection_controls.dart:222:59: Error: Too few positional arguments: 2 required, 1 given.
              handleCopy: canCopy(delegate) ? () => handleCopy(delegate) : null,
                                                              ^

    Command PhaseScriptExecution failed with a nonzero exit code
    note: Using new build system
    note: Building targets in parallel
    note: Planning build
    note: Constructing build description

Encountered error while building for device.




Build failed :|
Failed to build for iOS

我不明白。是代码签名的问题吗?

在我的 Apple 开发者帐户中,我可以看到已生成证书。

Codemagic 上一步好像没问题:

== Fetch code signing files from Apple Developer Portal ==

Automatically detected bundle identifier "fr.remax.franckehrart" from project

Fetch App Store signing files for bundle identifier "fr.remax.franckehrart"

Initializing Apple Developer Portal session with david.matoska@gmail.com

Using Apple Developer Portal team david matoska (HBD2Z7384F) to fetch signing files

Found App ID "fr remax franckehrart" for bundle identifier "fr.remax.franckehrart"

Found code signing certificate "Apple Push Services: fr.remax.franckehrart"
Found code signing certificate "iOS Distribution: david matoska"

Found iOS Distribution provisioning profile "fr remax franckehrart app_store 1597698130"


> keychain initialize

Initialize new keychain to store code signing certificates at /var/folders/r7/d9twdq011sb8d3q1p8f39cdr0000gn/T/build_4qw6y93s.keychain
Create keychain /var/folders/r7/d9twdq011sb8d3q1p8f39cdr0000gn/T/build_4qw6y93s.keychain

Set keychain /var/folders/r7/d9twdq011sb8d3q1p8f39cdr0000gn/T/build_4qw6y93s.keychain timeout to "no timeout"

Set keychain /var/folders/r7/d9twdq011sb8d3q1p8f39cdr0000gn/T/build_4qw6y93s.keychain to system default keychain
Unlock keychain /var/folders/r7/d9twdq011sb8d3q1p8f39cdr0000gn/T/build_4qw6y93s.keychain



> keychain add-certificates --certificate /tmp/aps_uiasoh6i.p12 --certificate-password @env:CERTIFICATE_PASSWORD

Add certificates to keychain /private/var/folders/r7/d9twdq011sb8d3q1p8f39cdr0000gn/T/build_4qw6y93s.keychain
Searching for files matching /tmp/aps_uiasoh6i.p12
Add certificate /tmp/aps_uiasoh6i.p12 to keychain /private/var/folders/r7/d9twdq011sb8d3q1p8f39cdr0000gn/T/build_4qw6y93s.keychain

1 identity imported.



> keychain add-certificates --certificate /tmp/ios_distribution_ln2czakc.p12 --certificate-password @env:CERTIFICATE_PASSWORD

Add certificates to keychain /private/var/folders/r7/d9twdq011sb8d3q1p8f39cdr0000gn/T/build_4qw6y93s.keychain
Searching for files matching /tmp/ios_distribution_ln2czakc.p12
Add certificate /tmp/ios_distribution_ln2czakc.p12 to keychain /private/var/folders/r7/d9twdq011sb8d3q1p8f39cdr0000gn/T/build_4qw6y93s.keychain

1 identity imported.



== Install Flutter dependencies ==

> /usr/local/bin/flutter packages pub get

Resolving dependencies...

> async 2.4.2 (was 2.4.1) (2.5.0-nullsafety available)
+ characters 1.0.0 (1.1.0-nullsafety.2 available)
+ clock 1.0.1 (1.1.0-nullsafety available)
> collection 1.14.13 (was 1.14.12) (1.15.0-nullsafety.2 available)
+ fake_async 1.1.0 (1.2.0-nullsafety available)
> matcher 0.12.8 (was 0.12.6) (0.12.9 available)
> path 1.7.0 (was 1.6.4) (1.8.0-nullsafety available)
> stack_trace 1.9.5 (was 1.9.3) (1.10.0-nullsafety available)
> test_api 0.2.17 (was 0.2.15) (0.2.18 available)
> typed_data 1.2.0 (was 1.1.6) (1.3.0-nullsafety.2 available)
These packages are no longer being depended on:
- quiver 2.1.3

Downloading flutter_rename_app 1.0.0...
Downloading flutter_launcher_icons 0.7.5...
Downloading neumorphic 0.3.2...
Downloading curved_navigation_bar 0.3.3...
Downloading ansicolor 1.0.2...
Downloading process_run 0.10.12+1...
Downloading image 2.1.12...
Downloading xml 3.6.1...
Downloading petitparser 2.4.0...
Downloading crypto 2.1.4...

Changed 11 dependencies!

你能帮帮我吗?

【问题讨论】:

  • 您必须显示 Info.plist 文件中的代码

标签: ios flutter build release codemagic


【解决方案1】:

所以...它起作用了:) !!!!!!

我不得不更改我的 pubspec.yaml 文件。

我拿的是 0.4.0 版的 Neumorphic(相对于 0.3.2 版)。

@Captivity,再次感谢您对 info.plist 文件的帮助。

再见。

【讨论】:

  • 遇到了同样的问题,这解决了我的问题
【解决方案2】:

好吧,你的“钥匙”UIViewControllerBasedStatusBarAppearance没有赋值。

【讨论】:

  • 太棒了!我查看了以下文档:developer.apple.com/documentation/bundleresources/….
  • 我应该在 info.plist 文件中写 UIViewControllerBasedStatusBarAppearance=trueUIViewControllerBasedStatusBarAppearance=false 之类的东西吗?
  • @David 你应该写:&lt;key&gt;UIViewControllerBasedStatusBarAppearance&lt;/key&gt; &lt;true/&gt;
  • 太有帮助了!非常感谢,我会尽力告诉你的。这是我第一次尝试为 iOS 构建一些东西。
  • 当然你可以根据你的需要写值false :) 重要的是键值。
猜你喜欢
  • 2020-06-21
  • 2022-08-02
  • 2020-02-17
  • 2020-12-17
  • 2020-12-28
  • 2020-08-18
  • 2021-09-13
  • 2020-09-15
  • 2021-01-21
相关资源
最近更新 更多