Search code examples
iosreact-nativebuilditunesexpo

Expo application IPA not working on my iphone


I created an application in React Native with Expo and I want to generate APK and IPA files.

So I used:

exp build:android
exp build:ios

I had no problem with the APK file and it works very well on my Android. Unfortunately, I have a little more problems with iOS. Indeed, I want my IPA file to be accessible through a URL. For that I made an app.plist file which is structured like this :

<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
  <dict>
   <key>items</key>
    <array>
     <dict>
       <key>assets</key>
       <array>
         <dict>
           <key>kind</key>
           <string>software-package</string>
           <key>url</key>
           <string>https://url/file.ipa</string>
         </dict>
       </array>
       <key>metadata</key>
        <dict>
          <key>bundle-identifier</key>                                    
            <string>BUNDLE_ID</string>
            <key>bundle-version</key>
            <string>4.0</string>
            <key>kind</key>
            <string>software</string>
            <key>subtitle</key>
            <string>41A472</string>
            <key>title</key>
            <string>APP_NAME</string>
           </dict>
         </dict>
       </array>
    </dict>
   </plist>

But when I try to install the application through the url (itms-services://?action=download-manifest&url=https://url/app.plist), the installation stucks and tells me to try again later. I also tried to install the application with iTunes and I have the same problem. I think the problem is that Expo build the app for the AppStore and I wanted to know if there was not a solution for my method to work...

I specify that I work on WIndows and Linux, but do not hesitate if you have a solution on MacOS.


Solution

  • I've faced the same problem before. Basically, there's only one official way to test a standalone app on your iOS device, and that's via TestFlight (I know, it's not great). You can refer to this page for more details. I found several online services for installing IPAs without AppStore, but they all looked shady to me, so I didn't risk using them.

    Also, you probably already know it, but you don't need to build an IPA to test your app on a real device. You can do it with the Expo app on your smartphone and Expo CLI tools on your computer by running exp start in the root of your app project.