Skip to content

Make XCFramework generation fail fast and reproducible #31

Description

@HituziANDO

Problem

The Xcode build phase runs multiple archive commands without fail-fast shell settings or per-step validation. A failed archive can be followed by successful commands, allowing an incomplete or stale XCFramework to appear successful.

Scope

  • Move XCFramework generation into a version-controlled standalone script.
  • Use set -euo pipefail and quote every path.
  • Build into a fresh, narrowly scoped temporary/output directory.
  • Remove GUI-opening behavior from the build.
  • Validate slices, architectures, Info.plist values, privacy manifests, and Swift interfaces.

Acceptance criteria

  • Any failed archive or validation step returns a non-zero exit status.
  • A previous artifact cannot mask a failed build.
  • The same script runs locally and in CI.
  • The final XCFramework contains every supported platform slice and required manifest.

Tests

  • Exercise a successful build and an intentionally failing archive to verify exit behavior.

Relevant files

  • Framework/SwiftyUpdateKit.xcodeproj/project.pbxproj
  • Framework/SwiftyUpdateKit.xcframework/
  • Framework/PrivacyInfo.xcprivacy

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions