Enable compatability with iPhone 5 in a new iPhone app

Hi


We are having difficulties in specifying our app to be compatible with iPhone 5 (and 5c) and up. Currently in the appstore the compatability specifies that our app can only run on iPhone 5s and up. We need to enable iPhone 5 and 5c support as well. It runs fine when we try it out in the device simulators via Xcode, but as soon as we upload it to Appstore, it isn't shown as being compatible...


What specifications do we need to set in the Info.plist?

Our Info.plist is as follows:


<dict>
  <key>CFBundleDevelopmentRegion</key>
  <string>en</string>
  <key>CFBundleDisplayName</key>
  <string>SwanData</string>
  <key>CFBundleExecutable</key>
  <string>$(EXECUTABLE_NAME)</string>
  <key>CFBundleIcons</key>
  <dict/>
  <key>CFBundleIcons~ipad</key>
  <dict/>
  <key>CFBundleIdentifier</key>
  <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
  <key>CFBundleInfoDictionaryVersion</key>
  <string>6.0</string>
  <key>CFBundleName</key>
  <string>$(PRODUCT)</string>
  <key>CFBundlePackageType</key>
  <string>APPL</string>
  <key>CFBundleShortVersionString</key>
  <string>1.2.2</string>
  <key>CFBundleSignature</key>
  <string>????</string>
  <key>CFBundleVersion</key>
  <string>4</string>
  <key>LSRequiresIPhoneOS</key>
  <true/>
  <key>UIBackgroundModes</key>
  <array>
  <string>audio</string>
  </array>
  <key>UIFileSharingEnabled</key>
  <true/>
  <key>UILaunchStoryboardName</key>
  <string>LaunchScreen</string>
  <key>UIMainStoryboardFile</key>
  <string>Main</string>
  <key>UIRequiredDeviceCapabilities</key>
  <array>
  <string>armv7</string>
  </array>
  <key>UIStatusBarHidden</key>
  <true/>
  <key>UIStatusBarStyle</key>
  <string>UIStatusBarStyleDefault</string>
  <key>UISupportedInterfaceOrientations</key>
  <array>
  <string>UIInterfaceOrientationPortrait</string>
  </array>
</dict>
</plist>


Deployment target is set to iOS 8.0 and we build with latest iOS 9.2 with Xcode 7.2


Do we need to lower the deployment target, or change the required device capability to armv6?

We just added the right AppIcons and LaunchImages under BrandAssets for being compatible with iOS8, 7, and 6 and prior on iPhone... maybe that will fix it? We were missing iOS 6 versions...


We don't want to experiment with the plist or other build specs and upload every time in order to check the device compatability. Isn't there an easier way to check out device compatability without uploading it to appstore every time?

Thanks for the help!

Answered by joningib in 103022022

I managed to solve this.

  • We removed the required architecture from the info
  • Build settings:
    • Architectures: armv7, arm64
    • valid architetures set to: armv7, armv7s, arm64
    • build active architecture only: no

Now the application shows compatability with all iPhones running iOS8+ (that's our deployment target).

Did you add an iPhone 5 launchImage?

Can't say for sure what the answer is but I do know whatever they've changed on the back end has tripped up some high profile apps. The CBC News app for example got a boat load of one star reviews here in Canada because their latest update couldn't install on such devices.


Wouldn't it be nice if some Apple folks who knew what was going on could chime in and tell us specifically what has changed, what caused problems for existing apps, and how to avoid it. If only we had the technology. There I go, dreaming again.

Watch for refunds...

DId you build your app for all architectures, or only for arm64? The iPhone 5 has a 32-bit CPU. You can check which architectures are in your archived/submitted binary using the lipo command in the Terminal app.

Our build settings specify:
"Architectures" is set to "Standard architectures (armv7, arm64)
"Valid Architectures" is set to "arm64 armv7 armv7s"


Can't get lipo -info to read out the information from the archive file itself... it says can't map input file.

Is it really this tricky to enable iPhone 5 support? 😐

Accepted Answer

I managed to solve this.

  • We removed the required architecture from the info
  • Build settings:
    • Architectures: armv7, arm64
    • valid architetures set to: armv7, armv7s, arm64
    • build active architecture only: no

Now the application shows compatability with all iPhones running iOS8+ (that's our deployment target).

Thanks for your answer.

May I know about active architecture only in build setting is both NO for debug and release?

Enable compatability with iPhone 5 in a new iPhone app
 
 
Q