r/iOSProgramming 3h ago

Tutorial visionOS 27: UILookToScrollInteraction

Thumbnail
antongubarenko.substack.com
Upvotes

r/iOSProgramming 16h ago

Discussion Testing a receipt scanner against real receipts from 5 countries turned out harder than building it

Upvotes

I make a small iOS receipt scanner (on-device OCR, then parsing). It worked fine on my own Canadian receipts. Then users in the Netherlands, Japan and Malaysia showed up and it fell apart in ways I couldn't reproduce, because I had no receipts from those countries.

Finding test data was the hard part. What I ended up with:

  • Japan: 1,148 photos from a public research set (JaWildText). Before testing on them, my yen handling paired an item with its price on 19% of receipts. After: 93%. I had no idea it was that broken.
  • Malaysia: 973 from SROIE (an ICDAR 2019 competition set). Old, and heavy on restaurants, but real.
  • US: 1,769 from WildReceipt. Mixed quality, some are not even US receipts, but it is the largest English set I found.
  • Netherlands: 74 photos from one user who sent them for debugging, with permission. That is the only real Dutch set I have.
  • Taiwan: zero real photos. I had to generate 40 synthetic 統一發票 from the printed layout. I know that is weak.

Things I learned:

  1. Public receipt datasets are old, and skewed to whatever the original paper needed. Nobody publishes a fresh, balanced, multi-country set because receipts are personal data.
  2. Thermal receipts fade. Half of my own "test set" from a trip a year ago is unreadable now.
  3. I never ask users for receipts. The few I have came unprompted, from bug reports.
  4. Measuring beat training. I did not fine-tune anything. A harness that runs every rule change against all sets and refuses if any correct total flips caught two regressions the same day, one of which broke 18 of 119 Japanese totals while fixing the case I was working on.
  5. Every country has a printing convention that a "generic" parser gets wrong: yen with no decimals, Dutch comma decimals, Japanese tax-included versus tax-excluded lines, US tips added after the total.

Question for people who have done this: is there any public receipt dataset for Taiwan, Korea, or Australia? Or a legal, non-creepy way to get a few hundred real receipts from a country you don't live in?

(Not linking the app. Happy to share the harness approach in comments if useful.)


r/iOSProgramming 3h ago

Question Building first iOS app and need guidance on background music

Upvotes

Edit: I ended up buying the tracks as I had to build enough karma to be able to post here which took a few days but still keen to get the communities inputs.
--
I’m building a breath work app at present and a key part of the experience means I’ll need background music. I’ve embedded some tracks from the site Free to Use; reading the fine print makes it clear I’ll need to either get a paid subscription, or get single track licenses at 50 pounds per song.

The app will be free with a subscription tier for additional features including an expanded soundtrack.

I have immensely enjoyed building the app, so either way I feel like this has been a rewarding and beneficial exercise for me regardless of whether it makes any sales or not.

At a minimum, I’ll need 4 tracks so I’m looking at an outlay of 200 pounds for the music. If i go with a subscription, it will be about 100 pounds per year. I’m leaning towards just getting the licenses for the tracks, but wanted to check in here first if others have gone with other options where they’ve needed backing music?

The quality and fit of the music I believe is a critical part of the app experience so I won’t be able to compromise on music quality.

I’m also a big believer in getting the product into the hands of users so I can iterate and focus my attention on areas that become clear are valuable for users, so I don’t want to overthink this and am close to pulling the trigger on this approach.

Are there any options I’m missing that I should be considering? Many thanks,


r/iOSProgramming 5h ago

Question 2 months later, i still dont have apple developer account. it wont process my payment

Upvotes

I dont understand . They keep asking for information that doesnt even exist such as SEID for my mac and macbook? I have given these people everything and apart from super late emails telling me to "recreate" the problem im not sure what else i can do. this is beyond frustrating. they have my IDs and every bit of information imaginable . so frustrated


r/iOSProgramming 22h ago

Question Existing app repeatedly rejected under 4.3(a) after adding RevenueCat and Meta SDK. Has anyone experienced this?

Upvotes

Hi everyone,

I have an iPhone camera app called FilmFold. Versions 1.0 and 1.1 were approved, but the 1.2 update has now been rejected several times under Guideline 4.3(a), Design and Spam.

Apple says the app shares a similar binary, metadata, or concept with apps submitted by me or other developers. The problem is that they do not identify what is similar. Every reply I receive is basically the same guideline text.

This is an update under the same App Store record and bundle identifier. FilmFold is the only app in my developer account. It is not a template or white-label app, I have never submitted it from another account, and the source repository is private.

