3
votes

After many hours of research, I don't know why I can't submit my application from xCode (6.1).

At the end of the submission an error is returned:

ERROR ITMS-90072: "The IPA is invalid It does not include a Payload directory."

The two responses that I've read are located in the info.plist file

Two keys must be added :

- LSRequiresIPhoneOS: YES (Boolean)

- CFBundleInfoDictionaryVersion: 6.0 (String)

The project has been cleaned.

This is the contents of my file info.plist:

  <?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>LSRequiresIPhoneOS</key>
    <true/>
    <key>CFBundleDevelopmentRegion</key>
    <string>fr_FR</string>
    <key>CFBundleExecutable</key>
    <string>$(EXECUTABLE_NAME)</string>
    <key>CFBundleIdentifier</key>
    <string>com.forprodis.$(PRODUCT_NAME:rfc1034identifier)</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>$(PRODUCT_NAME)</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>1</string>
    <key>UILaunchStoryboardName</key>
    <string>Main</string>
    <key>UIMainStoryboardFile</key>
    <string>Main</string>
    <key>UIRequiredDeviceCapabilities</key>
    <array>
        <string>armv7</string>
    </array>
    <key>UIStatusBarHidden</key>
    <true/>
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationPortraitUpsideDown</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>UIViewControllerBasedStatusBarAppearance</key>
    <false/>
</dict>
</plist>

I have generated the IPA and unzip it. The folder contains two subfolders :

- Applications

- Symbols

Only the Payload folder should appear, isn't it ? (the wrapper)

Wikipedia describes the content like this :

An IPA has a built-in structure for iTunes and AppStore to recognize, The example below shows the structure of an IPA:

/Payload/

/Payload/Application.app

/iTunesArtwork

/iTunesMetadata.plist

2
If you can get the IPA you can rename it as a zip and unzip it, this won't fix your problem but might give some more pointers to what is happening.Gary Riches

2 Answers

0
votes

I just had the very same problem. It turned out that a missing entitlement for in-app purchases was the culprit. Select your target and go to 'Capabilities'. Xcode highlighted the missing entitlement and offered to fix it. Then it finally worked.

I hope this works for you as well. I have spent the last couple of hours tearing my hair out.

0
votes

I faced the same problem on an application that I've successfully submitted many times over the past few years. To correct it, I had to edit the Info.plist file to set:

Application requires iPhone environment = YES

Mine was set to NO. This does not restrict the application from deploying to iPad or iPod.