Skip to content

Upgrading

Marko Justinek edited this page Jul 8, 2021 · 20 revisions

Changes in v0.5.x

Swift Package distributed

Exposed as an open source swift package instead of an XCFramework binary.

Breaking changes

MockService.run() method signature changed. Renamed waitFor argument into timeout.

waitFor is confusing as it might indicate the test will wait for x amount of time before it runs. timeout is a more appropriate argument name for the implemented behaviour.

// <0.4.x
mockService.run(waitFor: 1) { [unowned self] testCompleted in ... }
// >=0.5.0
mockService.run(timeout: 1) { [unowned self] testCompleted in ... }

Changes in v0.4.x

Dropping Rust dependency. MockServer was moved into a separate project dependency PactSwiftMockServer and is exposed as a XCFramework in PactSwiftMockServer-Dist. This means there is no need to make changes to the build process in the Xcode project settings.

PactSwift 0.4.0 migrated to XCFrameworks.

SPM

  1. Remove the Build Phase that builds the libpact_mock_server.a binary using ./Scripts/BuildPhases/build-spm-dependency script.
  2. Remove $BUILD_DIR/../../SourcePackages/checkouts/.. entry for Library Search Paths in Build Settings.
  3. Optional: Remove cargo and rustup from PATH

Carthage

  1. Delete your Carthage/Build folder to remove any existing framework bundles.
  2. Build new XCFrameworks by running carthage build --use-xcframeworks. Any other arguments you build with can be provided like normal.
  3. Remove references to the old frameworks in each of your targets:
    • Delete references to Carthage frameworks from the target's Frameworks, Libraries, and Embedded Content section and/or its Link Binary with Libraries build phase.
    • Delete references to Carthage frameworks from any Copy Files build phases.
    • Delete the target's carthage copy-frameworks build phase, if present.
  4. Add references to XCFrameworks in each of your targets:
    • For an application test target: In the Build Phases settings tab, in the Link Binary With Libraries build phase, add the PactSwift.xcframework from the Carthage/Build folder on disk.
  5. Remove $(FRAMEWORK_SEARCH_PATHS) entry for Runpath Search Paths in Build Settings for your test target.
  6. Remove $(PROJECT_DIR)/Carthage/Build/iOS entry for Framework Search Paths in Build Settings for your test target.
Clone this wiki locally