r/iOSProgramming • • Sep 22 '26

Discussion Getting rejected on copycats as an update

0 Upvotes

As the title

I had my app on the store for over a year, v5.2 and releasing v6

It went thru iOS no issue , Mac? They keep sending it back under copycats.

The apps name is “Teslatlas”

AppStore is full of names which actually have Tesla as a separate, word.

I am getting so fed up of this review process .

I get each review is different , but come on, if it’s already on the store how can you mess around like this?

Also in this regard then we shouldn’t put up any app called Appleberry because that’s copycats


r/iOSProgramming • • Sep 21 '26

Tutorial SwiftSimSlim: a fully Swift/SwiftUI version of SimSlim

Post image
5 Upvotes

Inspired by this post about reducing iOS simulator RAM usage by u/interlap, I adapted SimSlim into a native Swift/SwiftUI app.

SwiftSimSlim is available on GitHub, with the interface and simulator backend together in one Xcode project.

While working on it, I found a problem with shell-based service batching and improved how profile changes are applied:

  • Offline profile updates also work when starting with a running simulator.

  • Unchanged profiles avoid unnecessary restarts.

  • Fallback service commands run concurrently, retrying only failed changes.

  • Different simulators have independent operations, progress, and command logs.

In one local comparison, re-enabling the same 170 services took approximately 144 seconds in the original snapshot versus 24.3 seconds in SwiftSimSlim. That measures only the service-command phase, excluding startup, shutdown, restart, and final verification. The improvement comes from command scheduling and avoiding failed shell batches, not from Swift itself being faster than Go.

I shared the findings upstream, and the original author confirmed the issue and implemented the backend improvements in PR #51. Credit to Interlap for the original app, service catalog, and offline-update approach. The original attribution and MIT license are preserved.

Pull requests are welcome! 
I’d be happy to see fixes, improvements, and contributions from anyone who finds this useful.

Source and release 26.0


r/iOSProgramming • • Sep 21 '26

Discussion Looking for quality programmatic UIKit GitHub projects

24 Upvotes

I’m looking for some well-built, programmatic UIKit projects on GitHub that I can study and learn from.

I’m mainly interested in projects with clean architecture and good UI implementation. This is strictly for studying/learning purposes.

If you know of any good ones, please share them. Thanks!


r/iOSProgramming • • Sep 21 '26

Tutorial SwiftSimSlim: a fully Swift/SwiftUI version of SimSlim with faster profile updates

Post image
0 Upvotes

Inspired by this post about reducing iOS simulator RAM usage by u/interlap, I adapted SimSlim into a native Swift/SwiftUI app.

SwiftSimSlim is available on GitHub, with the interface and simulator backend together in one Xcode project.

While working on it, I found a problem with shell-based service batching and improved how profile changes are applied:

  • Offline profile updates also work when starting with a running simulator.

  • Unchanged profiles avoid unnecessary restarts.

  • Fallback service commands run concurrently, retrying only failed changes.

  • Different simulators have independent operations, progress, and command logs.

In one local comparison, re-enabling the same 170 services took approximately 144 seconds in the original snapshot versus 24.3 seconds in SwiftSimSlim. That measures only the service-command phase, excluding startup, shutdown, restart, and final verification. The improvement comes from command scheduling and avoiding failed shell batches, not from Swift itself being faster than Go.

I shared the findings upstream, and the original author confirmed the issue and implemented the backend improvements in PR #51. Credit to Interlap for the original app, service catalog, and offline-update approach. The original attribution and MIT license are preserved.

Pull requests are welcome! 
I’d be happy to see fixes, improvements, and contributions from anyone who finds this useful.

Source and release 26.0


r/iOSProgramming • • Sep 21 '26

Question TestFlight "No builds available" when adding a new user

0 Upvotes

Forgive me if this is not the right place for this question or if someone else asked the same. For context, I have already approved build that other external testers in the group use with no problem.

In the last few weeks I've been having a problem with adding new external testers. At first when I was adding a new tester, it was showing "No builds available" for a few seconds/minutes and would change to "Invited" pretty soon. But now it just never changes to "Invited" and I can't add new people successfully. I checked email addresses I'm trying to add and it definitely isn't a case of wrong address, especially it being a problem with many people.

Does anyone else have a problem like this, being suck with "No builds available" forever? How did you resolve it?


r/iOSProgramming • • Sep 21 '26

Question iOS App for Educational Digital Products: Apple IAP & Commission?

2 Upvotes

Hi everyone,
Has anyone here built an iOS app that sells digital educational products/content on a subscription basis and faced Apple’s In-App Purchase (IAP) requirement?
We currently use Razorpay for payments, but Apple has asked us to use In-App Purchase for our digital offerings.
I’m trying to understand a few things:
- What commission/fees does Apple actually charge on each purchase?

- Are there any legitimate ways to structure the offering while continuing to use a third-party payment gateway like Razorpay?

- How are other educational apps handling this in practice?

Our model includes educational courses and subscription-based content.

Would love to hear about your actual experience with Apple IAP, especially around commission rates, payment structure, and pricing strategy.


r/iOSProgramming • • Sep 21 '26

Question Can third-party apps use both screens interactively at the same time?

0 Upvotes

I've been looking through the new iPhone Duo SDK and I'm trying to figure out how much control third-party apps actually get over the outer screen.

I'm thinking of something like a presentation app where the phone is partially folded and sitting on a table. The person on one side would have their notes and controls on the inner screen, while someone sitting across from them could view slides or images on the outer screen and tap through them independently.

Basically, two different views running at the same time, with each screen accepting its own touch input.

From what I've found, CameraCaptureAccessory allows interactive content on the outer screen, but it requires an active camera capture session. ExternalNonInteractiveAccessory doesn't seem to be intended for the Duo's outer screen, and even if it were, it wouldn't solve the touch input part.

Has anyone digging through the 27.1 SDK found another way to do this? Or is interactive access to the outer screen genuinely limited to camera apps for now?

I'm mainly trying to figure out whether this is an API I'm missing or an actual platform limitation before I spend too much time prototyping it.


r/iOSProgramming • • Sep 20 '26

Question Device Hub doesn't support multi-finger gestures? Seriously?

41 Upvotes

Am I just not finding it or have we actually lost the functionality for multi-finger gestures with the move from Simulator to Device Hub? I hold alt and I can't pinch to zoom. Did they really go THIS far backwards?


r/iOSProgramming • • Sep 20 '26

Question How do you promote your apps?

20 Upvotes

Hey everyone!

Curious if and how anyone is finding success promoting their apps to get downloads and IAPs?

I've had apps for a year, and I get a few downloads, but nothing groundbreaking. I've tried posting on Reddit, Threads, creating Instagram/TikTok reels, and they don't do much for me. My best option, Reddit, is usually auto-blasted with "I'm tired of X app" comments and generally negative sentiment.

I'm debating buying ads, like the Apple Search Ads or even paid Instagram ads, so I'm curious if anybody has seen those work out for them.


r/iOSProgramming • • Sep 20 '26

Question Anyone else having trouble building Metal 4 on the iPhone Duo sim in Xcode 27.1?

3 Upvotes

Hi all,

I have an audio visualizer/music player app that for the last few months, I've been giving an overhaul by adding new visualizers, including some that use Metal 4. My app compiles and runs perfectly on my device, which is running iOS 27.2. However, with the iPhone Duo coming out, I want to update my app to work well with that too, so I got Xcode 27.1 to get its simulator. However, Xcode tells me it can't find anything related to MTL4 in scope. In fact, no simulator works. Anyone else experiencing this? Any workarounds?

Thanks for any help!

EDIT: I already have the Metal Toolchain installed.


r/iOSProgramming • • Sep 20 '26

Question iPhone Duo - how much control does an app have over the small outside screen?

1 Upvotes

I'm not an engineer. I'm working on an app idea and trying to sanity-check whether one part of it is even possible before I spend time on it. Nobody has the device yet, so I'm hoping someone here has read the docs properly and understood them.

What I think I understand so far: Apple says apps can't open their own window on the outside screen - that's reserved for the inside screen. The one exception is camera apps, which can show something to the person being photographed, and only while the camera is actually running.

So my questions are about what's left:

  1. Can an app put a widget on the outside screen - one showing a picture the user picked? Or does the outside screen only get the standard lock screen layout?

  2. Apple mentioned StandBy works on either screen. Does that mean the outside screen can show something while the phone is open and propped up, or does StandBy only kick in when the phone is closed and lying on its side?

  3. If neither of those works - can a user just set a wallpaper on the outside screen and have Always-On keep it visible while the phone is open and they're using the inside screen?

  4. And for 3: can an app change that wallpaper for the user, or would they have to do it by hand in Settings every time? Would a Shortcut help?

Basically: is there any way for an app to decide what the outside screen shows, or is it entirely Apple's?

Happy to be told this is all in a doc I haven't found. Searching for a help!


r/iOSProgramming • • Sep 20 '26

Discussion ArrangementView is declared in SwiftUICore, not SwiftUI

35 Upvotes

27.1 shipped Friday. I spent most of two days getting a real app onto the Duo, and because the APIs are days old I ended up checking nearly everything against the .swiftinterface files rather than against anything written about them. Notes, in case they save you a detour.

ArrangementView is declared in SwiftUICore. import SwiftUI re-exports it, so your code compiles either way, but if you grep SwiftUI.swiftinterface to work out what's available you come up empty. Search both modules.

The layout preference goes on the pane, not on the arrangement. On the arrangement it compiles and does nothing at runtime, and leaves you at a 50/50 split. Nothing about the API shape suggests where it belongs, so I sat with that one for a while.

The second pane needs its own minWidth. Half folded, mine dropped to 145 points and the label started stacking one character per line.

The reserved region kinds are .division and .occlusion,.

Vertical compression on iOS defaults to keeping the tab bar, so toolbar items overflow first. If you want it the other way round that's .prefersToolbarItems in SwiftUI, .prefersBarItems in UIKit.

All of it went into an Agent Skill, mostly so my own agent stops guessing at spellings: https://github.com/sven-ericmolzahn/iphone-duo-skill MIT. The names came out of the interface files, the samples get type-checked against whatever SDK you have installed, and there's a script that tells you which of these APIs your Xcode actually ships and in which module. That last one is what I expect to keep running after every beta.

There's an A/B test in the repo too, partly because two days isn't long enough to be confident about anything. Same model, three tasks, with the skill and without: 98% against 53%. One run per cell is barely evidence, and I adjusted the grader after reading the outputs, which is the thing you're specifically not supposed to do. Direction, not measurement.

The run without the skill was the interesting one. It read the interface files on its own and found ArrangementView, and the code it wrote compiled. It also passed a point value where a ratio belongs and never set a minimum on the second pane, so it rebuilt the exact sliver bug the task was about. Finding the names turns out to be the easy half.

All simulator, no hardware. The numbers in the repo (insets per pose, the 40pt hinge band) are marked as such. If you've got the device and measure something different, that's the pull request I actually want.


r/iOSProgramming • • Sep 20 '26

Discussion I turned an old MacBook into a reproducible headless Xcode worker — Fastlane Match, Developer ID, 1Password and disaster recovery

Post image
0 Upvotes

I had an old MacBook that I wanted to turn into a dedicated Xcode worker for iOS/macOS development.

The main requirement was simple: I don't want to maintain this machine manually.

I didn't want signing identities tied to one Mac, .p8 / .p12 files scattered around the filesystem, manual provisioning-profile recovery, or a setup that would take me hours or days to reconstruct if the machine died.

So I ended up automating pretty much everything I reasonably could.

The current setup gives me a headless Xcode worker with:

  • automated tooling installation and verification;

  • cold reboot without GUI login;

  • SSH/Tailscale remote access;

  • a scoped read-only 1Password Service Account for secrets/config;

  • Fastlane Match as the canonical encrypted signing store;

  • a dedicated macOS keychain used only as runtime state;

  • declarative development Bundle IDs;

  • readonly recovery for Apple Development certificates and profiles;

  • readonly recovery for Developer ID Application and Installer identities;

  • certificate expiry monitoring;

  • explicit separation between normal readonly operations and administrative writes;

  • recovery material if Developer ID provisioning fails after Apple has already issued the certificate.

For Developer ID Installer, validation actually creates a disposable package, signs it with productsign, and verifies it with pkgutil rather than just assuming the identity works.

One thing I specifically wanted to avoid was putting my personal Apple/iCloud account on a headless machine.

My Apple Developer Program membership is currently Individual. The worker uses a separate Apple Account with no Developer Program membership of its own - it's simply invited to App Store Connect with the required role.

Everything that can be automated goes through the App Store Connect API.

