Skip to content

Upgrading

Marko Justinek edited this page May 12, 2021 · 20 revisions

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