Search code examples
deploymentios8code-signingenterprise

Code-signed IPA runs on iOS7 but not on iOS8


I have a version of an app that runs on iOS8 and iOS7 and I want to codesign it for Enterprise deployment. When I do this, it runs successfully on iOS7 but on iOS8 when tapping on the app it hangs on installing with just a grey icon.

One thing I've noticed is that the latest unzipped Payload from the vendor does not include a ResourceRules.plist file, wondering if that may be the issue?

I've tried code signing without a ResourceRules.plist, using an old (possibly inaccurate?) ResourceRules.plist, and using a different provisioning profile and certificate. Got the same behavior as above every time.

What else should I check to try to resolve this? Thanks

EDIT: I'm getting the following in debug while doing the install (identifier/app names changed to aaa, bbb and ccc for privacy reason):

Jan 14 11:06:09 Brads-AIR atc[31] : 0x101f7c000 __MobileInstallationInstallForLaunchServices_block_invoke240: Returned error Error Domain=MIInstallerErrorDomain Code=37 "Appex bundle at "/private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.FYHYX8/extracted/Payload/CCC.app/PlugIns/Photo.appex" with identifier "com.aaa.AAA" does not have expected identifier prefix "com.bbb.BBB"" UserInfo=0x12ff52da0


Solution

  • OK I figured this out. Problem was that the plug-in nested within the app bundle also needed code-signing first (remove its _CodeSignature, change bundle identifier in its Info.plist, replace its embedded.mobileprovison, codesign it separately), just as though it were an app within an app that needed configuring first.