Flutter - Codemagic - IOS build fail

3,398

So ... It worked :) !!!!!!

I had to change my pubspec.yaml file.

I took the 0.4.0 version of Neumorphic (versus 0.3.2 version).

@Captivity , thank you again for your help with the info.plist file.

Bye.

Share:
3,398
David
Author by

David

Updated on December 23, 2022

Comments

  • David
    David over 1 year

    I'm trying to build an app for IOS made with Flutter.

    I have no mac device to do the job so I'm trying to generate my IPA file from codemagic.io .

    I created an account for Apple Developer Program and paid the bill.

    I followed the instructions for using Codemagic, including instructions for iOS code signing : https://docs.codemagic.io/code-signing/ios-code-signing/ .

    I created a repository on GitHub and generated a configuration file (codemagic.yaml).

    So when I try to build my app (release version), I have the following problem:

    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
    

    I don't understand. Is it a problem with code signing ?

    On my Apple Developer Account I can see that a certificate has been generated.

    The previous step on Codemagic seems to be ok :

    == 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 [email protected]
    
    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!
    

    Can you please help me ?

    • Captivity
      Captivity over 3 years
      You must show the code from Info.plist file
  • David
    David over 3 years
    Great ! I had a look at the following doc : developer.apple.com/documentation/bundleresources/… .
  • David
    David over 3 years
    Am I supposed to write something like <key>UIViewControllerBasedStatusBarAppearance=true</key> or <key>UIViewControllerBasedStatusBarAppearance=false</key> in info.plist file ?
  • Captivity
    Captivity over 3 years
    @David You shoul write: <key>UIViewControllerBasedStatusBarAppearance</key> <true/>
  • David
    David over 3 years
    So helpful ! Thank you so much, I will try and tell you. It's my very first trying to build something for iOS.
  • Captivity
    Captivity over 3 years
    Of course you can write value false depending on that you want :) Important is to key have value.
  • Dickson Chibuzor
    Dickson Chibuzor over 3 years
    Had the same problem and this fixed my issue