0

I have created a .ipa file to launch on a test users device. The user tries to install the file but mid way it stops and the icon is greyed out. I get the following error report:

itunesstored[100] <Warning>: LaunchServices: installing placeholder for com.TEST.Givr
installd[63] <Notice>: 0x2d5000 handle_install_for_ls: Install of "/var/mobile/Library/Caches/com.apple.itunesstored/AppPlaceholders/-7544261549455945179.app" requested by itunesstored
installd[63] <Notice>: 0x2d5000 MobileInstallationInstall_Server: Installing app com.TEST.Givr
installd[63] <Notice>: 0x2d5000 install_application: Installing placeholder
installd[63] <Notice>: 0x2d5000 MobileInstallationInstall_Server: Staging: 0.01s; Waiting: 0.00s; Installation: 0.11s; LS Sync: 0.00s; Overall: 0.12s
itunesstored[100] <Warning>: LaunchServices: updating placeholder for com.TEST.Givr with icons
installd[63] <Notice>: 0x2d5000 handle_install_for_ls: Install of "/var/mobile/Library/Caches/com.apple.itunesstored/AppPlaceholders/-7544261549455945179.app" requested by itunesstored
installd[63] <Notice>: 0x2d5000 MobileInstallationInstall_Server: Installing app com.TEST.Givr
installd[63] <Notice>: 0x2d5000 install_application: Installing placeholder
installd[63] <Notice>: 0x2d5000 MobileInstallationInstall_Server: Staging: 0.01s; Waiting: 0.00s; Installation: 0.26s; LS Sync: 0.00s; Overall: 0.28s
lsd[77] <Error>: ImageIO: PNG invalid PNG file: iDOT doesn't point to valid IDAT chunk
lsd[77] <Error>: ImageIO: PNG invalid PNG file: iDOT doesn't point to valid IDAT chunk
itunesstored[100] <Warning>: LaunchServices: Creating installProgressForApplication:LSApplicationProxy: com.TEST.Givr (Placeholder) withPhase:0
lsd[77] <Warning>: LaunchServices: Updating installPhase for parent <NSProgress: phase=Loading; state=Waiting; fractionCompleted=0.000000> to 0
SpringBoard[34] <Warning>: Killing com.TEST.Givr for app installation
itunesstored[100] <Warning>: LaunchServices: installing app for existing placeholder LSApplicationProxy: com.TEST.Givr (Placeholder)
itunesstored[100] <Warning>: LaunchServices: Creating installProgressForApplication:LSApplicationProxy: com.TEST.Givr (Placeholder) withPhase:1
lsd[77] <Warning>: LaunchServices: Updating installPhase for parent <NSProgress: phase=Loading; state=Active; fractionCompleted=0.590000> to 1
installd[63] <Notice>: 0x2d5000 handle_install_for_ls: Install of "/var/mobile/Media/Downloads/-7544261549455945179/8380994860813698163" requested by itunesstored
installd[63] <Notice>: 0x2d5000 MobileInstallationInstall_Server: Installing app com.TEST.Givr
securityd[84] <Error>: OCSPResponse: latestNextUpdate more than 1:15 ago
installd[63] <Error>: 0x2d5000 do_preflight_verification: Incorrect architecture at /var/tmp/install_staging.uWo8Ig/foo_extracted/Payload/Givr.app
installd[63] <Error>: 0x2d5000 install_application: Could not preflight application install
itunesstored[100] <Error>: 0x341000 MobileInstallationInstallForLaunchServices: failed with -1
itunesstored[100] <Warning>: ERROR: MobileInstallationInstallForLaunchServices returned nil
lsd[77] <Warning>: LaunchServices: installation failed for app com.TEST.Givr
itunesstored[100] <Warning>: LaunchServices: installPhaseFinishedForProgress: com.TEST.Givr.Installing - <NSProgress: phase=Installing; state=Failed; fractionCompleted=0.000000> called, removing progress from cache
lsd[77] <Warning>: LaunchServices: installation failed for app com.TEST.Givr
itunesstored[100] <Warning>: LaunchServices: installPhaseFinishedForProgress: com.TEST.Givr.Loading - <NSProgress: phase=Loading; state=Failed; fractionCompleted=1.000000> called, removing progress from cache
installd[63] <Error>: 0x2d5000 handle_install_for_ls: API failed

Any idea how to fix this? I have tested the app on my phone which is an iPhone 5, it is the developer device which i use to test on and the app launches fine. However it simply wont install on the users device. I used to get warnings about permissions, which I have fixed and are no longer there.. so no clue what the issue is now.

Dhwanit Zaveri
  • 465
  • 1
  • 5
  • 15
  • What type of installation you're using (OTA,iTunes)? And what developer program do you have? – Ayu Aug 07 '14 at 13:02
  • Im using TestFlight to deploy the app. Tried it with iTunes as well. And im on the iOS developer program – Dhwanit Zaveri Aug 07 '14 at 13:03
  • Are you sure you had the user's UDID in your devices list before creating the provisioning profile was created? – Ayu Aug 07 '14 at 13:09
  • Yup, checked that quite a few times. Even asked me to select the udid and i made sure i did. I remade the distribution certificate as well, remade the ad-hoc provisioning profile as well, remade the archive as well. I don't think it is a permissions issue anymore? – Dhwanit Zaveri Aug 07 '14 at 13:10
  • It's a long shot but maybe it's a deployment target/device iOS version inconsistency ? – Ayu Aug 07 '14 at 13:12
  • This part `Incorrect architecture at /var/tmp/install_staging.uWo8Ig/foo_extracted/Payload/Givr.app` I assume is referring to that... Do you know what this is referring to: `: ImageIO: PNG invalid PNG file: iDOT doesn't point to valid IDAT chunk` – Dhwanit Zaveri Aug 07 '14 at 13:14
  • It would seem you have an invalid png file in your project. I would check all your image files and see if one is invalid. First, you need to fix the architecture problem. See my answer below. – wottle Aug 08 '14 at 00:27
  • The reason your user can't install is the architecture error. The invalid PNG is a secondary error that should not prevent the install. The PNG error could be multiple reasons: http://stackoverflow.com/questions/12007717/invalid-png-image-file-idot-doesnt-point-to-valid-idat-chunk – wottle Aug 08 '14 at 02:07

1 Answers1

1

The error here has to do with your supported architectures. The compiled IPA must be only built for certain architectures (or only a specific one), and it doesn't include the architecture of the device the tester is running on.

installd[63] <Error>: 0x2d5000 do_preflight_verification: Incorrect architecture at /var/tmp/install_staging.uWo8Ig/foo_extracted/Payload/Givr.app

Go into your projects Build Settings, in the top section for "Architectures, make sure you have the following values for "Valid Architectures":

arm64 armv7 armv7s

Also, for the build config you are using for deployment, make sure your "Build Active Architecture Only" is set to No. And for Architectures, select Standard Architectures (armv7, armv7s, arm64) See below for what it should look like:

example of architecture settings

wottle
  • 13,095
  • 4
  • 27
  • 68
  • Yup this was the issue. I thought it would have been a while back but was seriously refraining from fixing it purely because im using a framework (coreplot) that wasn't compatible with 64 bit devices... had to remove that. – Dhwanit Zaveri Aug 08 '14 at 08:09
  • You don't technically needs to build for arm64. You can take that out of the valid architectures and build, and 64 bit devices will still be able to run the app. The important one was the "Build Active Architectures Only". You should be able to leave the Valid Architectures setting to just `armv7 armv7s` and it should still work, while still allowing you to use the non-64 library. – wottle Aug 08 '14 at 12:47
  • I am having the exact same problem but the only options I have for Standard Architects are: arm64 armv7 armv7s Thoughts? – George Aug 26 '14 at 19:44
  • What are your settings for "Valid Architectures" and what settings do you have for "Build Active Architectures Only"? What version of Xcode are you running? – wottle Aug 26 '14 at 23:55