Release Notes

1.0.0


Breaking

  • None.

Enhancements

  • No more trial mode - 100% of results are now free. Advanced features require a Pro license.

Bug Fixes

  • Fixed issue with poor performance resulting in a segmentation fault.

0.12.2


Breaking

  • None.

Enhancements

  • None.

Bug Fixes

  • Ensures Xcode is configured for command-line use.

0.12.1


Breaking

  • None.

Enhancements

  • None.

Bug Fixes

  • Built with a static Swift stdlib.
  • Ignore xcworkspace generated by Swift Package Manager inside the xcodeproj.

0.12.0


Breaking

  • None.

Enhancements

  • Support for saving, and using build logs in order to skip the build phase.
  • All output format types are now available in trial mode.

Bug Fixes

  • Unused code with cyclic dependencies is now detected.
  • Protocol declarations implemented in a subclass of the conforming class are now identified as used.
  • Protocols that inherit a foreign protocol (e.g from Foundation) are now treated differently than other protocols, as Periphery cannot detect declarations that are used internally by the foreign module. For example, if your class conforms to Comparable and implements <(lhs:rhs:), the behavior of sort() may be altered, yet Periphery does not have visibility of any directs call to <(lhs:rhs:).

0.11.2


Breaking

  • None.

Enhancements

  • --report-exclude and --index-exclude options now expect a pipe character to delimit multiple globs.

Bug Fixes

  • None.

0.11.1


Breaking

  • None.

Enhancements

  • Identify LinuxMain.swift as an entry point.

Bug Fixes

  • Fix regression of handling schemes and targets containing spaces.

0.11.0


Breaking

  • None.

Enhancements

  • Added tips for eliminating false positives in trial mode.
  • Added check-update command.
  • Added ability to exclude files either from indexing or final report.

Bug Fixes

  • None.

0.10.0


Breaking

  • None.

Enhancements

  • Added support for Xcode 10.
  • Warn about source files that are members of multiple targets.
  • Diagnosis console now lists active references as their source location.

Bug Fixes

  • Fixed issue where error messages would not be printed before Periphery exits.

0.9.0


Breaking

  • None.

Enhancements

  • Added guided setup flow.

Bug Fixes

  • None.

0.8.1


Breaking

  • None.

Enhancements

  • None.

Bug Fixes

  • Handle explicitly defined PRODUCT_MODULE_NAME.

0.8.0


Breaking

  • None.

Enhancements

  • Added support for Xcode's new build system.
  • Added support for analyzing XCTest targets.
  • Added interactive diagnosis console, enabled with the --diagnose option.
  • Licenses can now be activated using --email and --key options instead of entering them interactively.

Bug Fixes

  • Improve parsing of xcodebuild -list output.
  • Type aliases that define an associated type are now identified as used.

0.7.3


Breaking

  • None.

Enhancements

  • None.

Bug Fixes

  • Workaround issue with xcodebuild using non-UTF8 encoding.

0.7.2


Breaking

  • None.

Enhancements

  • Enable analysis of CocoaPod targets.

Bug Fixes

  • None.

0.7.1


Breaking

  • None.

Enhancements

  • None.

Bug Fixes

  • Improve scheme identification for older workspaces.
  • Fix handling of source files containing single quotes.
  • Fix handling of paths to swiftc that contain hyphens e.g Xcode-9.3.app.

0.7.0


Breaking

  • None.

Enhancements

  • Disabled code signing as it's not necessary and can cause build failures.
  • Schemes are no longer required to be marked as shared in order to be discovered.

Bug Fixes

  • Fixed discovery of xibs/storyboards that reside within a Base.jproj.
  • Fix retention of protocol declarations with a default implementation within an extension.

0.6.2


Breaking

  • None.

Enhancements

  • None.

Bug Fixes

  • Correctly handle projects containing spaces their PRODUCT_NAME.
  • Add support for missing declaration kinds.

0.6.1


Breaking

  • None.

Enhancements

  • None.

Bug Fixes

  • Improve xcodebuild swiftc argument parsing such that CoreData generated model file arguments are retained.
  • Improved invalid scheme error message.

0.6.0


Breaking

  • None.

Enhancements

  • Added trial mode.

Bug Fixes

  • None.

0.5.0


Breaking

  • The --retain-all-enum-cases option has been removed. Unused cases of enums that are not raw representable are always identified. Unused cases of raw representable enums are now implicitly used since their use may be completely dynamic. --aggressive analysis disables this implicit behavior.
  • The --retain-objc-annotated option is now enabled by default.

Enhancements

  • Xcode format output is colored to improve readability.

Bug Fixes

  • CodingKey enums are now correctly identified as used if the enclosing class or struct conforms to Decodable.

0.4.0


Breaking

  • None.

Enhancements

  • None.

Bug Fixes

  • Fix retention of declarations marked @IBOutlet or @IBAction.

0.3.0


Breaking

  • None.

Enhancements

  • None.

Bug Fixes

  • Fix issue parsing Xcode projects that contained groups without an associated physical directory.

0.2.0


Breaking

  • None.

Enhancements

  • None.

Bug Fixes

  • Added --project option for use with projects that do not have an .xcworkspace.

0.1.0


  • Initial release.