1

I've just bought the iPhone enterprise program. My understanding is:

  1. Create a Prod cert
  2. Create a new App id
  3. Create a Prod prov profile using that app id (2) and that prod cert (1).
  4. Create the app, archive it using the prov profile (3)
  5. Create a plist file in DB (or other https server) for distributing the app OTA, like we did with ad-hoc ipa files.
  6. Upload the IPA file somewhere and the plist file (5) will point with it.
  7. Enjoy the app in all the devices I want

I followed these steps and I cannot install the app. Always get an error message. Do I need to add manually all the UDIDs first and assign them to the Prov Profile of 3)?

The error log in my device is something like this:

Jun 23 13:03:53 MyIpad installd[34] <Error>: 0x485000 +[MIInstallable installablesAtURL:packageFormat:userOptions:error:]: 52: Failed to inspect package at file:///private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.QICyA0/extracted (Error Domain=NSPOSIXErrorDomain Code=2 "_IterateDirectory for file:///private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.QICyA0/extracted/Payload returned No such file or directory" UserInfo=0x165b5630 {FunctionName=-[MIFileManager urlsForItemsInDirectoryAtURL:error:], SourceFileLine=413, NSLocalizedDescription=_IterateDirectory for file:///private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.QICyA0/extracted/Payload returned No such file or directory})
Jun 23 13:03:53 MyIpad itunesstored[77] <Error>: 0x481000 __MobileInstallationInstallForLaunchServices_block_invoke240: Returned error Error Domain=MIInstallerErrorDomain Code=6 "Failed to inspect package at file:///private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.QICyA0/extracted" UserInfo=0x14768e20 {LegacyErrorString=PackageInspectionFailed, FunctionName=+[MIInstallable installablesAtURL:packageFormat:userOptions:error:], NSLocalizedDescription=Failed to inspect package at file:///private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.QICyA0/extracted, SourceFileLine=52, NSUnderlyingError=0x14620a40 "_IterateDirectory for file:///private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.QICyA0/extracted/Payload returned No such file or directory"}
Jun 23 13:03:53 MyIpad itunesstored[77] <Warning>: ERROR: MobileInstallationInstallForLaunchServices returned nil
Jun 23 13:03:53 MyIpad lsd[70] <Warning>: LaunchServices: installation failed for app com.mybundle.xxx
nano
  • 2,511
  • 4
  • 25
  • 42
  • Yes you have to add manually all the UDID first and then edit your provisioning profile and select all device. – Kishore Suthar Jun 23 '15 at 11:18
  • There is no way to deliver one IPA without knowing the UDIDs? Take a look here: http://stackoverflow.com/questions/8830194/can-i-distribute-my-app-for-any-device-without-udid – nano Jun 23 '15 at 11:19
  • 1
    suthar is wrong, you don't have to add UDIDs (since you are using enterprise account) – Nils Ziehn Jun 23 '15 at 11:22
  • When do you get that error? – Nils Ziehn Jun 23 '15 at 11:23
  • Sorry for that i don't have idea about enterprise account. – Kishore Suthar Jun 23 '15 at 11:23
  • I open the plist file with safari (I did that many times with AdHoc apps). It starts loading... then installing... finally... "Unable to Download App. MyApp could not be installed at this time" Do I need any special entitlements file? – nano Jun 23 '15 at 11:25
  • Do I have to explicitily install the InHouse Provisioning Profile (point #3) in each device before installing the app, or is it kind of embedded in the IPA? – nano Jun 23 '15 at 11:33
  • I'm voting to close this question as off-topic because it's not about programming. – Droppy Jun 23 '15 at 11:49
  • @Droppy: Please don't close this question. It may not be about programming, but creating In-House apps is a pain (I've been through it myself) and StackOverflow is often a developer's best hope at finding solutions to the many problems it throws up. – Mike Gledhill Jun 23 '15 at 12:49
  • Agreed with Mike. Distribution is the last step of programming. – nano Jun 23 '15 at 12:52
  • Btw, I would like to post an Answer to this question, but am loathed to. It will take me over an hour to describe the steps required and (more importantly) how to interpret the hopelessly-unuseful and downright *misleading* error messages which Xcode/iOS throws at you if you get any of the steps wrong. – Mike Gledhill Jun 23 '15 at 13:02
  • @nano No, in iTunes Connect terms distribution is the task of the Admin role, not the developer. This question belongs on the Apple Developer Forums. – Droppy Jun 23 '15 at 13:13

1 Answers1

0

I initially thought my problem was related with the OTA process... but I tried to just move the IPA file to iTunes and sync with one of my devices.

Surprise: "The app xxx.ipa could not be added to your iTunes library because it is not a valid app."

The problem was related with the app itself or the signing, not with OTA. I decided then to recreate the prov profile again, even the app id. No luck.

After investigating I discovered that

Application requires iPhone environment:NO

can cause this problem... I had moved it to NO because my app is just for iPads. Silly me!

Moved this to YES again and bingo... Installed also throught OTA.

nano
  • 2,511
  • 4
  • 25
  • 42