web-dev-qa-db-ja.com

Xcodeでプロジェクトをアーカイブすると、誤ってマルチアプリケーションバンドルが作成される

私のプロジェクトをXcodeでアーカイブすることは、メインターゲットをリリース用にバンドルするのではなく、マルチアプリケーションバンドルを作成することです。具体的には、オーガナイザーでアーカイブを検証すると、次のメッセージが表示されます。

「[プロジェクト名]には単一バンドルアプリケーションが含まれていないか、複数の製品が含まれています。別のアーカイブを選択するか、スキームを調整して単一バンドルアプリケーションを作成してください。」

スキームに調整が必要な設定があるように聞こえますが、他のターゲットが含まれている原因はわかりません。

ちなみにXcode 4.0を使用しています。

169
Jared Friedman

OK、私自身の質問に答えます。 XCode 4の依存プロジェクトの問題であることがわかります。これが発生した場合は、すべての依存プロジェクト(静的ライブラリなど)のビルド設定を確認し、[展開]の[インストールをスキップ]オプションが設定されていることを確認してくださいはいに。

詳細はこちら: http://flakasoft.com/developer-tips/xcode-4-bug-solution-for-archiving-build-with-static-library/

250
Jared Friedman

この問題を解決するには、サブプロジェクトで次の2つの問題を修正する必要がありました。

  1. Jaredが発見したように、[ビルド設定]で[インストールをスキップ]を[はい]に設定します
  2. [ビルドフェーズ]で、[ヘッダーのコピー]セクションを調べます。プライベートまたはパブリックとしてリストされているヘッダーファイルがある場合は、それらをプロジェクトセクションにドラッグします。
151
Ryan Grimm

私はそれを私のために機能させるために次のことをしました:

  1. three20静的ライブラリでは、メインプロジェクトにファイルを含めるために cocoapods を使用しました。320が私に与えていたすべての問題を取り除きました(そして、それらはたくさんあります)。 three20 with Nimbus ..しかし、Nimbusは私のプロジェクトがthree20を使用していた機能のいくつかに欠けていたため、Nimbusは役に立たなかった。
  2. 他のすべてのサブプロジェクト/静的ライブラリのビルド設定でインストールをスキップするをyesに設定し、ビルド段階でコピーヘッダーをパブリックからプロジェクトに切り替えました
  3. 最も重要なのは:サブライブラリ..ビルド段階で、copy filesdestinationがAbsolute pathから変更されたことを確認したproducts directoryに。

そしてそれはそれでした!

ヒント:ipaではなく、アーカイブがアーカイブファイルを作成する原因となっている問題のあるファイルのアイデアを取得します。

  1. アーカイブを選択して、[配布]ボタンをクリックします。
  2. [ビルド製品を保存]オプションを選択します。
  3. [次へ]をクリックして保存します。
  4. Finderで作成したディレクトリを参照します。
  5. 「ライブラリ」サブディレクトリは、インストールのスキップを「はい」に設定する必要があるライブラリを識別します。
  6. 場合によってはusr/local/includeは、パブリックからプロジェクトに移動する必要がある犯人ヘッダーファイル、または絶対パスから製品ディレクトリに変更する必要があるファイルを識別します。ただし、そのディレクトリ(つまりusr/local/include)は、サブライブラリのディレクトリ構造によって異なります
10
abbood

忘れてしまったコピーファイルのビルドフェーズがありました(いくつかのフォントを〜/ Library/Fontsにコピーしました)。このビルドフェーズを削除した後、正常に機能しました。

上記の回答で問題が解決しない場合は、アーカイブをFinderにエクスポートし、.appバンドルの外にあるものを確認することをお勧めします。

編集: https://github.com/RestKit/RestKit/wiki/Xcode-4-Archiving-Issue:--'Does-not-contain-a-single-bundle ' を参照

1
auco

「[プロジェクト名]には単一バンドルアプリケーションが含まれていないか、複数の製品が含まれています。別のアーカイブを選択するか、スキームを調整して単一バンドルアプリケーションを作成してください。」 xcode5にアップグレードした後。

問題は、「リリース」のビルド設定のフィールドが空白であるということでした。 xcode4は自動的にデバッグ設定に切り替えられたと思います。

anwyays-私が修正したのは、空の「リリース」設定をすべて見つけて、デバッグ設定に設定することでした。特に、Info.plistファイルの設定でした。

0
roocell