Skip to content

fix: resolve Apple UIKit example against local SDK - #2142

Merged
ChiragAgg5k merged 1 commit into
mainfrom
fix/apple-uikit-dependency-pins
Oct 23, 2026
Merged

ChiragAgg5k merged 1 commit into
mainfrom
fix/apple-uikit-dependency-pins

Conversation

@ChiragAgg5k

@ChiragAgg5k ChiragAgg5k commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

The UIKit example had no registered local Swift package and referenced ../../../examples/apple, so resolving it could succeed with an empty dependency graph. Register the containing SDK (..) as a local package and use the same path for the project folder reference.

Refresh the Xcode-generated lockfile to the current 23-package graph, including swift-collections 1.7.4 and swift-log 1.16.2. A generation regression verifies that the registered reference resolves to the generated SDK manifest; it fails against the previous project template.

Validation:

  • Xcode dependency resolution succeeds for both a generated Apple SDK and the published SDK checkout; both produce identical project and lock files.
  • OSV batch queries using SwiftURL repository names and short-name aliases match 10 advisories in the published SDK's old pins and none in the new graph (23 dependencies).
  • Focused generation regression, PHP_CodeSniffer, changed-path PHPStan, Rector, and Twig lint pass.
  • Full Generation suite passes: 171 tests, 2,180 assertions, four skips (PHP memory limit raised to 2G).

The simulator build compiles the dependencies but fails in unchanged UIKit sample code (obsolete Database/account APIs and asynchronous @IBAction handlers). Those existing sample-code repairs are outside this dependency refresh.

Published SDK propagation: appwrite/sdk-for-apple#134. Security tracker: https://github.com/appwrite-labs/cloud/issues/6887

Tracks appwrite-labs/cloud#6887

@hansi-codes

hansi-codes Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

🟢 Tier S · Ready to merge

The local package reference and updated pins are consistent with the generated SDK layout, and the new regression test checks the path resolution.

The UIKit example project now registers the containing Apple SDK as a local Swift package and points its folder reference at that SDK. The resolved lockfile refreshes the swift-collections and swift-log pins, and a generation regression verifies that the local package reference resolves to the generated SDK manifest.

Verdict New comments Fixed Still open
✅ Approved 0 0 0
📂 Walkthrough · 3
File Change
templates/swift/example-uikit/UIKitExample.xcodeproj/project.pbxproj Registers the generated Apple SDK as a local Swift package and updates the folder reference.
templates/swift/example-uikit/UIKitExample.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved Refreshes the swift-collections and swift-log resolved versions.
tests/generation/GenerationTest.php Adds a regression test for resolving the UIKit example's local package to the generated manifest.

Reviewed 9adb57c · Details · Comment @hansi-codes review to re-run, or mention @hansi-codes with a question.

@ChiragAgg5k ChiragAgg5k self-assigned this Oct 23, 2026

@hansi-codes hansi-codes Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Tier S · Looks good to merge. Summary

@ChiragAgg5k
ChiragAgg5k merged commit feb6fdf into main Oct 23, 2026
61 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant