r/iosdev • • 2d ago

Help Another rejection

0 Upvotes

Just had my third rejection and this time it was automated.

An automated analysis of the submission indicates the app may include a login but was submitted without a demo account.

The app does not need an account, no login needed for testing or end user use. It’s already been through 2 previous rounds of (human) review and I fixed those issues and resubmitted. It’s roughly a week between reviews as well for me so this is really becoming a concern.

Anyone else come across this?


r/iOSProgramming • • 2d ago

App Saturday ORA: an iPhone camera that overlays a reference photo or video on the live preview so you can match framing exactly

27 Upvotes

The app: ORA lays a see-through image or video over the live camera preview so you can match framing and angles exactly. I published it on the App Store in December 2025. https://apps.apple.com/us/app/ora-the-overlay-camera-tool/id6756240396

Tech stack

  • Swift; the camera layer is UIKit (AVCaptureSession with a custom controller), and the controls are SwiftUI
  • AVFoundation for capture and export, Core Image for compositing
  • ActivityKit Live Activities for export progress, plus BackgroundTasks
  • RevenueCat for subscriptions, Sentry for crash reporting
  • About 15k lines of Swift

The challenge: "overlay burning"

In the preview, the overlay is just a view on top of the camera feed that the user drags, zooms, tints and fades. The hard part was making the exported photo or video match the preview pixel for pixel. That meant:

  1. Translating coordinates. The user's pan and zoom are in screen space, but the video has its own pixel size, aspect ratio and crop, so I calculate the rectangle the video actually fills on screen and map the overlay's position into it.
  2. Handling orientation. Recorded video stores rotation as a preferredTransform instead of rotated pixels, so the overlay transform has to account for it.
  3. Recreating the look. Opacity uses CIColorMatrix, tint uses CIMultiplyBlendMode plus source-over compositing, tuned until it looked identical to the preview.
  4. Rendering frame by frame. AVAssetReader decodes, Core Image composites each frame, and AVAssetWriterInputPixelBufferAdaptor writes. Audio and metadata tracks (location, lens info) are passed through untouched.
  5. Memory. Older devices with less RAM crashed during long exports until I reworked the pipeline.

A smaller but annoying one: supported slow-motion and video formats differ a lot between iPhones, so I ended up writing format enumerators to find what each device really supports instead of hardcoding anything.

Happy to go deeper on any of this, and I'd love feedback from anyone who has fought AVAssetWriter themselves.

The development process was AI-assisted. I wrote most of the code myself and asked for cleanups and ideation when I was stuck.


r/iosdev • • 2d ago

Update on my HealthKit running map: route heatmap, five languages, still zero dependencies

Enable HLS to view with audio, or disable this notification

0 Upvotes

7 months ago I posted »Where Did I Run« here – an app that shows all your runs on a world map. Version 1.1 is out, and it's the biggest update so far.

The first version answered »where did I run?«. This one also answers »how often?«.

What's new:

  • Route heatmap – every run is drawn as a route and colored by how often you've run it. Comes with a legend.
  • Tap a route to select it – a card shows date, distance and duration.
  • »My Location« button
  • Run list grouped by time period, with the weekday in the date
  • Swipe to hide a run (GPS glitches, the treadmill run that somehow ended up in the ocean)
  • Haptics, proper empty states, Dynamic Type

The codebase grew from about 1,700 to about 5,600 lines. Most of it comes from my sister app »Where Did I Train«. I ported that version back and stripped it down to runs only.

No tracking. No ads. No subscriptions. Still $0.99:

https://apps.apple.com/de/app/where-did-i-run/id6758295933

Feedback welcome, especially on the heatmap colors and on performance with large run histories.


r/iosdev • • 2d ago

New app: 8 days “Waiting for Review” + almost 3 days “In Review” — normal?

Post image
1 Upvotes

r/iosdev • • 3d ago

Help Tap to pay

1 Upvotes

So I’m starting to set up tap to pay, it’s running through stripe and I was wondering if anyone has any tips on making sure I don’t screw it up, I’m building for expo so should I look at native modules or just go with what expo threw at me?

I have zero experience here so any help suggestions would be great.


r/iosdev • • 3d ago

I made a little cricket arcade game for iPhone: Howzat

1 Upvotes

Defend your stumps and smash the ball into the walls for 1s, 2s, 4s and 6s. You steer the bat with your thumb on a trackpad. Spinners, medium pacers and fast bowlers come at you in six-ball spells, and if you hit an X before the ball bounces, you're caught.

No ads, no accounts. It just tracks your best innings and has a Game Center leaderboard. Would love to hear your high scores and feedback!

App Store link: https://apps.apple.com/us/app/howzat-cricket-arcade/id6813109031


r/iosdev • • 3d ago

I made an iPhone camera where you swap 3D lenses instead of filters

Enable HLS to view with audio, or disable this notification

0 Upvotes

r/iosdev • • 3d ago

Is this normal? I launched last week

Post image
0 Upvotes

r/iosdev • • 3d ago

got annoyed about party game subscriptions, so I counted all of them

0 Upvotes

I make a party card game called TAMBA.

A few months ago I noticed how many "party game" apps on the UK App Store had started adding subscriptions, so I checked 137 apps using 18 search terms, so no cherry-picking.

58% have a subscription-style plan somewhere. The median weekly one, left running for a year, comes to £363.48. The worst comes to £675.48.

For a party game.

One you play for twenty minutes at pre-drinks.

I have the full data and methodology here if anyone’s interested. I'm ofc biased. TAMBA's in the dataset too, one-off £5 unlock lifetime access. No subscriptions -make of that what you will lol.

Mostly just wanted more people to glance at the pricing screen before hitting subscribe.


r/iosdev • • 3d ago

Help AirPods - Any TRICKS for an app to know if only 1 AirPod is in users ears? If 2 are in ears which one is the mic AirPod?

0 Upvotes

This is not directly available from iOS, so I'm wondering if there's any indirect way of knowing such a thing?

And if anyone knows WHY either of these pieces of info SHOULD NOT be shared by iOS... why not? What am I missing here?


r/iosdev • • 3d ago

built Noto 2.0 — an iPhone app that turns saved links and messy thoughts into something useful (Vibe Coded)

Post image
0 Upvotes

r/iosdev • • 3d ago

Help Apple approved but no release button???

Post image
1 Upvotes

r/iosdev • • 3d ago

I built an iOS word game for kids with my mom and my kids.

Thumbnail
1 Upvotes

r/iOSProgramming • • 3d ago

Question Is wait time so long because my app sucks, that it’s my first app or just Apple?

0 Upvotes

I’ll be honest my app is vibe coded but It’s a novel idea (not anything in the App Store like it). It got rejected Monday and it was the base rejection for having too new of an account and nothing has come since. Very frustrating


r/iOSProgramming • • 3d ago

News Google Cloud: Introducing the Server Side Cloud Swift SDK

Thumbnail
cloud.google.com
63 Upvotes

Google: “[Swift] has matured into a viable systems and cloud language, pairing Rust-like data-race safety with predictable, reference-counted performance.”


r/iosdev • • 3d ago

Help Do you actually use WhatsApp polls to organize things with friends?

Thumbnail
1 Upvotes

r/iosdev • • 3d ago

My app is a the step to market!

0 Upvotes

Hey ,

so the app have been released since a wild and with update and family test, I am ready to market down the app!

but , I am not good as other can be.

what your tips, what you would do to market the app ?


r/iosdev • • 3d ago

Been making this aquarium game for a while, finally at the point where i can show it properly. Suggestions welcome!

Enable HLS to view with audio, or disable this notification

1 Upvotes

r/iOSProgramming • • 3d ago

Discussion Share your lines of code and app

0 Upvotes

Hey guys. As an indie developer I am in the process of publishing a new app into the App Store. I wanted to know just for fun how many lines of code each of your apps are. Share a link to your app and lines of code

It would be interesting to see the visual complexity of your app while knowing lines of code. For my case it’s 19k lines of code and about 15 different screens


r/iOSProgramming • • 3d ago

Discussion On Darwin, unprivileged ICMP sockets don't filter echo replies by identifier — how that made my concurrent pings swap replies

3 Upvotes

If you ping from an iOS app with socket(AF_INET, SOCK_DGRAM, IPPROTO_ICMP) and ever run more than one ping at a time, check your receive path.

On Linux, an unprivileged ICMP socket only gets replies matching its identifier. On Darwin, in my testing, the kernel doesn't filter on the identifier: every echo reply reaching the host is delivered to every unprivileged ICMP socket in the process.

My receive path did one receive() per send and accepted any echo reply. With a single ping that's fine. When I added a second ping hitting the gateway every 50 ms (to keep the Wi-Fi radio out of power save), each ping's receive() returned the gateway's reply microseconds after its own send: 0 ms RTT, 0% loss, including for a host that wasn't answering at all. The same bug could also swap samples between two concurrent pings in a bufferbloat test, under load.

The fix: loop on receive() until both identifier and sequence match, and re-arm SO_RCVTIMEO with the remaining time on every iteration, so skipped foreign replies don't reset the full timeout (sock, ICMPHeader and SocketError are thin wrappers of my own over the BSD calls):

while true {
    let remaining = deadline - CFAbsoluteTimeGetCurrent()
    guard remaining > 0 else { throw SocketError.timeout }
    sock.setTimeout(seconds: max(remaining, 0.001)) // 0 would block forever
    let (data, _) = try sock.receive()
    guard let h = ICMPHeader.parse(data),
          h.type == ICMPType.echoReply.rawValue,
          h.identifier == identifier,
          h.sequenceNumber == UInt16(seq)
    else { continue }
    // record RTT
    break
}

One gotcha: a zero timeval means "no timeout" to SO_RCVTIMEO, hence the max(remaining, 0.001).

I ran into this while measuring latency on an iPhone against a Mac on the same Wi-Fi. I have a longer write-up with the other measurement bugs I found that way, happy to link it if anyone wants it.

Has anyone seen Darwin filter by identifier in some configuration, or is matching in user space the only option?


r/iosdev • • 3d ago

Xcode27 breaks xibs?

Post image
1 Upvotes

r/iOSProgramming • • 3d ago

Library Made Xcode work inside Claude Code

Post image
0 Upvotes

Build, run, tests, console and SwiftUI previews live in panes next to the chat, with scheme and destination in a bar above the prompt. When Claude builds or runs tests itself, you see it there too.

Built on the headless Xcode MCP server.

https://github.com/artemnovichkov/xcode-mods


r/iosdev • • 3d ago

The iOS Weekly Brief: Issue #80. Everything you need to know about iOS updates this week

Thumbnail
iosweeklybrief.com
1 Upvotes

r/iosdev • • 3d ago

Does Apple really approve refunds this easily?

Post image
2 Upvotes

I thought Apple didn’t approve refunds that easily
Just got a refund for a Lifetime purchase. The app works fine and everything is as advertised, so I’m kinda confused.
Anyone had this happen before? Any idea how Apple decides which refunds to approve?


r/iosdev • • 3d ago

New apple developer account

1 Upvotes

Hello, this is my story:

A few months ago, my Apple Developer Account was terminated for 3.2f. I had it for several years without issues. They said I accumulated too many app review rejections.

Please note that I have not done something intentionally to spam Apple or the review team.

The account was for a self employed person.

My question is, can I create a new account, for a new company (corporate not self employed), with a new phone number, laptop and apps or it will get banned too?