FilmFold has 22 original virtual cameras. Each one has its own interface, optics, focal range, aspect ratio, color processing and behavior. The app also has custom native photo and video processing, lenses, accessories, double exposure and a local library that preserves the original media for later reprocessing.

The approved 1.1 version already had the 22 cameras, continuous zoom and the current adjustment interface.

The rejected 1.2 build added major native processing changes for three video cameras: Tape 99 Hi8, Warm 8 and Cine 35. It also added migration support for videos created in previous versions.

The biggest non-product difference is that 1.2 also added:

- RevenueCat for purchase entitlements

- RevenueCat's remotely configured paywall, offerings and placements

- Meta App Events and attribution

- App Tracking Transparency support

- EAS Update through `expo-updates`

I am not saying these SDKs violate 4.3(a). They are legitimate and widely used. I am wondering if one of them, a shared SDK resource, a remote paywall configuration, or an account identifier could have triggered an automated similarity check.

I have asked Apple to compare 1.2 with the approved 1.1 binary and to tell me whether the issue is related to code, assets, metadata or functionality. They continue to send the same generic response.

I have now prepared a new build, but I have not submitted it. It removes RevenueCat, the RevenueCat paywall, Meta, ATT and `expo-updates`. Purchases are handled directly through StoreKit again, using FilmFold's own paywall. The actual camera improvements remain.

Has anyone had a similar experience with an update to an existing app?

  1. Did RevenueCat, a remote paywall, Meta SDK or another common SDK ever cause a 4.3(a) problem for you?
  2. How did you get Apple to explain what was considered similar?
  3. Did removing the SDKs solve it?
  4. Did a formal appeal or App Review phone call help?
  5. Would you submit the cleaned build first or appeal the rejected build before replacing it?

I would really appreciate hearing from anyone who has actually resolved a similar rejection.


r/iOSProgramming 9h ago

Question Decompiling .ipa files to potentially create versions ported for desktop use or archival purposes?

Upvotes

Have an iMac from many years ago that I got out of storage and was backing up the files so it could eventually be recycled and such. It was as I was going through files, however, that I saw that there were backed up .ipa files from a bunch of apps, all belonging to an old iPod Touch that used to run on iOS 5 and then later on iOS 7. Most of them were nostalgic little applications I would buy and play back then and are ones that I can't seem to find on the App Store anymore, probably in part that it was developed on very outdated software.

However, that got me wondering: I might not have an old Apple device where these .ipa files could be loaded onto to see if they run. But I do know that there are people who have successfully made ports of older apps so they could run on a desktop or an emulator for archival purposes. Not sure, though, if this worked also with .ipa games in the same way that computer-centric game files (such as .swf) did. If it is, I'd really like to know how I could go about doing exactly this: Decompiling the contents of the .ipa that was saved on the iMac and potentially creating a port of it for desktop or other devices, since that iPod these games and apps used to be used on is no longer working.

Anyone willing to help a complete novice in this out and let me know if this can be done? Apologies in advance if this is a ridiculous or stupid question, or if my ambitions to do something like this are too high.


r/iOSProgramming 1d ago

News String Into Action: an open source Mac app to review strings in your app

Post image
Upvotes

Maybe it's just me but I cringe when I see a lot of obviously AI-written text in an app or web UI. It just reeks of laziness and makes apps/websites seem all alike.

So, I made this open-source Mac app that lets you review every user-facing string in your project. It won't "fix" them - you have to do that - that's the whole point.

For each string, you can approve, ignore, or tweak. And it intelligently tracks string status across launches. Then if anything later touches that string, it appears back in the review queue.

It's a native Mac app, free & open source, with no dependencies. Hope you find it useful!

https://github.com/madebywindmill/string-into-action


r/iOSProgramming 1d ago

Discussion Is there any appetite to talk about your journey or hear others’?

Upvotes

I’m a full-time developer by day and an indie developer by night. So I know I have a burning desire to speak and hear from others in the same space. Reddit is cool but it’s all in written format which gets stale. Anyone else interested? Maybe we can spin up a clubhouse room or something.


r/iOSProgramming 1d ago

Question Subscriptions between macOS and iOs app

Upvotes

I have a macOS released on the store. I'm waiting for approval for the same app under the same bundleID but iOS version. Everything came back clean but was denied because of the following error below. When I submitted the app I just submitted the binary. I was not able to attach the already approve sub group and sub from the macOS version. It's my understanding I can use the same sub group and sub for both apps since they are in the same app group or whatever it's called. I submitted again with a screenshot of the subscription page. No clue what they are asking for.

