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


90

アプリはシミュレータで問題なく機能し、ビルドして実行します。

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

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

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

署名エラーまたはプロビジョニングエラーの可能性を除外することはできませんが、それらのエラーが発生したため、エラーを解決しました。今では、エラーや問題は発生せず、「ビルドは失敗しました。問題はありません」

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

これは今私に起こっています!とてもイライラ!
tallen11

1
通常、stackoverflow.com / a / 28064945/1709587には何らかのエラーメッセージが表示されると思います。これは、他の回答に含まれるさまざまな推測よりもはるかに有用であり、この状況をデバッグしようとする人にとっての出発点になるはずです。ページの上部に移動することを受け入れますか?
Mark Amery

回答:


76

課題ナビゲーターにエラーがなく(警告のみ)、「ビルド失敗」が発生しました。ただし、レポートナビゲーターはエラーを正しく表示しました。


4
これでエラーが発生しました。今、私は自分の時間を無駄にするのをやめて、実際にエラーを解決することができます:)
Daniel Ryan

私の日を救った!ありがとう
DZenBot 2016年

DerivedDataをクリーンアップし、BitCodeを無効にする必要がありました(念のため)。
DevAndArtist 2016

33

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

インポートの1つで.hの代わりに.mを使用していますか?#import "Photo.h"


1
いいえ、バンドルIDにスペースもアンダースコアも使用していません。
アダムデイビス

2
ありがとう!私にとっては、それはバンドル識別子でアンダースコアでした。
cocoapriest

ありがとう!バンドルIDが何らかの理由で空白でした。
tallen11

2
ありがとうございました。アンダースコアを削除した後、私のプロジェクトは問題なくコンパイルされました。私は盲目の怒り、安堵と感謝の奇妙な組み合わせを感じています。プロジェクト名にアンダースコアを使用するのはどのようにしたら簡単ですか?!?
ティナ

1
うわー!私もその問題がありました。アンダースコア。ダッシュに変更され、問題はありません。これは絶対にアップルです!私はiOSが大好きです。Appleがアプリをデバイスに接続してテストするために使用する複雑なプロセスを軽視します。とにかく、この修正をありがとう!
DA。

21

私が最初に試みることは、すべてをクリーニングし(メニューProduct / Clean)、それを再度ビルドすることです。あなたはすでにそれを試したかもしれません。

ログナビゲーターに完全なビルド出力が表示されます(ビルド中に監視できます)。これは、[実行]ボタンと[ビルド]ボタンのすぐ下にある小さなアイコンの中で最も右側のアイコンです。

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

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


ええ、掃除は役に立ちません。私はログナビゲーターと関連するセッションログのビルド出力を使用して調べてきました。指摘したログファイルはバイナリのように見えるので、ログナビゲーターとセッションログを介したアクセスのみが許可されているようです。
アダムデイビス

ログナビゲーターに関して、私の場合、将来のログがありました(コンピューターの日付をいくつかのテストを実行するために1日先に変更したため)。xcodeは(ビルド日付による)最新のログを使用しているようです。これを修正するために(xcode 5で)、プロジェクトの派生日付を削除し、xcodeを再起動したため、将来のログが消え、課題ナビゲーターが正しい警告とエラーを表示し始めました。
alex-i 2014

19

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

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


いいえ、アプリ名はすべて1つの単語であり、特殊文字やスペースなどはありません。
アダムデービス

それは私のためにそれをしました。アップルは、開発者がプラットフォームに移行するのを困難にする新しい方法を見つけました。マインドブローエラー!!
CF_Maintainer 2011年

製品名にアンダースコアを
含める

13

ローカルのCocoa Headsメーリングリストの1つで、小さなデフォルトのサンプルプロジェクトを試すように勧められました-プロビジョニングと署名が機能することを確認するために最初にやるべきだったことです。それは問題なく私のデバイスでビルドして実行されたので、すべての兆候は私のコードまたはプロジェクトの問題を示しています。

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


アプリの主な機能を新しいプロジェクトに追加しましたが、問題なく動作しています。今回違うことをした唯一のことは、ユニバーサルバイナリをセットアップせず(現在のところiPhoneのみ)、縦向き以外はすべてオフにしたことです。他のすべては同じであると言える限りは、後でさらに調査することにした場合は、プロジェクトファイルを比較して、他に何が違うのかを確認します。

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

Paulが別の答えで示唆しているように、ターゲットを再作成することで修正することもできますが、このような単純なプロジェクトを最初からやり直すのは簡単でした。


私もこの問題を抱えていました。証明書/プロビジョニングプロファイルを設定する前に新しいXcode4プロジェクトを作成しましたが、問題なくエラーが発生しました。それらがセットアップされ、Xcodeを再起動したら、新しいプロジェクトを開始して問題なく実行することができました。(既存のプロジェクトではあまり役に立たないと思います。)
zekel

