如何透過 TestFlight 測試 Lovable 應用程式
How to Use TestFlight for Your Lovable App
將 Lovable 應用程式以 Capacitor 封裝成 iOS 應用程式,再用 Xcode 封存並上載至 App Store Connect,便可透過 TestFlight 邀請測試者。
To use TestFlight with a Lovable app, wrap it with Capacitor, archive the iOS project in Xcode and upload the build to App Store Connect, then add testers on the app's TestFlight tab: up to 100 internal testers from your App Store Connect team with no review, or up to 10,000 external testers by email or public link once Apple has reviewed your first build. Each build can be tested for 90 days (Apple's TestFlight docs, checked October 20, 2026).
That's the whole mechanism. What follows is the part the docs don't tell you, which is how a web app built in Lovable behaves when real people install it from TestFlight instead of opening a preview link.
Why bother, when Lovable already has a preview
Because the preview is a website and TestFlight is the app. Everything that goes wrong on iOS goes wrong in the native shell: the keyboard covering your login button, the status bar sitting on top of your header, a deep link opening Safari instead of the app, push permission prompts that never appear. None of that shows up in the Lovable preview on your phone's browser.
TestFlight is also the dress rehearsal for App Review. The first external build goes through Apple's review against the same App Review Guidelines, so a WebView-shaped app that would get a 4.2 rejection tends to hit trouble here first, while nothing public is at stake.
Getting the build up
You need a paid Apple Developer account ($99 a year) and a Mac with Xcode. From the Capacitor project:
npm run build
npx cap sync ios
npx cap open ios
In Xcode, pick Any iOS Device (arm64) as the target, then Product → Archive. When the Organizer opens, choose Distribute App and the App Store Connect option. Xcode signs and uploads it. Expect the build to sit in "Processing" in App Store Connect for anywhere from five minutes to an hour.
Two things stop first uploads more than anything else. The build number has to go up every single time (Xcode's Build field, not the version), and the export compliance question will be waiting for you. Most Lovable apps only use standard HTTPS, which Apple treats as exempt encryption, and you can answer once in Info.plist with ITSAppUsesNonExemptEncryption set to NO so it stops asking. If your app does its own cryptography, answer honestly instead.
Internal or external: pick based on who's testing
Internal testers have to be users in your App Store Connect team with a role like Admin, Developer, App Manager or Marketing. Up to 100 of them. Builds reach them as soon as processing finishes, and you can set new builds to go to them automatically. This is for you, your cofounder and the freelancer who's fixing the safe-area padding.
External testers are everyone else, up to 10,000. You create a group, add a build, and that first build goes to App Review. Apple's page says a review is required only for the first build and later ones "may not require a full review", which in practice means most updates go out fast and now and then one sits for a day. Invite people by email, or turn on a public link and paste it wherever your users are. You can also limit the public link by device type and OS version, which is handy if you only want iPhone users on a recent iOS.
We had a founder send the public link to a 2,000-person waitlist on a Friday night. Good news: 340 installs over the weekend. Bad news: the app's sign-up email still pointed at the Lovable preview domain, so every confirmation link opened a browser tab instead of the app, and the TestFlight feedback inbox filled with screenshots of the same broken page. Test the auth emails with two people before you test with two thousand.
Reading what testers send you
Testers on current TestFlight can send feedback from inside your app by taking a screenshot, and it lands in the TestFlight Feedback section of App Store Connect with the device and OS attached. That's genuinely useful for layout bugs, because "the button is cut off" arrives with the iPhone model that cuts it off.
App Store Connect also shows sessions and crashes per build. A Capacitor app that crashes on launch usually has a missing permission string (camera, photo library, location) in Info.plist. iOS kills the app the moment it asks for that permission without one, and in TestFlight it looks like a crash with no explanation.
The 90-day thing
Every build stops working 90 days after upload, and testers see it expire. If you're using TestFlight as a slow-motion soft launch, which plenty of people do, you need to upload a fresh build before that date or your testers get locked out. Upload a new build every few weeks anyway. Testers stay in their groups across builds, so nobody needs to be re-invited.
When it's ready for the real store
Once a build has been through external testing without nasty surprises, you submit the same build for App Store review from the app's distribution page. No new upload needed. How the launch runs in both stores is on publish your Lovable app to the App Store and Google Play. If you'd rather not fight Xcode signing and the review notes yourself, we help with the submission and the reviewer's questions on every package (see the packages), or just ask us what your app needs.
Originally published on lovable2app.com. Aakash Verma, software developer and founder of Lovable 2 Live.
來源:DEV Community · dev.to
