I'll take your question in two parts:
Fortunately this app uses public APIs only, none of which are marked as deprecated (yay!). Because it's delivered via the store it's fully sandboxed and only needs a couple of (pretty pedestrian) entitlements
You never know until you submit to the store for review what will happen, and they ended up being completely cool and helpful. I did have a backup plan in place (i had round-tripped all that was needed for out-of-store distribution), but I'm really glad it didn't come to that.
This is my first Swift app, so maybe that has a lot to do with it, but I found macOS development requires "scavenger-hunt driven development", where you're literally using Xcode autocomplete to discover attributes and methods on system-provided objects. It's doable, but there's a lot of sleuthing involved and docs and tutorials can be a bit sparse.
Finally, the app did have to go through a couple rejections, but those were for missing some aspects of the Human Interface Guidelines, not the app's core functionality. All-in-all, by the time I launched, I think four versions of the app had been accepted (but not released to the public). (The first one was before I added in-app purchases, to test the waters)