Guideline 2.1(b) - Performance - App Completeness

Issue Description

We are unable to complete the review of the app because one or more of the In-App Purchase products have not been submitted for review.

Specifically, the app description includes references to subscription but the associated In-App Purchase products have not been submitted for review.

Next Steps

To resolve this issue, submit the In-App Purchase products and upload a new binary in App Store Connect so we can proceed with our review.

Note you must provide an App Review screenshot in App Store Connect in order to submit In-App Purchases for review. Learn more about required In-App Purchase metadata.


r/iOSProgramming 1d ago

Discussion Using the Swift compiler as the scorer: measuring whether LLM-generated SwiftUI uses deprecated APIs (15 models, 5,952 samples)

Upvotes

Most code benchmarks measure whether generated code works. This measures whether the APIs it calls are still valid for a pinned SDK. No LLM judge: the scorer is the Swift compiler plus an AST pass. Ground truth is parsed from the SDK’s .swiftinterface files at runtime, so nothing is hand-maintained.

The thing that nearly invalidated the whole project: Apple marks most SwiftUI deprecations with a sentinel, deprecated: 100000.0, and the compiler deliberately does not warn on those by default. That is 270 of 326 deprecated symbols, including NavigationView and foregroundColor. Build this the obvious way and you observe 14 percent of deprecations and every model looks current. There is a hidden frontend flag that turns them on. If you measure deprecation on any Apple platform, this probably affects you.

Results are mostly a null result. Scores span 0.78 to 0.88, and bootstrapping over prompts (k=5 samples at temp 0.2 on one task are not independent), all 14 adjacent pairs overlap. Currency does not track price or tier: the top scorer is a cheap variant priced 12x below its siblings, and a coding-specialised model is last. One comparison survives cleanly: Qwen’s general model beats its coder sibling, non-overlapping. Coding-tuned seems to mean more fluent in the idioms it trained on, stale ones included.

Two things I want picked apart:

**1.**  Only samples that actually touch the API family under test get scored, which flatters models that hand-roll when unsure. I report the gate rate beside every score, but that documents the bias rather than fixing it.  
**2.**  Adding the 15th model erased the last surviving separation between adjacent pairs. More models, less resolution. I read that as prompt count being the binding constraint, but tell me if that is wrong.

Repo, method, full per-family tables: https://github.com/mapierce/iOS-Evals


r/iOSProgramming 1d ago

Question Is the $99 worth it for an app that scrapes retail sites? Built the thing, now unsure about shipping it.

Upvotes

Built a price tracker. You paste an Amazon or Flipkart link, it checks the price in the background and notifies you when it drops. No account, no server. SwiftData on device, local notifications, widget families.

Repository: github.com/rational-kunal/keemat

The question: is it worth paying for a developer account here? I am fairly sure scraping two retailers runs into guideline, and the official Amazon API needs an Associates account and doesn't cover Flipkart anyway. Has anyone shipped something in this category and survived review? Or is TestFlight as far as this goes?


r/iOSProgramming 2d ago

Discussion Is there a better way to use the iOS Simulator remotely from Windows?

Upvotes

I’m not a big fan of macOS. I’ve never really gotten used to it, and I’ve always had issues with display scaling/resolution when using macOS with my monitors. For some reason, macOS never looks completely sharp to me, which really bothers me.

However, I do have a Mac mini specifically for iOS app development.
I mainly develop React Native apps on my Windows PC and use EAS to create iOS builds. I then test those builds on my iPhone.

The problem with this workflow is that I don’t really have convenient access to the iOS Simulator. At the moment, I would have to connect to my Mac mini via something like TeamViewer, pull the latest code, start the project, and then stream the simulator through the remote desktop session.
Having to connect to the Mac mini every time, pull the latest changes, and essentially remote-control the entire Mac just to use the iOS Simulator feels pretty cumbersome.
Is there a simpler way to do this?

Ideally, I’d like to:
- Develop entirely on Windows
- Use the Mac mini only for the iOS Simulator
- Stream only the iOS Simulator window to Windows instead of the entire macOS desktop

Ideally have the simulator automatically use the latest code from my Windows development environment
Alternatively, is there any way to run the iOS Simulator directly on Windows?


r/iOSProgramming 2d ago

Library I added iOS binary size profiling to kmprofiler using Xcode link maps

Upvotes

Hey everyone!

I previously shared kmprofiler, a Gradle plugin that finds Kotlin declarations exported to iOS but not directly referenced in Swift.

v0.2.0 now adds Xcode link-map analysis. It can:

* Group linked symbol size by Kotlin package

* Show the largest symbols

