• Chris Bracken's avatar
    Use Xcode legacy build system for iOS builds (#21901) (#21994) · f8c50ea1
    Chris Bracken authored
    Xcode 10 introduces a new build system which includes stricter checks on
    duplicate build outputs.
    
    When plugins are in use, there are two competing build actions that copy
    Flutter.framework into the build application Frameworks directory:
    
      1. The Embed Frameworks build phase for the Runner project
      2. The [CP] Embed Pods Frameworks build phase that pod install creates
         in the project.
    
    Item (1) is there to ensure the framework is copied into the built app
    in the case where there are no plugins (and therefore no CocoaPods
    integration in the Xcode project). Item (2) is there because Flutter's
    podspec declares Flutter.framework as a vended_framework, and CocoaPods
    automatically adds a copy step for each such vended_framework in the
    transitive closure of CocoaPods dependencies.
    
    As an immediate fix, we opt back into the build system used by Xcode 9
    and earlier. Longer term, we need to update our templates and
    flutter_tools to correctly handle this situation.
    
    See: https://github.com/flutter/flutter/issues/20685
    f8c50ea1
context_runner.dart 2.69 KB