web-dev-qa-db-ja.com

Xcode 4:ビルドに失敗、問題なし

アプリはシミュレータで正常に動作し、ビルドおよび実行されます。

デバイス(iOS 4.3を実行しているiPhone 3GS)を接続してiPhoneをターゲットにすると、「ビルドに失敗しました」と「問題なし」が表示されます。

ビルド結果ウィンドウを見ると、すべてが緑色で、チェックマークが付いていますビルド失敗の通知を含む

トランスクリプトを展開してもエラーは表示されません。

署名エラーまたはプロビジョニングエラーの可能性を排除することはできませんが、それらのエラーが発生したため、それらを解決し、エラーや問題は発生しません。

  • 問題なくビルドはどのように失敗しますか?
  • ビルド出力を見て、問題なく失敗する理由を見つけることができるかどうかを確認する方法はありますか?
  • 問題リストを超えて作成されたビルド出力はありますか?
  • アプリをデバイスにロードしようとするビルドウィンドウには表示されません-この出力は他の場所にありますか?
89
Adam Davis

地元のCocoa Headsメーリングリストの1つで、小さなデフォルトのサンプルプロジェクトを試してみることをお勧めしました。最初の段階で、プロビジョニングと署名が機能することを確認する必要がありました。問題なくデバイス上でビルドおよび実行されたため、すべての兆候はコードまたはプロジェクトの問題を示しています。

既存のプロジェクトから新しいサンプルプロジェクトに物事を投入し、同様の方法で失敗した場合は、問題をより小さな関心領域に絞り込むことができるはずです。


アプリの主な機能を新しいプロジェクトに追加しましたが、正常に動作しています。今回私が別のやり方でした唯一のことは、ユニバーサルバイナリを設定せず(現在iPhoneのみ)、ポートレート方向以外のすべてをオフにしたことです。私が知る限り、他のすべては同じであると言えますが、後で詳しく調べることにした場合は、プロジェクトファイルを比較し、他に何が異なるのかを確認します。

だから私にとっての解決策は、新しいプロジェクトを開始し、すべての機能を古いプロジェクトから新しいプロジェクトに移植することでした。

ポールが別の答えで示唆しているように、ターゲットを再作成することでもそれを修正できるかもしれませんが、このような単純なプロジェクトをゼロから再起動することは私にとって簡単でした。

13
Adam Davis

Issueナビゲーターにエラーなしで「Build Failed」が表示されました(警告のみ)。ただし、レポートナビゲーターはエラーを正しく表示しました。

75
Mercurial

バンドル識別子に「アンダースコア」や「スペース」などを使用していますか?

インポートのいずれかで.hではなく.mを使用していますか? #import "Photo.h"

33
user674180

私が最初に試みることは、すべてをきれいにし(メニューProduct/Clean)、もう一度ビルドすることです。すでに試したことがあるかもしれません。

Log Navigatorで完全なビルド出力を見つけることができます(ビルド中に見ることができます)。これは、[実行]ボタンと[ビルド]ボタンのすぐ下にある小さなアイコンの一番右のアイコンです。

ビルド(およびデバッグ)ログファイルは、ディレクトリ/ Users/you/Library/Developer/XCode/DerviedData/YourProject-abcdefg/Logs/Build(および../Debug)にあります。

デバイスへのアプリのインストールに関する出力はないと思います。

21
Codo

ターゲットの製品名にスペースがありますか?

Xcodeの以前のバージョンではこれは問題ではなかったことは知っていますが、Xcode 4で何かを壊してしまったので、それはもう機能しないようです(DerivedDataパスのナンセンスと関係があると思います)。 Info.plistCFBundleDisplayNameキーを${PRODUCT_NAME}以外に設定することにより、iDeviceのLaunchpadに表示されるアプリの名前にスペースを追加できます。

19
damian

ワークスペース内に複数のプロジェクトを追加して遊んでいたところ、この問題が発生しました。プロジェクトの1つに単純なライブラリがあり、ビルドしていたので、iOSウィンドウベースのターゲットを追加してテストしました。名前を変更するためにこのために作成した最初のターゲットを削除しました。これを読んだ後、。xcodeprojパッケージ内からxcuserdataを削除するを試してみたところ、問題が解決しました。これが他の人の助けになることを願っています。 OS X 10.7.1でXcode 4.1を実行します。

7
Andrew

私は同じ問題を抱えており、他の誰かがそれがバンドル識別子に関係していると示唆したように。私は最近、テストとして変更し、それにアスタリスクを入れました。私はそれを修正し、ターゲットをきれいにしなければならなかった、そしてそれはうまくいった。

7
Cortis