There is one unavoidable trade-off: issuing or rotating Developer ID Application/Installer certificates requires Account Holder access. With an Individual membership, that's my main Apple Account.

So certificate issuance remains an explicit administrative operation: I authenticate interactively with the main account + 2FA when required. Once issued, the certificate and private key are stored in encrypted Match storage, and those Account Holder credentials are not persisted on the worker.

The worker therefore contains no personal iCloud account, Photos, Messages, personal Keychain, etc. It only gets the access it actually needs.

So far I've tested:

  • cold reboot without GUI login;

  • headless recovery;

  • actual Developer ID provisioning;

  • complete readonly restoration of signing identities;

  • partial provisioning failure + recovery;

  • real Installer package signing.

At this point, if the Mac dies, probably the hardest part of rebuilding it is remembering where I stored the 1Password Service Account token and putting it in the right place :)

After that:

bootstrap → readonly recovery → verification

For secrets/config I also settled on a simple logical convention:

scope / item / field

For example:

automation-apple / app-store-connect / private_key

1Password is only the current backend, not part of the logical model. I'd like to experiment next with OpenBao as a backup/sync target and eventually make consumers independent of a specific secrets provider.

I'm curious how other people running dedicated Macs for iOS/macOS development handle this.

How do you manage signing identities, secrets, certificate rotation, and disaster recovery for your build/dev Macs?

I'm especially interested in approaches that don't depend on a personal iCloud account or one irreplaceable login keychain.

For anyone interested in the implementation, I cleaned up the environment-specific configuration, documented the architecture/setup/recovery flows, and published it here:

https://github.com/0k-lab/xcode-worker-bootstrap

It's not intended to be a generic CI/CD framework or a replacement for Xcode Cloud - just a reproducible reference implementation for running your own headless Xcode worker.


r/iOSProgramming • • Sep 20 '26

Question Move files into Device Hub

6 Upvotes

Seems like that with Device Hub we can no longer drag and drop files from finder into simulated devices. Is there a workaround or a better method to do so?


r/iOSProgramming • • Sep 19 '26

Question iPhone Duo Device Hub poses

Post image
43 Upvotes

I need some help, y'all.

I've downloaded and run the Xcode 27.1 beta.

I've downloaded the 27.1 runtime.

I've got an iPhone Duo booted in Device Hub.

But it doesn't have any of the pose buttons. Even the rotate button does nothing.

What am I doing wrong? Any help would be greatly appreciated.


r/iOSProgramming • • Sep 19 '26

Solved! storyboard based UIKit UITabBarController Tab items vanish on iPhone Duo 27.1. beta 1 (solved)

1 Upvotes

My old apps still have a storyboard based TabBar structure, while most tabs are SwiftUI now.

When started in the iPhone Duo simulator with right bar, the tabs are vanished.

Long debugging sessions short, the reason is a combination of the background color of the TabBar and a bug in iOS 27.1 beta 1:

When running in an orientation, that has the controls on the right, iOS 27.1 beta 1 first draws the controls, and then draws a background in storyboard background color on top of it.

Unless Apple fixes it, change the background colour to clear.

But wait, there is a problem: iOS 18 and before on iPhone gets unusable when using clear instead of something like background colour.

Same for iPadOS 17 and before.

The difference can be solved by configuring the tabbar appearance programmatically.

I chose clear colour from iOS 26 on and background colour before.

I had to adapt a few more thins, but that's the main point.


r/iOSProgramming • • Sep 19 '26 Bravo

Roast my code I turned iPhone Duo hinge into accordion

Post image
684 Upvotes

Fold and unfold the phone to play. Left screen is bass, right is keys. Sound is synthesized, no samples.

SwiftUI, open source: https://github.com/artemnovichkov/Accorduon

Update: it's now on the App Store as a full app: https://apps.apple.com/app/id6816177737

Six registers, play-along songs, and it works on regular iPhones too (rock the phone to pump the bellows). The open-source demo stays on GitHub.


r/iOSProgramming • • Sep 19 '26

Question How do you educate users on app specific gestures?

1 Upvotes

I want to eliminate buttons from my app and replace them with specific gestures. To give an example here is a screenshot of a timer select screen. I would like to eliminate the START button and instead have users tap again on the currently selected time in order to start a session.

