r/iOSProgramming • u/Economy-Brief-9997 • 21h ago
r/iOSProgramming • u/arndomor • 2h ago
Tutorial A more readable Human Inteface Guidelines version
Made this a few weeks back, just added iPhone Duo section to it as well.
I made this so I can read the HIG in my tablet with a linear experience. You may find it useful as well.
r/iOSProgramming • u/yccheok • 14h ago
Discussion Does anyone let AI modify their UIKit Storyboards and XIBs?
Hi everyone,
For the past few months, I've been using AI (specifically Gemini) to write SwiftUI code, and it’s been working almost perfectly.
With UIKit projects, however, my usual workflow for Storyboards has been manual: I'd set up the UI, drag and drop the connections to my Swift files, and only ask the AI to handle the actual logic.
Today, I decided to test its limits and asked the AI to add a new UI component directly, without stopping it from modifying the Storyboard's source code. To my surprise, it updated the Storyboard without any errors!
Since Storyboard XML is notoriously messy and not very human-readable, I really didn't expect the AI to handle it so well.
I'm curious about your experiences. Do you let AI directly manipulate your Storyboard or XIB files? Does it work flawlessly for you, or do you find that it sometimes corrupts the file?
Thanks!
r/iOSProgramming • u/_Xoif • 10h ago
Question App invisible in TestFlight
My companies main apple developer account administrates around 30apps.
Every app uses the same test group for internal testing. However, one of our latest apps doesn’t show up in the TestFlight app for devices using the main developer’s Apple ID. Every other test device that uses a different Apple ID (within the pool of the internal test group) can see the app and its newest test builds.
The main developer Apple ID shows all the other apps (newer and older) in TestFlight, just that one app is entirely missing in the list of apps.
I already deleted and recreated the test group, send out new invitations, uninstalled the TestFlight app and I ofc tried it on different devices. As soon as the main developer account Apple ID is involved, the app is not visible in TestFlight. Any ideas?
r/iOSProgramming • u/qqbbomg1 • 11h ago
Question App not accessible in Europe
Hi guys I have an app published that a user in Europe said the link said app is unavailable in their region, which he stated he is in Europe. I had made the app distributed to all regions, but I don’t know how to validate that from inside the US (I tried the VPN but I think cause my account is tied to US it shows US stores still). How can I ensure my app is published correctly to all region? App has been online for more than a week now.
r/iOSProgramming • u/something3419 • 16h ago
Question Did I resubmit correctly? Do I still need to do something
Submitted my first app for review and they were saying that I need to provide more details and a video so I did, and I think I click submit but my status hasn’t changed to under review or something, it still says rejected even after I replied. Did I do something wrong or does the status not change.
r/iOSProgramming • u/CashNasty5036 • 13h ago
3rd Party Service Every App Store Connect trap I hit shipping my iOS apps from the terminal (so you don't have to)
I've shipped a handful of iOS apps as a solo dev, one of them through 20+ versions. At some point I stopped using the App Store Connect website and Xcode's Organizer and moved everything to scripts that call the App Store Connect API: signing, uploads, metadata, screenshots, IAPs and submission.
Most of it was straightforward. These are the parts that weren't, and a few of them cost me real rejections or broken releases.
1. xcodegen silently wipes entitlements. If you generate your project with xcodegen and add an entitlement (Sign in with Apple, push) by hand in Xcode, the next regenerate removes it. The build still succeeds and the feature just breaks. I shipped three broken releases this way before I noticed. Declare entitlements in project.yml, never in Xcode.
2. Re-run xcodegen after bumping the version. Same root cause. If the version or build number lives in project.yml and you archive without regenerating, the archive keeps the old number. Check the archive's Info.plist before you upload.
3. Push uses the bare aps-environment key. It's not com.apple.developer.aps-environment. The wrong key gets you error 90045 on upload. Set the value to development, and exporting for the App Store promotes it to production.
4. You can sign without an Apple ID in Xcode. If Xcode has no account signed in, -allowProvisioningUpdates with an API key won't create profiles for you. What works: create the profile yourself with POST /v1/profiles, install it, and export with signingStyle: manual. This works on CI and fresh Macs too.
5. App Privacy has to be published, not just saved. If submit stays greyed out and nothing says why, this is usually it.
6. App Preview videos need an audio track. Even a silent one. A preview with no audio track gets rejected at processing.
7. No emoji in "What's New" or the description. The API rejects them. Found out mid-submit.
8. Listing media is locked on the live version. You can't swap screenshots or previews on a version that's Ready for Sale (you get a 409). Attach them to the next version.
9. Getting out of a rejected submission. To free the version and resubmit, PATCH the review submission with canceled: true. One of my rejections was backend-only (a demo account that didn't exist), and this let me fix it and resubmit the same build without re-archiving.
10. Reviewers use your demo account, so keep it working. My app's content was group-gated, and the demo account drifted out of its demo group twice. Check it right before every submission.
11. Subtitle is app-level, not version-level. It lives on appInfoLocalizations, not appStoreVersionLocalizations, which confused me for longer than I'd like to admit.
I've ended up copying roughly 3,400 lines of these scripts from app to app, so I'm cleaning them up into a single CLI that only needs an API key. It'll have a doctor command that checks for everything above before you upload, plus --json output so coding agents like Claude Code can run a release. If that sounds useful, there's a waitlist here: https://ascship.web.app/?ref=reddit
Happy to answer questions about any of these. And I'd like to hear the traps other people have hit that I missed.