これらすべての答えを調べた後、私はまったく同じ問題を抱えていましたが、別の何かが私のためにそれを解決しました。

問題:

リファクタリング後、ビルドは問題なく失敗しました。 (編集->リファクタリング->名前変更を使用してクラスの名前を変更しました)。

Dumbestこれまでのソリューション:

リファクタリング(名前変更)を行ってください(-_- ")。その後、Xcodeはすべての適切なファイルの名前を変更できず、エラーを表示しなかったというエラーが発生しました。 。

7
Mazyod

これは、未使用のターゲットを削除した後に起こりました。 Xcodeは残りのターゲットのCFBundleIdentifier(com.company.etc)にスペースを入れているようです。 Info.plistを外部のテキストエディタで編集して削除する必要がありましたが、その後正常に機能しました。

7
AbePralle

バンドルIDを変更してプロジェクトをクリーンにしたが、それも機能しなかった場合は、/ Users/YOUR_USERNAME/Library/Developer/Xcode/DerivedDataディレクトリを空にしてみてください。

わたしにはできる。

6
Kenial

上記の解決策はうまくいきません。

私の解決策は、プロジェクトを別のフォルダーに移動することです。

ビルドエラーは、通常どおり表示されます。

6
Hai Feng Kao

私にとっては、Issue Navigatorにエラーを表示せずにビルドが失敗しました。ただし、Log Navigatorのビルドセッションでは、エラーが表示されることがありました。私の場合、エラーは宣言されていない定数でした。必要なヘッダーファイルをインポートし、問題は解決しました。このエラーがIssue Navigatorに表示されなかった理由はわかりません。

別の変数の名前を意図的に変更して、この動作を再現しようとしました。今回は、エラーがIssue Navigatorに表示されました。したがって、以前のエラーがIssue Navigatorに表示されない理由はまだわかりません。

お役に立てれば。

6
Sreejit

同じ問題がありました。私はそれを修正しようとしてxcodeがクラッシュしました。私はそれを再開し、それはうまく機能しました。たぶん私は幸運だったのでしょうか?いずれにせよ、今機能している限り、何が悪いのかは気にしません

6
Porter

ビルドフォルダーを削除しましたか? [製品]メニューに移動し、Optionキーを押しながら、[ビルドフォルダーのクリーン…]を選択します。

4
Jon Reid

私は問題が何であるかを知っています:Info.plist-> Bundle Identifier: '_'を使用することはできません。たとえば、com.mycompany.My_appは無効ですが、com.mycompany.My-appはOKです。

4
Rubycon

Xcode 4で既存のプロジェクトをコンパイルしようとしてもまったく同じ問題があり、プロジェクトを再作成するという苦労をほとんど経験しました。

ただし、最後の溝で、info.plistファイルを、「ドキュメントタイプ」、「URLタイプ」、「エクスポートされたタイプUTI」、および「インポートされたタイプUTI」の追加タグを含む新しく作成したファイルに置き換えました。

これはうまくいくようで、私のプロジェクトにとって驚くほど簡単な修正でした。

3
user696455

ここでは、デバイス用にビルドするときの同じ問題。ビルドは失敗しましたが、ログはすべて緑色のチェックマークです。ビルドフォルダーをクリーニング/削除しても修正されません。誰かがターゲットを削除して再作成することでこの問題を解決したことを他の場所で読みましたが、XCode 4ではまだその方法を完全に理解していません。


私の一時的な解決策は、XCode 3.2.6 w/iOS 4.3をダウンロードしてインストールすることです。 AppleはiOS 4.3を含むXCode 3のバージョンもリリースしており、XCode 4へのアップグレードを延期できるようになったことに気付きませんでした。私はApple Build Failedの問題について。


appleからの更新:

このプロジェクトをビルドすると(Xcode 4.0以降のバージョンではありますが)、ビルドログのProcessProductPackagingステップに次のように表示されます。

(null):エラー:CFBundleIdentifier 'com.yourcompany.Magic_Carpet'に不正な文字 '_'が含まれています無効なバンドル識別子 'com.yourcompany.Magic_Carpet'

ProcessProductPackagingコードはかなり最近オーバーホールされたため、Xcode 4.0ではエラーが適切に出力されていなかったと思われます。独自のビルドのトランスクリプトを見てください。そうであれば、Xcodeの今後のリリースで修正される可能性があります(修正がリリースされるまでコメントできません)。

アンダースコアからダッシュに切り替えて、問題を修正しました。

3
Paul Slocum

私もこの問題を抱えていましたが、原因は別のものでした:

プロジェクトが1つあるワークスペースがあります。このプロジェクトでは、Xcodeプロジェクトをプロジェクトに追加することで含まれるフレームワークを使用します。フレームワークのヘッダーファイルをプレフィックスヘッダー(.pch)にインポートしました。これは愚かだった。

解決策は、プレフィックスヘッダーファイルからフレームワークヘッダーファイルの#importを削除し、必要な場所にのみ追加することでした。

3
CodeStage

UnitTestターゲットでこれが起こりました。作動してから停止しました。ファイルシステム上の.h/.mを削除しただけで、プロジェクトファイルから削除しなかったことを忘れていましたが、XCodeはそれを報告しませんでした。

コマンドラインでプロジェクトを実行することで、エラーを教えてくれました。

/usr/bin/xcodebuild -target "UnitTest"

プロジェクトファイルがあるフォルダーでこれを実行し、UnitTestをターゲットに置き換えます。または、ターゲットを渡さないでデフォルトのターゲットをビルドします。

3
bandejapaisa

xcschemesのプロジェクトスキーマのすべてのスペースをクリアすると、この問題は解決します。 F *** ing Apple :( AppCode ROCKS!

2
Bimawa

この問題には多くの原因が考えられます。私のものはそれであることが判明しました

ターゲットが存在しないプロビジョニングプロファイルを使用するように設定されました。

新しいプロファイルを使用するようにプロジェクトを設定し、古いプロファイルを削除しました。ターゲットに独自のプロビジョニングプロファイル設定があり、それがまだ古い(現在削除されている)プロファイルに設定されていることに気づきませんでした。

2
CharlieMezak

同じことが、別の原因で私に起こりました。

Entitlements.plistファイルからget-task-allowを削除し、空のplistを残しました。ビルド設定には、Entitlements.plistファイルがまだEntitlementsファイルとして指定されていました。 iPhoneを接続したiOSデバイスでAd-Hocビルド設定を使用して実行することを選択し、このバグで説明されている動作を確認しました。 get-task-allow backを追加すると修正されました。

2
Colin

上記のすべてを成功させずに別の答えを追加するだけです。XCodeを閉じるだけでなく、MacBookを再起動する必要がありました。その結果、XCodeはLocalizable.stringsに以前は表示されなかったいくつかのエラーを表示しました。

役立つことを願っています

2
sonxurxo

参照: http://developer.Apple.com/library/ios/#DOCUMENTATION/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html

UTI文字セットユニフォームタイプ識別子は、通常ASCII文字セットの文字を含むUnicode文字列です。ただし、ASCII文字のサブセットのみが大文字と小文字のローマ字(A〜Z、a〜z)、0〜9の数字、ドット(「。」)、およびハイフン(「-」)を使用できます。 RFC 1035で規定されているDNS名の制限について。

ユニフォームタイプ識別子には、U + 007Fより大きいUnicode文字を含めることもできます。

重要:UTI文字列に含まれる不正な文字(アンダースコア( "_")、コロン( ":")、スペース( "")など)は、無効なUTIとして文字列を拒否します。 APIレイヤーでは、無効なUTIに対してエラーは生成されません。

1
sfjava

Mac OS Xアプリケーションをプログラミングしていましたcodesigningなし「資格」セクションでサンドボックスを有効にし、コード署名が自動的にオンになったの場合、新しいビルドを作成できませんでした。

XCode4.5でも同様の問題に直面し、アプリケーションの作業中にXCodeが突然クラッシュしました。

何時間も検索した後、xcodeがクラッシュしたときにアプリケーション内のファイルの1つが削除されていることがわかりました。

ゴミ箱からファイルを復元し、問題が解決しました。

1
niks

私の場合、理由は私のローカライズされた文字列;最後に:したがって、"You’ve already passed the test" = "Тест по этому слову уже пройден" なしで ;は、最終的には問題なくビルドに失敗します。

1
Nikita Pestrov

名前のスペースを確認してください。ターゲットの名前だけでなく、スキーマも構築します。私にとっては、スペースを削除することでうまくいきました。

1

同様の問題が発生しました。どこにもエラーが見つかりませんでした。すべてのプロビジョニングプロファイルを削除し、新しいプロファイルを追加しました。

次に、デバイスに別のテストアプリをビルドしようとしましたが、次のエラーメッセージが表示されました。

コード署名エラー:証明書ID「iPhone開発者:xxxxxx」がキーチェーンに複数回表示されます。コード署名ツールでは1つのみが必要です。

だから私はキーチェーンに入り、同じ名前の期限切れの証明書をいくつか見つけて、それらを削除しました。それでうまくいきました。

かなりランダムですが、おそらく私がやったようにデバイスに別のアプリを構築しようとすると、問題を診断するのに役立つように、私がしたようにエラーメッセージを取得するのに十分幸運かもしれません。

1
mestevie

バンドルの名前に問題はなかったので、提案された解決策はうまくいきませんでした。最後に、ビルド用にコード署名を設定しないで、プロジェクトを閉じ、オーガナイザーでプロビジョニングを削除し、新しいプロビジョニングをダウンロードしてオーガナイザーに追加し、ビルド用に設定しました。出来た。

1
Engeor

これは技術的な答えではなく、おそらくあなたの状況には当てはまらない「ユーザーエラー」の答えです。それは私に起こり、私の検索は私がこの間違いに気付くまでこのQ&Aを無駄に導きました。 Issue Navigatorには、問題として報告されているものと一致しないフィルターセットがありました。フィルターをクリアすると、問題が表示されました。

症状はあなたが尋ねていたものと同じであり、短いリストでフィルタリングを必要としないため、そのフィルターを設定するタイミングがわかりません(他のナビゲーションビューから継承する必要があります)。

1
mobibob

Xcodeのオーガナイザーに移動します。 [プロジェクト]タブで、そのプロジェクトを削除します。 xcodeで派生データを再構築して、問題を解決します。

1
AccBLue

私はこれと同様の問題があり、修正はプロジェクト名のキャメルケースの命名を削除していました。

0
ZenBalance

Xcode 6.1

私の問題は、1つの.mファイルにエラーを残した後、別の.mファイルにエラーを修正せずにXcodeを閉じることでした。 Xcodeを再度開いた後、最初の.mファイルに移動するまでエラーは表示されませんでした。その後、介入なしで表示されました。

0
VolenD

Xcodeプロジェクトにサブプロジェクトが含まれている場合は、親プロジェクトを閉じて、子Xcodeプロジェクトを直接開いてみてください。

サブプロジェクトにエラーがありましたが、サブプロジェクトのターゲットをビルドしたときに、親プロジェクトのエラーリストに表示されませんでした。しかし、単一のXcodeプロジェクトを開いて同じプロジェクトをビルドすると、エラーが表示されました。

0
pkamb

インポートされていないのファイルからマクロを使用していました。そのファイルをインポートした後問題解決

0
Zaid Pathan

私にとっては、次の行を追加した後、これが起こり始めました。「〜Documents」:Build Settings-> Header Search Paths。

削除した後、デバッガは再び動作を開始しました。

0
Eran Talmor

私の状況では、コーディングのコンパイルの問題です。しかし、XCODEはコンパイルエラーを思い出させません。

0
frank

私にとっては、JSONKit Libraryで廃止されました。非推奨のオブジェクトのisaプロパティにアクセスしていたので、代わりにobject_setClass()を使用する必要があります。

0
Lolloz89

私は、製品->分析ごとに非表示(リストされていない)の問題をチェックしました。分析が失敗した場合、すべての隠されたバグがリストされます

0
Danboz

フレームワークが不足していることがわかりました。 MFMailViewControllerを使用し、への参照を追加しました

 MessageUI/MessageUI.h

しかし、私はうっかりプロジェクトにそれを追加するのを忘れていました...あなたがプロジェクトにフレームワークを追加する方法がわからない場合:

Project Navigatorでプロジェクト名をダブルクリック->ビルドフェーズを選択-> [ライブラリとリンクバイナリ]タブを展開+および-が表示されます。フレームワークを追加するには、+を選択します。追加する名前を入力し、表示されたらそれをクリックして、[追加]をクリックします。

0
logixologist

同じ問題が発生し、プレフィックスファイルで定義されたマクロに使用されていないインクルードを追加することで修正しました。

プレフィックスファイルでこのマクロを定義しています:

#define ApplicationDelegate ((tdAppDelegate *)[UIApplication sharedApplication].delegate)

しかし、使用したファイルに「tdAppDelegate.h」ファイルを含めるのを忘れました;)

0
javikr

この投稿のすべてを試してみましたが、何も機能しませんでした。

次に行ったAppleメニュー>ソフトウェアの更新> xcodeの更新が見つかった。

まだアップデートをインストールしていませんが、このウィンドウを開いたままにしておくだけで問題が解決します(アップグレードウィンドウを閉じると問題が再発します)。

これはめったにまれではないと思いますが、うまくいけば問題を解決できる人もいます。

0

私の間違いは、main.mファイルの1行目に誤って文字を入力して、誤って保存していたことです。

誤ってmain.mファイルをFinderで開くまで、希望を失い、コードを新しいプロジェクトに移行しようとしていました。コンパイラがそのエラーを認識しなかったのは残念です。

0
acecapades