So I had my Flutter app on Google Play for a while and finally wanted an iPhone version too. Problem is I only own a Windows PC.
Turns out you can do it. Took me about three weeks start to finish, and honestly the coding wasn't the slow part.
I used Codemagic as a cloud Mac. You hook up the repo and it builds, signs, and pushes to TestFlight for you. The free plan gives you 500 mac minutes a month, which was fine for one app. The queue can get ugly though, a couple of builds took almost an hour.
Most of the Dart code just worked. What didn't was the platform stuff. I swapped the Android doc scanner for the built-in iPhone one (VisionKit), switched Play Billing to StoreKit, and had to build the PDF library separately for iOS.
Debugging without a Mac was the painful part. First TestFlight build crashed the second it opened. No Xcode, no device logs. I ended up pulling the crash report through the App Store Connect API, and the cause was a single missing line, the AdMob app ID in Info.plist. Felt dumb. Now the build just fails if the ad IDs aren't there.
Review rejected me once, but it wasn't a code problem. Apple just asked for more info since it was a new account. A screen recording from a real phone, what the app does, what outside services it uses, how to get to the subscription screen. I wrote it all up in English, sent a recording, and it got approved pretty quick after that.
Two things I'd tell past me. If your subscription has no review screenshot, it never shows up in the app at all, the paywall just looks broken. And after release, link your App Store page in AdMob or ads stay limited.
Biggest surprise was that the account side took longer than the port. Developer program, paid apps agreement, tax forms, bank info, I even had to convert my account type. That was the real time sink.
Happy to answer stuff about the Codemagic setup or the review if anyone's curious.