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
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
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
set -euo pipefailand quote every path.Acceptance criteria
Tests
Relevant files
Framework/SwiftyUpdateKit.xcodeproj/project.pbxprojFramework/SwiftyUpdateKit.xcframework/Framework/PrivacyInfo.xcprivacy