* Map symbols to object files and frameworks

* Compare two builds to see what grew or became smaller

I tested it on a real KMP app with more than 330,000 symbols. It measures symbols in the link map, not the complete app size, so it is mainly useful for finding size changes and large dependencies.

GitHub: [https://github.com/SiddhantPanhalkar/kmprofiler\](https://github.com/SiddhantPanhalkar/kmprofiler)

I would love to hear whether this is useful for your KMP projects.


r/iOSProgramming 4d ago

Tutorial A small trick to make iOS simulators use less RAM

Upvotes

iOS simulators start a lot of background daemons that you often don't need for development or CI. Siri, Spotlight, widgets, photo analysis, iCloud stuff, etc.

The good news is that Apple gives us a way to disable them.

For example:

xcrun simctl spawn <udid> launchctl disable system/com.apple.PosterBoard

Then reboot the simulator:

xcrun simctl shutdown <udid>
xcrun simctl boot <udid>

That disable is persisted in the simulator so the next time it boots, PosterBoard won't start.

Do this for enough unnecessary services and you can save a pretty decent amount of RAM.

The harder part is figuring out what is actually safe to disable, what breaks when you disable it, and then managing that across multiple simulators.

I ended up building SimSlim around this:

https://github.com/MobAI-App/simslim

It has a list of around 180 daemons that are safe to disable, grouped by feature, plus some convenient commands for slimming/restoring simulators and managing different profiles for local use or CI.

It's free and open source. Give it a try.


r/iOSProgramming 3d ago

Question In-App Subscription stuck in "Prepare for Submission" and In-App Purchases and Subscription section won't show on app version page

Upvotes

All of my subscription products are fully set up with localizations, pricing, and all required metadata filled out. However, they are stuck in the "Prepare for Submission" status instead of switching to "Ready to Submit".

Because of this, the "In-App Purchases and Subscriptions" section on my app's version page refuses to show up, meaning I can't attach the subscriptions to the build for review.

Has anyone experienced this recently? Is there a hidden requirement or a specific step I might be missing to push them into the ready state? Any tips would be greatly appreciated!


r/iOSProgramming 3d ago

Question App removed from sale under Guideline 5.6 for "features intentionally hidden during review", has anyone successfully resolved this?

Post image
Upvotes

My iOS app was already live on the App Store. I submitted an update, and Apple has now removed the app from sale under Guideline 5.6.

The exact message says:

“We’ve identified a pattern of unusual behavior with the app that is commonly associated with fraudulent activity. Specifically, the app contains features that appear to have been intentionally hidden during the review process.”

Apple did not identify which feature they believe was hidden.

The app is an ambient audio / sleep and focus app with:

  • onboarding
  • a subscription paywall using RevenueCat, analytics using posthog.
  • monthly/yearly subscriptions
  • a 3-day introductory trial
  • bundled and remotely delivered audio/catalog content

I am currently auditing the production build for anything that could cause App Review to see different behavior from a normal user. I have already found some testing-related route parameters and a subscription UI regression, but there was no intention to hide functionality from App Review.

For anyone who has received this exact Guideline 5.6 message:

  • What ended up triggering it?
  • Did Apple eventually tell you which feature was the problem?
  • Did you reply first, submit a corrected build, or appeal to the App Review Board?
  • How long did it take to get the app restored?
  • Is there anything I should absolutely avoid doing right now?

I want to resolve this correctly rather than repeatedly resubmitting and making the situation worse.

Thanks.


r/iOSProgramming 4d ago

Question external testers

Upvotes

when you utilized external testers for test flight did you do a public link or did you do a private email list?

also how did you find testers?


r/iOSProgramming 3d ago

Question Paywall / Free trial question

Upvotes

Hi, 

I am currently trying to develop my first app ever, iOS only.

The building was hard enough, but now I am facing the hurdles of trying to publish it on the App Store, and so I have to start thinking about prices/subscriptions, paywalls, etc. and navigate the obscure process of App Store Connect.

It is clear enough for me that it will be a paid app. But it is a very simple app, with only a couple screens and very basic function. It does one thing, and I hope it does it well enough that it genuinely helps people, and that they will see value in it. But I can’t really go the freemium way, with free access to the base and paid for extra features. I only have one feature, and I do not want to add any.

I was thinking, maybe something like 6$ for 6 months, 10$ yearly, and 30$ for lifetime?

My trouble is, imho it is an app that has to be tried and experienced over a couple day to see if it fits. I would like to offer three days, or maybe a week of free trial.

But as far as I know, there is no way to register a free trial in App Store Connect, that does not start right from download? So the user has to decide right now, if maybe perhaps they want to try your app and commit to 10$ yearly? Without having even opened the app? Seems a bit off-putting, or am I missing something?

Thanks in advance for your advices.


r/iOSProgramming 4d ago

Question Individual to business developer account

Upvotes

Hey guys need advice

Starting my business finally and want to convert my developer account to my business

https://developer.apple.com/contact/request/migrate-individual-account

Is this the only thing I need to do ? What else ?

I have all my numbers and documents ready to go.


r/iOSProgramming 4d ago

Discussion Core ML: dispatching on output shape so one Swift decoder handles both an end-to-end and a raw detector export

Upvotes

I ship a small object detector inside an iOS app and I export it two different ways depending on the model generation, so the Swift side has to cope with both. The approach that ended up working is to branch on the output tensor shape rather than on a flag I carry around:

  • An end-to-end export gives me [1, 300, 6] — x1, y1, x2, y2, score, class — with decoding and NMS already inside the graph. Nothing to do in Swift but scale the boxes back through the letterbox.
  • A raw export gives me [1, 84, N]: 4 box terms plus 80 class scores per anchor, transposed, which I still have to decode and run NMS on myself.

So the predictor reads prediction.shape, checks that the last dimension is at least 6 and the second-to-last is non-zero, and picks the decoder from that. It means adding a new model export never touches the call site, and a bad export fails visibly at the guard instead of quietly producing zero boxes.

Two things I would have liked to read before starting:

  1. A silent failure mode is the normal failure mode here. An export that "succeeds" tells you nothing. The only test that means anything is printing the input and output shapes and comparing them to what your decoder expects. I lost real time to an export that ran fine and detected nothing, because the decoder was reading a layout the model no longer produced.
  2. coremltools 8+ has no usable Windows path. I develop on Windows, so my entire export chain lives in a Colab notebook and the resulting .mlpackage gets committed and wired into the Xcode project from there. If your CI or your daily machine is not macOS or Linux, plan for that on day one rather than discovering it two weeks in.

On the app side the camera preview is a native platform view and the detection overlay is drawn on top by the UI layer, so no frame data is ever copied out of the capture pipeline.

Curious how others handle the versioning problem: do you keep the decoder generic like this, or pin one export format per app release and refuse anything else?


r/iOSProgramming 3d ago

Question Apple strictly rejects our app

Upvotes

We have created an app that helps technicians and repair shops find compatibilities for phone parts.

We offer free plan and paid subscriptions.

The app review team rejected the app completely saying that we offer subscriptions outside the app, even tho we strictly removed EVERYTHING that requires payment. Basically the data are free in iOS, still they rejected it.

We understand the guidelines but we want to sort this out in the best way possible.

The app is based in Algeria (North Africa) so basically apple pay doesn't work like in Many countries.

More info:

We offer subscriptions in the website and the android app.

Our questions is:

How can we launch the app ?

How can we actually get subscriptions ?

Should we opt out offering the subscriptions via the website?

Does apple actually review the android app ?

And Many more questions.

Thanks to everyone in advance


r/iOSProgramming 5d ago

Humor it's been 84 years

Post image
Upvotes

r/iOSProgramming 4d ago

Question Adding IAP to existing review

Upvotes

I had my app got rejected because I forgot to add my IAP to my app. The subscription group was added but not the lifetime purchase. Now I want to add that IAP to my review but I only get to option 'add for review' and it opens a new review but then I cant add my app to it. Everytime I update the app for review it sends it in without the IAP and gets rejected. Any help? I find this new update confusing


r/iOSProgramming 4d ago

Library enriched-markdown-ios v0.2.0 - now with GitHub Flavored Markdown (GFM) support

Upvotes

I just released v0.2.0 of enriched-markdown-ios - SwiftUI Markdown renderer powered by TextKit 2.

New in this release:
🔸 GFM Tables
🔹 Task lists
🔸 Superscript & subscript support

💎 Available via Swift Package Manager!

.package(
  url: "https://github.com/software-mansion-labs/enriched-markdown-ios.git", 
  from: "0.2.0"
)

Added a quick demo video in the comments so you can see it in action!

GitHub & Docs:https://github.com/software-mansion/enriched-markdown/blob/main/packages/enriched-markdown-ios/README.md

What features or syntax support would you like to see next? I'd love to hear your thoughts! If you find the library useful, a ⭐️ on GitHub is always appreciated.


r/iOSProgramming 4d ago

Article Going from backend/DB work to native iOS made me feel like a junior developer again

Thumbnail
shiftmag.dev
Upvotes