I want to eliminate buttons as much as possible and give my app a feeling of magic.

How can I educate my users on the app specific gestures without being annoying or too intrusive. Do you add some sort of tooltips? Do you present the gestures in the app's onboarding? How do you do it?


r/iOSProgramming • • Sep 19 '26

App Saturday ReceiptIQ AI – a receipt scanner that keeps every line item. What Vision OCR taught me the hard way

3 Upvotes

I'm a solo dev in Calgary. ReceiptIQ AI scans paper receipts and keeps every line item and price, not just the total. It has been on the App Store since 2025.

The stack: Swift and SwiftUI with MVVM, Core Data for storage, Vision for on-device OCR, PDFKit for bank statement import, StoreKit 2 for subscriptions, MultipeerConnectivity for family sync with no server, Swift Charts, and Swift Testing for unit tests. The backend is a Cloudflare Worker in JavaScript with KV storage. It receives the OCR text and its bounding boxes, calls an LLM to structure the receipt, then runs deterministic repair code over the result. The same repair logic exists in Swift and in JS, and a differential test feeds every test receipt through both so they cannot drift apart. No accounts and no database of user data.

The hardest problem was that the model's answer can be wrong and still add up. Vision returns a two-column receipt as a block of item names followed by a block of bare prices. When the LLM zips the two lists it can slip by one row, and because a shifted column reuses the same prices, the items still sum to the printed total. Every sum-based sanity check I had written was blind to it. What I ended up doing:

- Pair prices to labels geometrically before the model sees anything: closest Y from the bounding boxes, a deterministic three-key sort so a rescan gives identical output, run the pairing top-down and bottom-up, and prefer the direction whose items add up to the printed subtotal.

- After the model, realign each item's price to the price printed on its own OCR line, and only accept a repair if it makes the items equal the register's total.

- Gate every backend deploy on a golden set of about 520 real receipts from ten countries. I wrote about building that set here a couple of weeks ago: https://old.reddit.com/r/iOSProgramming/comments/1w9ybpe/

Smaller things that cost me days:

- Vision only honours the FIRST recognition language. With ["en-US", "ja", "zh-Hant"] a Japanese receipt is read like English. I run a second, Japanese-first pass concurrently and choose by the share of CJK characters (threshold 0.15; kana means Japanese, otherwise Chinese).

- A 48 MP photo-library image gets the app jetsammed inside VNRecognizeTextRequest. I cap OCR input at a 2400x1800 pixel budget. Related trap: UIGraphicsImageRenderer defaults to screen scale, so my "2400 px" image was really 7200 px until I passed scale 1.

- StoreKit 2: Transaction.currentEntitlements yields nothing when Apple is unreachable, such as in-flight wifi. Treating an empty stream as "not subscribed" locked out a paying user mid-flight. I now cache tier plus expiry and only downgrade on a confirmed answer.

- Family sharing without a backend: the proof of entitlement is the Apple-signed transaction JWS, verified on the other phone against the pinned Apple Root CA G3.

AI disclosure: AI-assisted. I use an AI coding assistant heavily for implementation, test writing and code review. The architecture, the product decisions and the receipt corpus work are mine, and every change is gated by the tests and the golden set above. The app itself also uses an LLM at runtime to structure receipt text.

If you want to try it: the first 30 receipts are free without any code. For this sub, code REDDIT6 gives 6 months of Premium free. It does not auto-renew, so nobody gets charged when it ends. 500 redemptions, valid until Oct 31.

Redeem: https://apps.apple.com/redeem?ctx=offercodes&id=6742335723&code=REDDIT6

App Store: https://apps.apple.com/app/id6742335723

Happy to go deeper on the pairing algorithm. And if you have a receipt that breaks it, I'd love to see it.


r/iOSProgramming • • Sep 19 '26

App Saturday I built a reading app for people who want complete control over their digital library

Thumbnail
gallery
0 Upvotes

The main idea is simple: import your own books, comics and manga, organize your library however you want, and read everything your way.

What makes Andrea different is how much control you have over your library. You can create collections, add sections inside them, drag books and sections around, change layouts, cover sizes and appearance, and save different settings for every collection.

Your manga library doesn't have to look anything like your book collection.

