1. 23 Mar, 2017 1 commit
    • Chris Bracken's avatar
      Build Flutter app as a framework on iOS (#8971) · 0ee3f57a
      Chris Bracken authored
      **THIS IS A BREAKING CHANGE.** See below for migration steps for
      existing projects.
      
      Previously, Flutter app code was built as a raw dylib on iOS.  Dynamic
      libraries outside of a framework bundle are not supported on iOS, except
      for the system Swift libraries provided by Xcode.
      
      See:
      https://developer.apple.com/library/content/technotes/tn2435/_index.html#//apple_ref/doc/uid/DTS40017543-CH1-TROUBLESHOOTING_BUNDLE_ERRORS-EMBEDDED__DYLIB_FILES
      
      * Migrates Xcode build from app.dylib to App.framework
      * Migrates flutter create template
      * Migrates example projects
      
      Migration steps for existing projects
      =====================================
      
      The following steps should be taken from the root of your Flutter
      project:
      
      1. Edit `ios/.gitignore`: add `/Flutter/App.framework` on a new line.
      2. In the Xcode project navigator, remove `app.dylib` from the Flutter
         folder. Delete this file from the `ios/Flutter` directory in your project.
      3. Run a build to generate `ios/Flutter/App.framework`. From the command
         line, run `flutter build ios`. If you have not configured app signing
         in Xcode, an alternative method is to open the simulator, then run
         `flutter run -d iP`.
      4. In the Xcode project navigator, select the `Runner` project. In the
         project settings that are displayed in the main view, ensure that the
         `Runner` target is selected. You can verify this by exposing the
         sidebar using the [| ] icon in the upper-left corner of the main
         view.
      5. Select the *General* tab in the project settings. Under the
         *Embedded Binaries* section, click '+' to add `App.framework`. In the
         sheet that drops down, click the *Add Other...* button. Navigate to
         the `ios/Flutter` directory and select `App.framework`. Click *Open*.
         In the sheet that drops down, select *Create folder references*, then
         click *Finish*.
      6. In the project settings, verify that `App.framework` has been added to the
         *Embedded Binaries* and *Linked Frameworks and Libraries* lists.
      7. In the Xcode project navigator, drag `App.framework` under the
         Flutter folder.
      8. In the Xcode project navigator, select `Flutter` then from the
         *File* menu, select *Add Files to "Runner"...*. Navigate to the
         `ios/Flutter` directory, select `AppFrameworkInfo.plist` and click
         the *Add* button.
      9. From the command line, in your project directory, run
         `flutter build clean`, then `flutter run`.
      
      At this point your project should be fully migrated.
      0ee3f57a
  2. 14 Mar, 2017 1 commit
  3. 13 Mar, 2017 1 commit
  4. 10 Mar, 2017 1 commit
  5. 17 Feb, 2017 1 commit
    • Chris Bracken's avatar
      Do not attempt to merge non-fat frameworks in Xcode build (#8251) · 36e3260b
      Chris Bracken authored
      * Do not attempt to merge non-fat frameworks in Xcode build
      
      During the Xcode build, we strip code irrelevant to the target
      architecture in frameworks used by the application. In the case of
      non-fat executables, no stripping occurs, so the frameworks can be used
      as-is. No merge & replace step is necessary.
      
      * fixup! Do not attempt to merge non-fat frameworks in Xcode build
      36e3260b
  6. 09 Feb, 2017 2 commits
  7. 07 Feb, 2017 2 commits
    • Chris Bracken's avatar
      Handle non-fat frameworks in iOS app framework thinning (#7950) · b16a515d
      Chris Bracken authored
      Support for thinning app frameworks to the target architecture was added
      in 708909fc. This commit adds support
      and error-checking for non-fat frameworks that are not of the target
      architecture. In such cases, we now fail the build, and emit an error
      message and the contents of lipo -info for the affected framework.
      b16a515d
    • Chris Bracken's avatar
      Thin iOS app frameworks to the target architecture (#7913) · 1926d111
      Chris Bracken authored
      * Support thinning iOS frameworks to supported architectures
      
      When building against frameworks that are distributed as
      multi-architecture fat binaries, we want to strip the frameworks we
      distribute down to only the architectures specified in $ARCHS.
      
      This patch adds:
      * The ability to specify commands to xcode_backend.sh (if none is
        specified, run BuildApp for backward compatibility).
      * A 'thin' command that invokes lipo to thin down the distributed as
        described above.
      
      * Add framework thinning step to iOS build
      
      Invokes xcode_backend.sh thin on the build application.
      
      * Limit architectures to arm64 in Xcode template
      
      Flutter does not yet support armv7 iOS devices. Limit the $ARCHS build
      variable to arm64 until then.
      1926d111
  8. 25 Aug, 2016 1 commit
    • Chris Bracken's avatar
      Support a configurable build directory (#5601) · b5f763b4
      Chris Bracken authored
      This change adds a top-level getBuildDirectory func and funcs for
      android, aot, asset, ios build products.
      
      Developers may now add a "build-dir" mapping to their
      ~/.flutter_settings (JSON format) config file. Output directory is
      relative to the main flutter application directory.
      
      This change also changes the default build directory for iOS builds to a
      subdirectory of the configured build directory, 'build/ios' by default.
      b5f763b4
  9. 23 Aug, 2016 1 commit
  10. 10 Jun, 2016 1 commit
  11. 06 Jun, 2016 1 commit
  12. 04 Jun, 2016 1 commit
  13. 03 Jun, 2016 2 commits
  14. 02 Jun, 2016 1 commit
  15. 27 May, 2016 1 commit