0
votes

After upgrading to Xcode 6.3, my existing swift-based Xcode project no longer can create a valid iOS application archive from the command-line or IDE, so I can't submit it to the app store or distribute it.

The command-line build error is as follows:

Project name does not contain a single–bundle application or contains multiple products. Please select another archive, or adjust your scheme to create a single–bundle application.

It seems only one other person has run into this on SO ("After upgrading to Xcode 6.3, newly built iOS app archives can't be submitted") -- but the extensive workarounds suggested in the linked question haven't worked. My build settings have not changed from my 6.2 -> 6.3 project and they appear to be correct. I can still generate a valid archive in Xcode 6.2

Has anyone else experienced Xcode 6.3 generating invalid application archives, or know of any workarounds?

The contents of the bad archive

The archive artifact that xcode generates (in both debug and release mode) is clearly invalid. The info.plist inside the archive is missing critical information and there is no SwiftSupport directory in the root of the archive (unless this changed in XCode 6.3):

<?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>ArchiveVersion</key>
    <integer>2</integer>
    <key>CreationDate</key>
    <date>2015-04-16T19:27:31Z</date>
    <key>Name</key>
    <string>AppName</string>
    <key>SchemeName</key>
    <string>AppName</string>
</dict>
</plist>

Other potentially interesting stuff

  • Project is about 80% swift.
  • There's a single application extension.
1
Try filing a radar and then posting the number on the developer forums instead of SO, since Apple engineers may see your question.Andrew Pouliot
Unfortunately, still exists on 6.3.1. I've followed up with Apple Support.smithclay

1 Answers

3
votes

It seems like this was a regression in Xcode 6.3 -- my Xcode 6.2 INSTALL_PATH wasn't working with 6.3 swift projects.

Updating the project.pbxproj file did the trick (for both debug and release mode):

INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)";

to

INSTALL_PATH = /Applications;