One challenge could be you may have developed the app in say, Swift 2 back in 2015 or so.
Then if for some reason Apple have taken your publish app down from the store, you may find it impossible to publish it back again in its Swift 2 guise.
Newer xcode versions than xcode 7 likely will not recognize Swift 2 code but request you to convert your code to a newer Swift language incarnation.
This requires gradually installing newer xcode versions as you keep converting to newer Swift levels, so that you step by step get access to a converter that help you convert your source code to yet a newer Swift language stepping and enable the code usable on that newer xcode version.
If you are successful in doing so all the way up to xcode 11 you may find yourself with Swift code that you cannot recognize as having written yourself(!). All may seem obfuscated after all the steps from 2,3,4 to Swift 5.
And during the conversion effort earlier xcode versions may not execute at all on your latest macOS version.
So you may need more than one Mac to run the multiple xcode versions required along the way.
In case of one app I wrote back in 2015 I found it was better to stay with the Swift 2 app and xcode 7 on an older macbook (with older OSX) and study and refresh myself on that original code flow. Then create a brand new project on xcode 11 on a recent macbook and manually reproduce the app there from scratch in Swift 5.