I've discovered that I can do this, so I'm answering my own question.
You can use a "local package" as described in this short article from Apple: Developing a Swift Package in Tandem with an App
I keep the same configuration as before — my app project still has a Swift package dependency defined, and that dependency still points to the same URL for the git repo. But now I also checkout/clone a local copy of that repo, into my app's project directory, or maybe one level up if I'm using an Xcode workspace. Then I drag that cloned directory to the Xcode project navigator. As soon as you drop that folder there, Xcode makes some adjustments to its UI, to reflect that it's using it as a local version of the package. You can edit the files there, and push changes back to the main repo. If you delete that local clone, Xcode goes back to using the read-only version like before.