Skip to content

fix: build the apps where the documentation says they are - #22

Merged
heoblitz merged 3 commits into
toss:mainfrom
wjdtjq6:fix/build-product-paths
Oct 14, 2026
Merged

heoblitz merged 3 commits into
toss:mainfrom
wjdtjq6:fix/build-product-paths

Conversation

@wjdtjq6

@wjdtjq6 wjdtjq6 commented Oct 13, 2026

Copy link
Copy Markdown

Summary

With Xcode's default build location, the README's "Building from source" steps fail on the last line:

script/build
open Build/Products/Debug/Necto.app   # no such file

script/build builds the Necto scheme without saying where products go, so they land in ~/Library/Developer/Xcode/DerivedData/Necto-*/Build/Products/Debug (-showBuildSettings reports BUILT_PRODUCTS_DIR there), while the script prints built: Build/Products/Debug/Necto.app. The ExampleApp build passes -derivedDataPath Build, which puts the app at Build/Build/Products/Debug-iphonesimulator/ExampleApp.app, so the simctl install Build/Products/Debug-iphonesimulator/ExampleApp.app line in docs/install.md, docs/tutorial-device.md and docs/verification.md fails too. The release and E2E scripts already handle this (TARGET_BUILD_DIR lookup, SYMROOT=...); the developer-facing path did not.

Both builds in script/build and the documented ExampleApp command now set SYMROOT="$PWD/Build/Products", which is what script/test-e2e does for its own products.

Changelog

script/build and the install guide put the apps where their instructions say to open them.

Test Plan

  • Ran script/build end to end on a machine with default Xcode settings (no custom build location): BUILD SUCCEEDED and Build/Products/Debug/Necto.app exists afterwards (it did not before the change).
  • xcodebuild -project Necto.xcodeproj -scheme ExampleApp -destination 'generic/platform=iOS Simulator' SYMROOT="$PWD/Build/Products" build: BUILD SUCCEEDED, product at Build/Products/Debug-iphonesimulator/ExampleApp.app.
  • Not run: script/test e2e (no iOS 26.2 runtime here); it does not use script/build.

script/build and the manual ExampleApp command left the product
location to Xcode, which by default is a directory under
~/Library/Developer/Xcode/DerivedData, or Build/Build/Products with
-derivedDataPath Build. The paths printed by the script and given in
the README, the install guide and the tutorials then did not exist:
open Build/Products/Debug/Necto.app and simctl install
Build/Products/Debug-iphonesimulator/ExampleApp.app both failed.

Both builds now set SYMROOT to Build/Products, as script/test-e2e
already does for its own products.

@heoblitz heoblitz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for the fix.

@heoblitz
heoblitz merged commit 8385cc7 into toss:main Oct 14, 2026
5 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.

2 participants