Xcode 6を使用してiOSシミュレーターでアプリを起動しようとすると、エラー(ドメイン= LaunchServicesError、コード= 0)を受け取りました。Googleで解決策を探しましたが、実用的なものは見つかりませんでした。
このエラーはどういう意味ですか?
このエラーは、インストールに問題があったことを示しています。残念なことに、Xcodeはより多くの洞察を与えるエラーメッセージの内容を実際には出力しませんが、〜/ Library/Logs/CoreSimulator/CoreSimulator.logで残りのエラーの詳細を確認できます。シミュレートされたデバイスのシステムログ(〜/ Library/Logs/CoreSimulator/[Device UDID] /system.log)にも問題に関する詳細情報があります。エラーが発生した前後のinstalldからのメッセージを探してください)。
この一般的な原因には、Info.plistが欠落しているバンドル、バンドルのInfo.plist内に欠落しているキー、または許可されていないInfo.plistの一部のキーの値が含まれます。
アプリのInfo.plistに有効なCFBundleVersionキー/値のペアが含まれていない場合、アプリが初めて正しくインストールされても更新に失敗する可能性があります。多くのユーザーは、各インストール後に「内容と設定のリセット」を行うことでこの問題を回避しているようですが、Info.plistで適切なCFBundleVersionを設定して根本原因を修正することをお勧めします。この場合、iOS 8.2は最初のインストールで、単に更新ではなくエラーを正しく返すようになったと思うので、この問題がより明白になることを願っています。
ハードリンクをサポートしていないファイルシステム上のホームディレクトリ(例:AFP、SMB、または一部のNFSサーバーを介したネットワークホームディレクトリ)を持つユーザーも、ハードリンクに関連する問題に遭遇する可能性があります。この場合、シミュレーター開発用にローカルHFS +ファイルシステムにパスを作成し(例:/ var/simulator/[user])、〜/ Library/Developer/CoreSimulatorからそのパスへのシンボリックリンクを作成することをお勧めします。この特定の問題は、iOS 8.2ベータ版の1つで修正されました。
別の場合、Build&Runは最初の試行で常に成功しますが、Info.plistの変更により後続の試行が失敗する場合があります(たとえば、誰かのビルドシステム設定により、CFBundleVersionが各反復で異なるため)。通常、インストールされたアプリを削除するか(ホーム画面から長押しするかxcrun simctl uninstall [Device UDID] [app identifier]
)、デバイスを消去してデフォルトの状態に戻すことで回復できます。デバイスを消去するには、ターミナルからxcrun simctl erase [Device UDID]
を実行するか、iOSシミュレータメニューからErase Contents & Settings
を選択します。この特定の問題は、iOS 8.2ベータ版の1つで修正されました。
この問題の新しいインスタンスは、Xcode 6.2ユーザー向けに発生しています。アプリにWatchKit App Extensionがバンドルされている場合、iOS 8.2より前のバージョンのiOS Simulatorランタイムへのインストールは失敗します。回避策として、iOS 8.1以前のランタイムでテストする場合は、アプリ拡張機能のインストールを手動で無効にする必要があります。
より具体的なヘルプが必要な場合は、CoreSimulator.logのエラーメッセージ全体、および〜/ Library/Logs/CoreSimulator/[Device UDID] /system.logにほぼ同時に表示されるinstalldおよびCoreSimulatorBridgeのメッセージをすべて提供してください。根本的な問題が明らかになります。
プロジェクトにウィジェットまたは拡張機能が含まれていますか?その場合、問題はウィジェット/拡張機能のバンドル識別子である可能性があります。メインターゲットと同じで、ピリオドと追加の文字列が追加されている必要があります。たとえば、次のとおりです。
メインターゲット:com.mycompany.myapp
ウィジェットはcom.mycompany.myapp.widget
である必要があります
シミュレーターをリセットして修正しました。
iOSシミュレーター>コンテンツと設定をリセット...
誰もがtheyの経緯と方法they修正theirの正確な問題を書いているので、役に立たないかもしれません。
問題は、同じエラーメッセージにはさまざまな原因があり、それを解決する正しい方法は、~/Library/Logs/CoreSimulator/CoreSimulator.log
を開いて最後のメッセージを探すことです。このメッセージはあなたに良い手がかりを与え、あなたの問題を解決する正しい道にあなたを設定します(時にはそれはバンドルIDであり、時々それはInfo.plistの欠落または追加の属性ですが、あなたは常に良い、説明的な手がかりを得ます)。
これは、問題を絞り込み、最終的に修正する方法です。
Xcodeで頑張ってください。)
Z.
私にとっては、プロジェクトをクリーンアップしただけで機能しました->製品->クリーン
TLDR:プロジェクトビルドフォルダーをクリアしてください。そうすれば、この痛みから解放されます。
(さらに、Xcodeでこれを修正する方法を見つける必要があるため、Appleのバグとしてこれを記録しました)
これらの解決策はどれも役に立たなかった-私はいくつかの壁に頭を打ちました。
CoreSimulatorのログを見ると、削除したライブラリをビルドしようとしていることがわかりました。私はそれへの参照をどこにも見つけることができませんでした。
その後、別のSO質問を見てみましたが、残念ながら、以下の場合は参照できません。
Clean Build Folder
になります"コンテンツと設定のリセット" from iOSシミュレーターメニューオプションとシミュレーターの起動終了問題を解決しました。
XCode 6で
実行中にエラーが発生しました(ドメイン= LaunchServicesError、コード= 0)
IPhone 6スクリーンに対応するためにいくつかの大きなコード変更を行った後、このエラーが発生しました。 Xcode 6(iOS8)
上記のオプションに従い、これを実際に修正する唯一の方法は、次のことを行うことであることがわかりました。
PListのバンドルバージョンを1.4から1.4.1に変更
この段階に私を導いたすべての以前の答えをありがとう。それは魅力的でした!
私の場合、ビルドIDを設定しなかったため、エラーが発生しました。
これを設定すると、エミュレータが問題なく起動します。
ビルド構成に基づいて異なるバンドルIDを使用するように設定されたアプリがあります。 Apple Watch拡張機能を作成するとき、XcodeはリリースIDを使用してすべてを生成したため、デバッグのためにすべてを手動で変更する必要がありました。変更しなければならなかったすべての場所を次に示します。
WatchKit Extension
のBuild Settings -> Packaging -> Product Bundle Identifier
WatchKit Extension
のInfo.plist -> NSExtension -> NSExtensionAttributes -> WKAppBundleIdentifier
(これは、コンパニオンアプリと同じプレフィックスを使用する必要があります)WatchKit App
のInfo.plist -> WKCompanionAppBundleIdentifier
WatchKit App
の情報がターゲット設定を表示するときにタブとして表示されないため、最後の1つはしばらくかかりました。Info.plist
ファイル自体に直接移動する必要がありました。
試してみるべきもう1つのことは、シミュレータをリセットしてクリーンビルドを実行しても役に立たなかったので、派生データを消去することです。これを行うには、オーガナイザに移動し、プロジェクトをクリックして、派生データの削除ボタンをクリックします。しばらく拡張機能に取り組んだ後、これが発生し、通常のブランチに戻りました。お役に立てれば。
これが私にとって問題の原因です。メインアプリのビルド番号と拡張機能が異なっていました(メインアプリのビルド番号を1.0.1.03に増やしましたが、拡張機能は1.0.1.02のままにしました)。
それらを一致させることで問題が解決しました。
コンソールアプリを開き、そこを見てください。私の場合、何をすべきかを正確に教えてくれました。私が見た:
ErrorDescription = WatchKit 2アプリ拡張機能のNSExtension.NSExtensionAttributes.WKAppBundleIdentifier値は、WatchKitアプリのバンドルIDと一致しません(「com.myCompany.MyApp.MyApp.watchkitapp」が見つかりました。「com.myCompany.MyApp.watchkitapp」が必要です)。
それで、私は各plistに行き、BundleIDに関連するアイテムをチェックしました。その後、クリーンアップ、再起動など。
iOSシミュレータのメニューオプションから「コンテンツと設定をリセット」し、Quittingで問題が解決した後にシミュレータを起動します。
このエラーもあります。私の場合、ログ~/Library/Logs/CoreSimulator/CoreSimulator.log
はそのようなものでした:
Could not hardlink copy /Users/myUser/Library/Developer/CoreSimulator/Devices/60E569E7-6750-428A-A401-841BB081xxxx/data/Containers/Bundle/Application/70F24DDC-7954-46BF-B799-F807FD98yyyy/myApp.app to /Users/myUser/Library/Developer/CoreSimulator/Devices/60E569E7-6750-428A-A401-841BB081xxxx/data/Library/Caches/com.Apple.mobile.installd.staging/temp.kOrJ9G/extracted/Payload/myApp.app with manifest /Users/myUser/Library/Developer/CoreSimulator/Devices/60E569E7-6750-428A-A401-841BB081xxxx/data/Library/Caches/com.Apple.mobile.installd.staging/temp.kOrJ9G/extracted/com.Apple.deltainstallcommands.com.mycompagny.myapp
これに感謝 answer アプリのinfo.plistを見てください。キーCFBundleVersion
が欠落していたため、追加しましたが、すべて正常に機能しています。
上記のどれも私にとってはうまくいきませんでしたが、これはうまくいきました:
IceCream.xcworkspace/xcuserdata/xcuserdatadを削除してから、シミュレーターをリセットし、アプリを再度実行しました。 (シミュレータだけをリセットしても、うまくいきませんでした。)
Jeremyによるすばらしい説明は、少なくとも私を正しい方向に導きましたが、すべてのバンドルIDとバージョンが正しく設定されていても、エラーは続きました。次に、 Apple documentation をチェックしました。これは、WatchKit拡張機能(バンドルリソースのコピーフェーズ)がWatchKitアプリをコピーすることを示しています。このWatchKitアプリは、私のiOSアプリとまったく同じ名前が付けられていたため、Xcodeが2つを混同し、バンドルIDが間違っていると考えて間違ったplistを読み上げました。 WatchKitアプリの製品名を別の名前に変更すると、ようやく解決しました。
空の場合は、[TARGETS]-[General]-[Identity]-[Version(or Build)]に数字を入力してみてください。
それは私のために働いた。
それがあなたのお役に立てば幸いです。
バンドルIDを変更した場合は、クリーンビルドを実行してから、再度ビルドしてください。こちらをご覧ください: キャッシュを空にしてすべてのターゲットを消去する方法Xcode 4
AppleのLister Xcodeプロジェクトをビルドしてシミュレーターで実行しようとしたときに、このエラーが発生しました。
私にとってそれを修正した重要な要素は次のとおりです。
1)iOSアプリとiOS拡張機能のBundleIDは異なる必要がありました2)両方のターゲットにiCloudとアプリグループを提供します3)Xcodeの「問題の修正」を使用して問題を修正しました
その後、警告やエラーなしでアプリをビルドして実行できました。
ログファイルからの手がかりは、「... LegacyErrorString = DuplicateIdentifier、FunctionName =-[MIInstallableBundle performPreflightWithError:]、SourceFileLine = 450、NSLocalizedDescription =親バンドルは、/のサブバンドルと同じ識別子(com.ACMECompany.Lister)です。 Users/stephen/Library/Developer/CoreSimulator/Devices/5329928B-946B-40A4-B666-EFD11B96D11F/data/Library/Caches/com.Apple.mobile.installd.staging/temp.HQ5d9X/extracted/Lister.app/PlugIns/Lister.appex」
InfoPlist.strings
ローカリゼーションファイルに間違ったアプリバージョンが設定されていました。ほら!
1時間過ぎました!
だから、それは間違いなく.plistの問題です。私の場合、それはNSExtensionMainStoryboard
でしたが、このプロパティを削除すると問題が修正されました
私の問題は、ターゲットプロジェクトのラッパー拡張が設定されていないことでした。
修正するには、ターゲットプロジェクト-> ビルド設定-> パッケージング-> ラッパー拡張に移動する必要がありました。
これを「app」に設定します(引用符なし)
これで問題が解決しました
間違いなく私の上にとどまる他のすべてに追加する1つの可能な解決策;)
ソースファイルを保持しているToday Extensionターゲットを削除し、後で復元しましたが、すべてのソリューションをSunで試した後、ターゲットにソースやリソースがないことがわかりました。詳細な起動サービスエラーでコンパイル済みのアプリ拡張ファイルが見つからない場合にも、これが発生する可能性があります。
つまり、簡単に言えば、ターゲットにsomethingが含まれていることを確認してください。プロジェクトナビゲーター(左側)で関連ファイルを選択し、ファイルインスペクター(右側の最初のタブ)で必要に応じてチェックマークを設定することにより、ターゲットメンバーシップを確認できます。
シミュレーターを削除して再生成します。
わたしにはできる。
watch app's .plistファイルにあるはずのキーを削除しました。そして問題は消えました。
このエラーは、使用可能なハードディスク領域がないときにシステムに表示されていました。システムの一部のスペースを解放して、システムが機能するようにしました。
ログに次のものがありました...
<Error>: Error Domain=LaunchServicesError Code=0 "(null)" UserInfo={Error=ExecutableTwiddleFailed...
これは、拡張プロジェクトにソースファイルが追加されていないためです。
これは私のために働いた:プロジェクト設定->一般タブ->アイデンティティセクションで、バージョン番号を2.0.2(3桁)から2.0(2桁)のように変更し、シミュレータでアプリを削除してプロジェクトを再度実行しました。その後、これ以上のエラーはありません。
私もこの問題を抱えていましたが、info.plistの1つがターゲットに割り当てられていたことがわかりました。 Xcodeの設定に関する推奨の警告が実際にあり、それをタップして変更を受け入れました。これで問題は解決しました。