I right-clicked on my product in Xcode and chose "Show in Finder" then I moved my image.bmp there, to /Users/.../Library/Developer/Xcode/DerivedData/XcodeCpp-.../Build/Products/Debug. But I'm still unable to load the image. Have I misunderstood "built application"? Where should image.bmp be? How do I get my image to load?

You need to set your working directory in code. The default SDL 1.2 file SDLMain.m has some code to set it to some place (I can't recall where). I'm not sure if SDL2 tries to set it.

Typically, in the end all of your game's data should be packaged into the bundle's Resources folder (or a subfolder within Resources). During development you can use a folder *next* to the .app bundle. When the app is built and is off in ~/Lib/Dev/X/.../BuildProducts somewhere, you would need to have that data folder next to the .app which is a nuisance, so you can add symlink pointing to where that is back in your project folder, so you have greater convenience, such as changing files and never having to worry if they were copied into the app bundle appropriately.