<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Subhajit Kar</title>
    <description>The latest articles on Forem by Subhajit Kar (@subhajit_kar).</description>
    <link>https://forem.com/subhajit_kar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3808056%2Fc2382bee-2a6b-4e23-b3b7-e4a92b287ef4.png</url>
      <title>Forem: Subhajit Kar</title>
      <link>https://forem.com/subhajit_kar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/subhajit_kar"/>
    <language>en</language>
    <item>
      <title>The Most Dangerous Message in Mobile Development</title>
      <dc:creator>Subhajit Kar</dc:creator>
      <pubDate>Thu, 05 Mar 2026 14:32:11 +0000</pubDate>
      <link>https://forem.com/subhajit_kar/the-most-dangerous-message-in-mobile-development-463d</link>
      <guid>https://forem.com/subhajit_kar/the-most-dangerous-message-in-mobile-development-463d</guid>
      <description>&lt;p&gt;If you build mobile apps, you’ve probably received this message at least once.&lt;/p&gt;

&lt;p&gt;“&lt;em&gt;Hey… the build isn’t installing.&lt;/em&gt;”&lt;/p&gt;

&lt;p&gt;And just like that, your day is ruined.&lt;/p&gt;

&lt;p&gt;You start investigating.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maybe the provisioning profile expired.&lt;/li&gt;
&lt;li&gt;Maybe the tester’s UDID isn’t included.&lt;/li&gt;
&lt;li&gt;Maybe their iOS version is too old.&lt;/li&gt;
&lt;li&gt;Maybe Developer Mode isn’t enabled.&lt;/li&gt;
&lt;li&gt;Maybe the app was signed incorrectly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now you’re debugging an installation failure on someone else’s phone with almost no visibility.&lt;/p&gt;

&lt;p&gt;And it usually happens at the worst time:&lt;br&gt;
    • right before a client demo&lt;br&gt;
    • right before QA testing&lt;br&gt;
    • right before a release&lt;/p&gt;

&lt;p&gt;Sound familiar?&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;h3&gt;
  
  
  The Problem Nobody Talks About
&lt;/h3&gt;

&lt;p&gt;Mobile development has incredible tooling today.&lt;/p&gt;

&lt;p&gt;We have:&lt;br&gt;
    • powerful IDEs&lt;br&gt;
    • fast build systems&lt;br&gt;
    • automated CI pipelines&lt;/p&gt;

&lt;p&gt;But the moment we try to distribute a test build, things suddenly become fragile again.&lt;br&gt;
Especially with ad-hoc builds.&lt;/p&gt;

&lt;p&gt;To install an iOS ad-hoc build successfully:&lt;br&gt;
    • The provisioning profile must be valid&lt;br&gt;
    • The device UDID must be registered&lt;br&gt;
    • The OS version must meet minimum requirements&lt;br&gt;
    • The app must be signed correctly&lt;br&gt;
    • Developer Mode must be enabled (iOS 16+)&lt;/p&gt;

&lt;p&gt;If any one of these fails, the installation fails.&lt;/p&gt;

&lt;p&gt;And usually, you discover the failure after the tester already downloaded the build.&lt;/p&gt;

&lt;p&gt;Which leads to the classic:&lt;br&gt;
“It’s not installing.”&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;h3&gt;
  
  
  Most Build Distribution Tools Don’t Solve This
&lt;/h3&gt;

&lt;p&gt;Most tools help with file sharing.&lt;/p&gt;

&lt;p&gt;Upload the IPA.&lt;br&gt;
Share a link.&lt;br&gt;
Done.&lt;/p&gt;

&lt;p&gt;But they rarely answer the question developers actually care about:&lt;br&gt;
Will this build install on the tester’s device?&lt;/p&gt;

&lt;p&gt;So when something breaks, the developer becomes a detective.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;h3&gt;
  
  
  After Hitting This Problem Too Many Times…
&lt;/h3&gt;

&lt;p&gt;I started thinking:&lt;/p&gt;

&lt;p&gt;Why are we discovering installation failures after download?&lt;br&gt;
Why not detect the problem before installation even begins?&lt;/p&gt;

&lt;p&gt;So I started experimenting with parsing mobile build files.&lt;br&gt;
Extracting things like:&lt;br&gt;
    • bundle identifiers&lt;br&gt;
    • version numbers&lt;br&gt;
    • provisioning profiles&lt;br&gt;
    • minimum OS requirements&lt;/p&gt;

&lt;p&gt;And checking those constraints against the device attempting the install.&lt;/p&gt;

&lt;p&gt;That idea eventually became a small project I built called Relio.&lt;br&gt;
Instead of just hosting builds, it tries to answer one question:&lt;/p&gt;

&lt;p&gt;Will this build install?&lt;/p&gt;

&lt;p&gt;Before the tester even downloads it.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;h3&gt;
  
  
  What This Project Taught Me
&lt;/h3&gt;

&lt;p&gt;Building this made me realize something interesting.&lt;br&gt;
Mobile developers no longer struggle to write apps.&lt;/p&gt;

&lt;p&gt;We struggle with the infrastructure around the app:&lt;br&gt;
    • distribution&lt;br&gt;
    • device management&lt;br&gt;
    • provisioning&lt;br&gt;
    • testing workflows&lt;/p&gt;

&lt;p&gt;These parts of the ecosystem are still surprisingly manual.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;h3&gt;
  
  
  Curious How Other Teams Handle This
&lt;/h3&gt;

&lt;p&gt;Right now, I’m talking to other mobile teams to understand how they deal with build distribution.&lt;/p&gt;

&lt;p&gt;Some use internal tools.&lt;br&gt;
Some rely on TestFlight.&lt;br&gt;
Some still manually collect UDIDs and share builds.&lt;/p&gt;

&lt;p&gt;So I’m curious:&lt;br&gt;
How does your team distribute test builds today?&lt;/p&gt;

&lt;p&gt;And more importantly:&lt;br&gt;
What’s the most frustrating part of that process?&lt;/p&gt;

&lt;p&gt;Would love to hear how others are solving this problem.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>ios</category>
      <category>android</category>
      <category>devtools</category>
    </item>
  </channel>
</rss>
