From 2e6985655d08601fcda2aed31417f6662e499813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=86=8C=EC=A0=95=EC=84=AD?= Date: Wed, 30 Sep 2026 21:07:24 +0900 Subject: [PATCH] fix: build the apps where the documentation says they are 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. --- docs/install.md | 2 +- docs/ko/install.md | 2 +- docs/ko/tutorial-device.md | 2 +- docs/ko/verification.md | 2 +- docs/tutorial-device.md | 2 +- docs/verification.md | 2 +- script/build | 6 ++++++ 7 files changed, 12 insertions(+), 6 deletions(-) diff --git a/docs/install.md b/docs/install.md index c13560b..46868a1 100644 --- a/docs/install.md +++ b/docs/install.md @@ -54,7 +54,7 @@ simulator or attach the device over USB. The app appears in Necto's sidebar when ```bash xcrun simctl list devices available # pick a device id xcrun simctl boot -xcodebuild -project Necto.xcodeproj -scheme ExampleApp -derivedDataPath Build -destination "id=" build +xcodebuild -project Necto.xcodeproj -scheme ExampleApp -destination "id=" SYMROOT="$PWD/Build/Products" build xcrun simctl install Build/Products/Debug-iphonesimulator/ExampleApp.app xcrun simctl launch im.toss.necto.example ``` diff --git a/docs/ko/install.md b/docs/ko/install.md index 1442a63..8596729 100644 --- a/docs/ko/install.md +++ b/docs/ko/install.md @@ -54,7 +54,7 @@ open Build/Products/Debug/Necto.app ```bash xcrun simctl list devices available # 디바이스 id를 하나 골라요 xcrun simctl boot -xcodebuild -project Necto.xcodeproj -scheme ExampleApp -derivedDataPath Build -destination "id=" build +xcodebuild -project Necto.xcodeproj -scheme ExampleApp -destination "id=" SYMROOT="$PWD/Build/Products" build xcrun simctl install Build/Products/Debug-iphonesimulator/ExampleApp.app xcrun simctl launch im.toss.necto.example ``` diff --git a/docs/ko/tutorial-device.md b/docs/ko/tutorial-device.md index 1ec2005..db6ae82 100644 --- a/docs/ko/tutorial-device.md +++ b/docs/ko/tutorial-device.md @@ -391,7 +391,7 @@ NectoSDK.register(UptimePlugin()) ```bash xcrun simctl list devices available # pick a device id xcrun simctl boot -xcodebuild -project Necto.xcodeproj -scheme ExampleApp -destination "id=" build +xcodebuild -project Necto.xcodeproj -scheme ExampleApp -destination "id=" SYMROOT="$PWD/Build/Products" build xcrun simctl install Build/Products/Debug-iphonesimulator/ExampleApp.app xcrun simctl launch im.toss.necto.example ``` diff --git a/docs/ko/verification.md b/docs/ko/verification.md index 88cdb5b..75b5ac7 100644 --- a/docs/ko/verification.md +++ b/docs/ko/verification.md @@ -81,7 +81,7 @@ E2E가 실패하면 로그와 테스트 결과를 첨부해요. ```bash xcrun simctl boot -xcodebuild -project Necto.xcodeproj -scheme ExampleApp -destination "id=" build +xcodebuild -project Necto.xcodeproj -scheme ExampleApp -destination "id=" SYMROOT="$PWD/Build/Products" build xcrun simctl install Build/Products/Debug-iphonesimulator/ExampleApp.app xcrun simctl launch im.toss.necto.example ``` diff --git a/docs/tutorial-device.md b/docs/tutorial-device.md index bb46e99..d64230e 100644 --- a/docs/tutorial-device.md +++ b/docs/tutorial-device.md @@ -388,7 +388,7 @@ Run it, on the simulator loop from [verification.md](verification.md): ```bash xcrun simctl list devices available # pick a device id xcrun simctl boot -xcodebuild -project Necto.xcodeproj -scheme ExampleApp -destination "id=" build +xcodebuild -project Necto.xcodeproj -scheme ExampleApp -destination "id=" SYMROOT="$PWD/Build/Products" build xcrun simctl install Build/Products/Debug-iphonesimulator/ExampleApp.app xcrun simctl launch im.toss.necto.example ``` diff --git a/docs/verification.md b/docs/verification.md index 691c744..647227c 100644 --- a/docs/verification.md +++ b/docs/verification.md @@ -129,7 +129,7 @@ Use a simulator for the loopback connection path. ```bash xcrun simctl boot -xcodebuild -project Necto.xcodeproj -scheme ExampleApp -destination "id=" build +xcodebuild -project Necto.xcodeproj -scheme ExampleApp -destination "id=" SYMROOT="$PWD/Build/Products" build xcrun simctl install Build/Products/Debug-iphonesimulator/ExampleApp.app xcrun simctl launch im.toss.necto.example ``` diff --git a/script/build b/script/build index a605ee5..2e20d16 100755 --- a/script/build +++ b/script/build @@ -27,6 +27,10 @@ echo "==> swift packages" swift build swift build --package-path NectoMac +# Where Xcode puts products is a preference of the machine unless it is said here, and +# the path printed at the end is the one the documentation tells people to open. +products=(SYMROOT="$PWD/Build/Products") + echo echo "==> app" run_xcodebuild "error:|warning:|BUILD" xcodebuild \ @@ -34,6 +38,7 @@ run_xcodebuild "error:|warning:|BUILD" xcodebuild \ -scheme Necto \ -configuration Debug \ -destination 'platform=macOS' \ + "${products[@]}" \ build # ExampleApp is the only thing that compiles against the SDK the way an app would, so @@ -49,6 +54,7 @@ if [ -n "$SIM_ID" ]; then -configuration Debug \ -destination "id=$SIM_ID" \ -derivedDataPath Build \ + "${products[@]}" \ build else echo "SKIP: no booted simulator, so the SDK was not compiled against an app."