Xcode build fails with plugin error
Heyo,
I'm getting:
error: Plugin does not have access to a tool named ‘arm-none-eabi-gcc’
When I try to build and run from Xcode. I've installed the command line tools and also tried installing ‘arm-none-eabi-gcc’ separately with brew. Building from command line works. Not sure what to try next. Any tips?
arm-none-eabi-gcc should be installed by the Playdate SDK installer on macOS (and I guess it was if the command line build works). Not quite sure why it couldn't be found when run from Xcode 🤔 If you cd into the .swiftpm directory and run ./build-and-run.sh does it work? That's all that Xcode is doing.
Kinda. It seems to build and launches the simulator, but it doesn't launch the actual game and the script never exits, I get this output and then nothing more happens:
Building for simulator...
Copying resources...
Compiling into pdx...
✔ Build complete! (13,60s)
/Users/simme/Developer/cautious-octo-fiesta/.build/plugins/PDCPlugin/outputs/continuum.pdx
2025-06-13 11:18:21.119 Playdate Simulator[74474:22942282] GIT_COMMIT: 83b01743-2.7.4-release.186568-buildbot
[Sentry] [debug] [SentrySDK:210] Starting SDK...
[Sentry] [debug] [SentryFileManager:709] SentryFileManager.cachePath: /Users/simme/Library/Caches
[Sentry] [debug] [SentryFileManager:50] No file to delete at /Users/simme/Library/Caches/io.sentry/11164178475affeec73ee0756b1fa32d93d36c9c/events
[Sentry] [debug] [SentryHttpTransport:289] sendAllCachedEnvelopes start.
[Sentry] [debug] [SentryHttpTransport:316] No envelopes left to send.
[Sentry] [debug] [SentryReachability:178] Adding observer: <SentryHttpTransport: 0x6000032fbbf0>
[Sentry] [debug] [SentryReachability:180] Synchronized to add observer: <SentryHttpTransport: 0x6000032fbbf0>
[Sentry] [debug] [SentryReachability:210] registering callback for reachability ref <SCNetworkReachability 0x15224c410 [0x1f3d4c998]> {name = sentry.io}
[Sentry] [debug] [SentryFileManager:541] Moving state /Users/simme/Library/Caches/io.sentry/11164178475affeec73ee0756b1fa32d93d36c9c/app.state to previous /Users/simme/Library/Caches/io.sentry/11164178475affeec73ee0756b1fa32d93d36c9c/previous.app.state.
[Sentry] [debug] [SentryFileManager:129] Dispatched deletion of old envelopes from <SentryFileManager: 0x6000028b7a20>
[Sentry] [debug] [SentryFileManager:50] No file to delete at /Users/simme/Library/Caches/io.sentry/11164178475affeec73ee0756b1fa32d93d36c9c/previous.app.state
[Sentry] [debug] [SentryFileManager:541] Moving state /Users/simme/Library/Caches/io.sentry/11164178475affeec73ee0756b1fa32d93d36c9c/breadcrumbs.1.state to previous /Users/simme/Library/Caches/io.sentry/11164178475affeec73ee0756b1fa32d93d36c9c/previous.breadcrumbs.1.state.
[Sentry] [debug] [SentryFileManager:50] No file to delete at /Users/simme/Library/Caches/io.sentry/11164178475affeec73ee0756b1fa32d93d36c9c/previous.breadcrumbs.1.state
[Sentry] [debug] [SentryFileManager:541] Moving state /Users/simme/Library/Caches/io.sentry/11164178475affeec73ee0756b1fa32d93d36c9c/breadcrumbs.2.state to previous /Users/simme/Library/Caches/io.sentry/11164178475affeec73ee0756b1fa32d93d36c9c/previous.breadcrumbs.2.state.
[Sentry] [debug] [SentryFileManager:50] No file to delete at /Users/simme/Library/Caches/io.sentry/11164178475affeec73ee0756b1fa32d93d36c9c/previous.breadcrumbs.2.state
[Sentry] [debug] [SentrySDK:231] Dispatching init work required to run on main thread.
[Sentry] [debug] [SentrySDK:233] SDK main thread init started...
[Sentry] [debug] [SentryFileManager:234] Ignoring non directory when deleting old envelopes at path: /Users/simme/Library/Caches/io.sentry/async.log
[Sentry] [info] [SentryFileManager:292] Returning empty files list, as folder doesn't exist at path: (null)
[Sentry] [debug] [SentryCrashMonitor_NSException:126] Backing up original handler.
[Sentry] [debug] [SentryCrashMonitor_NSException:129] Setting new handler.
[Sentry] [info] [SentryCrash:310] Sending 0 crash reports
[Sentry] [debug] [SentryCrash:314] Process finished with completion: 1
[Sentry] [debug] [SentryCrashInstallationReporter:46] Sent 0 crash report(s)
[Sentry] [debug] [SentrySDK:510] Integration installed: SentryCrashIntegration
[Sentry] [debug] [SentrySDK:256] SDK initialized! Version: 8.43.1-beta.0
[Sentry] [debug] [SentryLaunchProfiling:68] Won't profile next launch due to specified options configuration: options.enableAppLaunchProfiling: 0; options.enableTracing: 0
[Sentry] [debug] [SentryFileManager:50] No file to delete at /Users/simme/Library/Caches/io.sentry/profileLaunch
[Sentry] [debug] [SentryReachability:137] SentryConnectivityCallback called with target: <SCNetworkReachability 0x15224c410 [0x1f3d4c998]> {name = sentry.io (complete, 35.186.247.156), flags = 0x00000003, if_index = 24}; flags: 3
[Sentry] [debug] [SentryReachability:102] Entered synchronized region of SentryConnectivityCallback with flags: 3
[Sentry] [debug] [SentryReachability:118] Notifying observers...
[Sentry] [debug] [SentryReachability:120] Notifying <SentryHttpTransport: 0x6000032fbbf0>
[Sentry] [debug] [SentryHttpTransport:109] Internet connection is back.
[Sentry] [debug] [SentryHttpTransport:289] sendAllCachedEnvelopes start.
[Sentry] [debug] [SentryHttpTransport:316] No envelopes left to send.
[Sentry] [debug] [SentryReachability:124] Finished notifying observers.
@simme I had the same issue with the current template, toolchain Swift 6.1.2 Release 2025-05-26 (a), Xcode 16.4 and Playdate SDK 2.7.5. I fixed it by adding /usr/local/bin to the PATH in build-and-run.sh script:
#! /bin/sh
set -e
export PATH="/usr/local/bin:$PATH"
...
It's a default location of arm-none-eabi-gcc alias in my environment.
@simme I had the same issue with the current template, toolchain Swift 6.1.2 Release 2025-05-26 (a), Xcode 16.4 and Playdate SDK 2.7.5. I fixed it by adding
/usr/local/binto the PATH inbuild-and-run.shscript:#! /bin/sh set -e export PATH="/usr/local/bin:$PATH" ...It's a default location of
arm-none-eabi-gccalias in my environment.![]()
Thank you! This fixed it for me as well (though my arm-none-eabi-gcc is in /opt/homebrew/bin/ instead)