170

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

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

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

ちなみにXcode4.0を使っています。

4

5 に答える 5

251

OK、自分の質問に答えます。これは、XCode 4 の依存プロジェクトの問題であることが判明しました。この問題が発生した場合は、すべての依存プロジェクト (静的ライブラリなど) のビルド設定を確認し、[Deployment] の下の [Skip Install] オプションが設定されていることを確認してください。はいに。

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

于 2011-03-05T20:40:31.220 に答える
151

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

  1. Jared が発見したように、Build Settings の下で、「Skip Install」を「Yes」に設定します。
  2. Build Phases の下で、Copy Headers セクションを調べます。プライベートまたはパブリックとしてリストされているヘッダー ファイルがある場合は、それらをプロジェクト セクションにドラッグします。
于 2011-03-15T21:59:32.367 に答える
10

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

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

それだけでした!

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

  1. アーカイブを選択し、[配布] ボタンをクリックします。
  2. 「ビルド済み製品の保存」オプションを選択します。
  3. [次へ] をクリックして [保存] をクリックします。
  4. 作成したディレクトリを Finder で参照します。
  5. 「libraries」サブディレクトリは、Skip Install を Yes に設定するために必要なライブラリを識別します。
  6. 場合によってusr/local/includeは、Public から Project に移動する必要がある犯人のヘッダー ファイル、または絶対パスから製品ディレクトリに変更する必要があるファイルを特定します。ただし、そのディレクトリ (つまり、usr/local/include) は、サブライブラリのディレクトリ構造によって異なります
于 2013-02-27T19:09:23.287 に答える
1

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

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

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

于 2013-02-22T15:39:36.680 に答える
0

「[projectname] には単一バンドル アプリケーションが含まれていないか、複数の製品が含まれています。別のアーカイブを選択するか、スキームを調整して単一バンドル アプリケーションを作成してください」という同じ問題もありました。xcode5にアップグレードした後。

問題は、「リリース」のビルド設定の一連のフィールドが空白だったことです。xcode4 は自動的にデバッグ設定に切り替わったと思います。

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

于 2014-01-08T03:54:19.803 に答える