cappuccino / cappuccino

Web Application Framework in JavaScript and Objective-J
https://cappuccino.dev/
GNU Lesser General Public License v2.1
2.2k stars 333 forks source link

XcodeCapp build configuration fails with Xcode 15 #3061

Open enquora opened 4 months ago

enquora commented 4 months ago

Under Xcode 15, the XcodeCapp project cannot be built when opened in Xcode (with current build settings). With the build setting 'Deployment Location' enabled, building produces a fatal error complaining about a 'Cycle inside XcodeCapp'. Disabling the 'Deployment Location' allows building and running in the expected manner.

This appears to be new behaviour with Xcode 15 - see this discussion. It's not immediately clear what, in our case, is causing Xcode to believe there exists a cycle in the build/deployment phases.

It is untested yet whether the problem occurs on the command line when supplying deployment location parameters directly.

Regardless, both the build and deployment process need to be revisited for modern versions of Xcode and macOS. Although it may be possible to fix building XcodeCapp and deploying when embedded in the overall Cappuccino install process, this doesn't properly address:

  1. Users installing compiled versions of the node branch (which is now the canonical branch, for most purposes).
  2. Users who may not have an Apple developer license for signing the build product (signed for local running has a short expiry window, does it not)?

A more robust workflow, imo, is moving XcodeCapp to its own Github repo within the Cappuccino organization,, building separately, then notarizing, posting beta and release builds, and adding the download and installation as part of the npm install process.

cappbot commented 4 months ago

Assignee: enquora. Label: tools. What's next? A reviewer should examine this issue.

enquora commented 1 month ago

This has been patched in 'master' (Narwhal) branch. Will keep open for reference until promotion of node to default branch is complete and fix has been merged to it.