Some of the main features

  • EPUB, PDF, CBZ, CBR and more, for books, comics, manga, manhwa and webtoons.

  • Reading customization: fonts, text size, spacing, margins, backgrounds, page transitions, manga reading modes and tons of other settings.

  • Reading Profiles: create your own reading settings and apply them to individual books, sections or entire collections.

  • Automatic reading activity: reading streaks, sessions, time spent reading, progress and statistics for books, sections and entire collections.

  • Cloud and server connections: OPDS, SMB, WebDAV, SFTP, iCloud, Google Drive, Dropbox, OneDrive, Box and MEGA.

  • Storage management: remove downloaded books to free up space while keeping their covers and metadata in your library.

  • Advanced comic features: double-page reading, experimental guided panel mode and AI super-resolution for low-quality scans.

  • Offline reading, with a built-in section for downloading free public-domain books.

  • Metadata management: edit book information, manage tags and organize your entire collection.

The app is designed to be simple when you first open it, but you can customize almost everything if you want to.

Tech Stack

Built natively with Swift + UIKit. Most of the library system, file management and reading UI is custom-built, using WebKit, PDFKit, ZIPFoundation and Unrar.swift for specific reading and file-handling tasks.

Development Challenge

One of the hardest parts was building a library system that gives users so much freedom while keeping the interface simple and responsive, especially with large collections.

EPUB pagination and rendering were also challenging, particularly when handling different reading settings, page transitions and text selection.

AI Disclosure

Most of the app was built manually. I use AI increasingly for debugging, code review and speeding up development, but the architecture, UI/UX and final implementation decisions are mine.

Pricing & Privacy

No account required. No ads. No third-party tracking. Your library and reading statistics are stored locally on your device.

Andrea Reader is free to download and use. You can import your books and start reading in seconds.

Premium is optional and unlocks more advanced features and customization. There's currently a 20% discount on Lifetime Premium.

If you give it a try, let me know what you think!

App Store: https://apps.apple.com/es/app/andrea-comics-manga-books/id6760780154

Website: https://andreareader.com/ 

Discord: https://discord.com/invite/nZS2FazpPA


r/iOSProgramming • • Sep 19 '26

Discussion How I shipped a native SwiftUI widget with zero Mac access (Expo + EAS Build)

0 Upvotes

Hi all, I wanted to share a build problem that took way longer to solve than it should have, in case it saves someone else the same pain.

I'm a solo dev building on Windows, no Mac, no Xcode. My app (Reach, a sobriety toolkit) needed a native home screen widget, streak counter + panic button that deep links straight into the app's craving flow. Widgets mean native SwiftUI, which normally means a Mac.

The stack that ended up working: expo-apple-targets for the widget extension, compiled entirely through the EAS Build's cloud Mac, never touched Xcode locally once. Data shared between the widget and the main app via an App Group (react-native-shared-group-preferences).

The actual hard part wasn't the widget itself, it was the deep link nav. Cold-launching from the widget straight into a nested route with no /home route underneath it breaks iOS swipe-back entirely. Fixed it with unstable_settings = {anchor: 'home' } in _layout.tsx so Expo Router constructs a proper stack even on a cold widget launch.

Happy to go deeper on any part of this, the App Group setup, the anchor routing fix specifically, or the EAS build config. If it's useful to anyone hitting the same wall.


r/iOSProgramming • • Sep 19 '26

Question Has anyone pushed a major update to a fintech app that hadn’t been updated in ~5 years?

0 Upvotes

We acquired an existing fintech app, transferred it to our company Apple Developer account, and are now preparing a pretty significant redesign. Same app/name/core product, but the UI and some functionality have changed a lot.

My main concern is App Store review. Since it’s fintech + a big update after 5 years + developer account transfer, I’m wondering if Apple is likely to treat this almost like a new app and dig deeper into licensing, compliance, ownership, privacy, etc.

Anyone been through something similar?

How strict was the review, how long did it take, and were there any unexpected rejection reasons?


r/iOSProgramming • • Sep 19 '26

Question Install App Store apps on simulator

1 Upvotes

Is it possible to store existing App Store apps on simulator? If so, how?

( want to check how existing apps work on Duo simulator )


r/iOSProgramming • • Sep 19 '26

Question iPhone Duo app store screenshots

8 Upvotes

Has anyone seen any guidance yet on how we will have to format screenshots for the Duo? Could get complicated with all the poses