Your builder gives you an .ipa file, and Apple expects it to be uploaded from a Mac. You don't need one. I set up a small workflow in your own private GitHub repository: it runs on GitHub's Mac servers, checks the .ipa with Apple's tool first, uploads it with Apple's own upload tool, then deletes the key from the server. Your App Store Connect API key goes into your GitHub secrets, so I never see it.