@zekel面白い!証明書とプロビジョニングを完了するプロセスを実行する前に、シミュレーターでもプロジェクトを立ち上げて実行しました。アップグレード中にプロビジョニングを期限切れにしないと、この問題は発生しないと思います...
アダムデイビス

7

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


私にもアスタリスクがあり、それを削除すると問題が解決しました。言及していただきありがとうございます。
SteveB

ワイルドカード識別子(つまり、com.developername。*)を使用することも、私にとって問題の原因でした。デフォルトのcom.developername。$ {PRODUCT_NAME:rfc1034identifier}に戻すと問題が解決しました。私は現在Xcode 4.0.2を実行しています
GnarlyDog 2011

7

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


これも私に起こりました。ターゲット、サマリー、識別子の下で、最初にスペースを削除しました。シーッシュアップル。いくつの落とし穴を作成できますか?
fregas

バンドル識別子が私の問題でした。これは、Info.plistファイルにあります。
ベンフォード2012年

7

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


7

これらすべての答えを調べた後、まったく同じ問題が発生しましたが、別の方法で解決しました。

問題:

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

これまでで最も愚かなソリューション:

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


それでおしまい !プロパティの名前を手動で変更したため、問題が発生しました。ありがとう
Laszlo

6

私も同じ問題を抱えていました。私はそれを修正しようとして、xcodeがクラッシュしました。私はそれを再開し、それはうまくいきました。運が良かったかな?何であれ、それが現在機能している限り、私はそれが何が悪いのか本当に気にしません


6

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

わたしにはできる。


6

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

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

お役に立てれば。


6

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

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

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



4

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


3

xcode 4で既存のプロジェクトをコンパイルしようとすると、まったく同じ問題が発生し、プロジェクトを再作成するという苦労がほぼ発生しました。

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

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


3

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

コマンドラインでプロジェクトを実行することによってそれを理解しました、それは私にエラーを教えました:

/usr/bin/xcodebuild -target "UnitTest"

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


3

私にもこの問題がありましたが、原因は別のものでした:

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

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


3

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


私の一時的な解決策は、XCode 3.2.6とiOS 4.3をダウンロードしてインストールすることでした。AppleがiOS 4.3を含むバージョンのXCode 3もリリースしていて、XCode 4へのアップグレードを延期できることを知りませんでした。ビルド失敗の問題についてAppleにバグレポートを提出しました。


アップルからの更新:

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

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

最近、ProcessProductPackagingのコードが大幅に見直されたため、Xcode 4.0でエラーが適切に出力されていなかったと思われます。自分のビルドのトランスクリプトを見てください。もしそうであれば、これはXcodeの将来のリリースで修正される可能性があります(修正がリリースされるまで、これ以上コメントすることはできません)。

アンダースコアからダッシュに切り替えたところ、問題が解決しました。


2

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

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


2

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

私の目標は、存在しないプロビジョニングプロファイルを使用するように設定されました。

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


2

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

それが役に立てば幸い


私はXcode 5.0.2のようなものを入手しました。Localizable.stringsの1つに構文エラーがあり、ビルド中にXcodeが表示しませんでした。
Bart van Kuik 2013

2

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


1

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

UTI文字セットUniform Type Identifierは、通常ASCII文字セットの文字を含むUnicode文字列です。ただし、許可されるのはASCII文字のサブセットのみです。大文字と小文字のアルファベット(A〜Z、a〜z)、0〜9の数字、ドット(“。”)、ハイフン(“-”)を使用できます。この制限は、RFC 1035で規定されているDNS名の制限に基づいています。

ユニフォームタイプ識別子には、U + 007Fより大きいUnicode文字も含まれる場合があります。

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


1

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


1

これは技術的な答えではありませんが、「ユーザーエラー」の答えはおそらくあなたの状況には当てはまりません。それは私に起こりました、そして私の検索は私がこのQ&Aに役に立たないように導きました---私が私の間違いに気づくまで。課題ナビゲーターで、課題として報告されているものと一致しないフィルターを設定しました。フィルターをクリアすると、問題が表示されました。

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


1

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

次に、デバイスに別のテストアプリを作成してみましたが、次のエラーメッセージが表示されました。

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

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

かなりランダムですが、おそらく私が行ったように別のアプリをデバイスにビルドしようとした場合、幸運にも、問題の診断に役立つエラーメッセージが表示されることがあります。


1

xcodeのOrganizerに移動します。そしてプロジェクトタブでそのプロジェクトを削除します。xcodeに派生データを再構築させ、問題を修正します。


1

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

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

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


1

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.