SwiftGen v6.4.0 Release Notes

Release Date: 2020-10-07 // about 2 months ago
  • ๐Ÿ†• New Features

    • ๐Ÿ“ฆ The built-in templates will now correctly handle Swift Package Manager resources, using Bundle.module if it's available. As before, you can override the used Bundle using the bundle or lookupFunction template parameters.
      Arnaud Dorgans #763
    • โž• Added config generate-xcfilelist subcommand to generate input and output xcfilelists based on your configuration file. These files should then be used in an Xcode build step that executes swiftgen config run. Don't forget to regenerate the file lists after adding/removing resources in your project in a way that might impact them.
      @CraigSiemens #441
    • 0๏ธโƒฃ Colors: the XML parser now accepts a colorFormat option, used to change the color format. The default format is rgba.
      @kevinstier #562 #768
    • ๐ŸŽ IB: Added support for instantiating scenes while providing a creator block, commonly used for dependency injection. This feature is available in generated code starting from iOS 13, tvOS 13 and macOS 10.15.
      @matsune David Jennes #778

    ๐Ÿ› Bug Fixes

    • โšก๏ธ Plist: Update the parsing strategy (using Codable) to fix parsing of Bool values as Integer in some cases.
      @fortmarek Olivier Halligon #779
    • ๐Ÿ›  JSON/Plist/YAML: fixed issue with inline templates which incorrectly generated 1/0 as values, instead of true/false as expected.
      David Jennes #779 #783
    • ๐Ÿ“œ JSON: the parser now correctly recognizes 0 and 1 as Int (instead of Bool).
      David Jennes #786

    Internal Changes

    • โšก๏ธ Update the Swift version in .swift-version so that the right version is used when building manually (using swiftenv).
      @cfiken #764
    • โšก๏ธ Update Yams from 3.0.0 to 4.0.0.
      @hungrxyz #772
    • โšก๏ธ Updated Pods and Gems dependencies, and Xcode 12.
      David Jennes #782

Previous changes from v6.3.0

  • ๐Ÿ—„ Deprecations

    • ๐Ÿš€ Fonts: the generated Font typealias (to UIFont/NSFont) is deprecated and will be removed in the next major release.
      David Jennes
      #728

    ๐Ÿ†• New Features

    • ๐Ÿ‘ Strings: support for plurals declared in .stringsdict files.
      Florian Fittschen
      #184
      #634
    • ๐Ÿ‘ Fonts: the templates now support a new fontTypeName template parameter that you can use to change the name of the struct representing a font to something else.
      David Jennes
      #728
    • ๐Ÿš€ Fonts: the templates now support a new fontAliasName that you can use to change the typealias's name from Font to something else. For example: this is useful when working with SwiftUI which already defines a Font type. Note that as this typealias is deprecated (see deprecations above), this template parameter will also be removed in the next major release.
      David Jennes
      #647
      #728
    • ๐Ÿ—„ CoreData: Deprecates fetchRequest() and adds makeFetchRequest() to avoid ambiguous function usage.
      David Rothera
      #726
    • ๐ŸŽ XCAssets: image assets now load faster on macOS if they're in the main bundle. MacOS only provides a caching mechanism for images in the main bundle, for other cases you may need to provide your own caching mechanism as needed.
      David Jennes
      #648
      #733
    • ๐Ÿ“š Fonts/IB/JSON/Plist/Strings/XCAssets: all templates that load data at runtime from a bundle now support a bundle template parameter, which you can use to override the bundle from which resources are loaded. Check out the template specific documentation for more information. For an in-depth explanation, also check the customize loading of resources article.
      David Jennes
      #737
    • ๐Ÿ“š Fonts/IB/JSON/Plist: Similar to the strings templates, these templates now support a lookupFunction template parameter, which allows you to provide your own resource lookup mechanism at runtime. Check the template specific documentation for more information. For an in-depth explanation, also check the customize loading of resources article.
      David Jennes
      #738

    ๐Ÿ› Bug Fixes

    • Strings: fix incorrect interpretation of format placeholders when there were missing positional parameters (e.g. "%2$@" without a %1$โ€ฆ defined).
      @AliSoftware
      #634