プロビジョニングプロファイルで問題が発生した後、シミュレータでアプリを実行できません。私はSwift Xcode 6-beta 4でコーディングしています。これは、証明書のプロファイルで問題が発生する前は問題ありませんでした。
ビルドのクリーニングを試みました。実行のためにxCode6-beta4のコマンドラインをチェックしました。ビルドの展開を確認し、7.0に設定したため、Swiftは互換性について文句を言うことはありません。プロビジョニングのエラーを修正しました。
これは、拡張機能のバンドルIDの前にアプリのバンドルIDが付いていない場合に発生します。たとえば、アプリがcom.mycompany.appname
、拡張機能はcom.mycompany.appname.today
。
Swiftを使用しており、NSExtensionPrincipalClass
を使用してプリンシパルクラスを設定している場合は、拡張モジュールのターゲットが "Defines Module"に設定されていることを確認する必要があります。 「はい」およびNSExtensionPrincipalClass
の値を「YourModuleName.YourClassName」に等しくします。
シミュレーターをリセットして修正しました。
iOSシミュレーター>コンテンツと設定をリセット...
「ドメイン= LaunchServicesErrorコード= 0」エラーには複数の理由があるようです。また、iOS8シミュレーターでアプリを再インストールしようとしたときにも遭遇しました。再インストールできませんが、最初に古いアプリを削除する必要があります。
問題は次の方法で解決されました。
Xcodeで、空の[バージョン]または[ビルド]フィールドに、[ターゲット]-> [一般]-> [ID]の適切な値を入力します
シミュレーターで、コンテンツと設定をリセット...
その後、すべてが正常に動作します。
これは、Todayウィジェットのテンプレート作成プロジェクトからデフォルトのStoryBoardを削除した場合にも発生します。これを修正するために、NSExtensionPrincipalClass
の下にNSExtension
を追加し、Today Widget View Controllerを含むクラスをポイントしました。これはテンプレートのデフォルトではTodayViewController
です。
これは、拡張機能のInfo.plistで次のようになります。
NSExtension NSExtensionPointIdentifier String com.Apple.widget-extension NSExtensionPrincipalClass String TodayViewController
製品->クリーン
iOSシミュレーター>コンテンツと設定のリセット
XCodeを再起動します
上記のいずれも機能しませんでしたが、派生データを削除すると問題が解決しました。
派生データを削除するには、[ウィンドウ]> [プロジェクト]に移動し、現在のプロジェクトを選択して、適切な削除ボタンを押します。
"コンテンツと設定のリセット" from iOSシミュレーターメニューオプションとシミュレーターの起動終了問題を解決しました。
私にとっての解決策は、埋め込み可能なフレームワークとして構築されていないフレームワークを埋め込むことではありませんでした。
問題の原因を見つけました。
ポッド経由でShareKitを使用しています。この問題は、ShareKitが使用するGooglePlus SDKに関連しており、Appleによるポリシーの変更のため、これを更新する必要があります。 http://googledevelopers.blogspot.com.br/2014/09/an-important-announcement-for-ios.html
そこで、ポッド「ShareKit」を次のように置き換えました。
ポッド「ShareKit/Twitter」
ポッド「ShareKit/Facebook」
ポッド「ShareKit/Pocket」
ポッド「ShareKit/Evernote」
GooglePlusサブプロジェクトを除外すると、アプリケーションは8.0シミュレーターの下で正常にデプロイおよび実行されます。
これが他の誰かに役立つことを願っています。
私の場合、これで問題は解決しました。
バンドル識別子は空にしないでください。以下のリファレンスでフィールドを見つけることができます:
この問題を解決しました。アドバイスをありがとう。 :)
この問題は、メインバンドルと同じ識別子でキーボード拡張アプリをビルドするときに常に発生します。このような。
メインバンドルにこの「com.codemagnus.ExAppMain」がある場合、拡張機能にもこの識別子「com.codemagnus.ExAppMain」が必要です。これは、シミュレータで実行する場合、起動サービスエラーになります。ただし、ビルドを作成することはできます。しかし、私が見つけた問題は迷惑でした。このアプリはデバイスにインストールできません。 :/
シミュレーターで実行したい場合。この「com.codemagnus.ExAppMain.ExApp」は、拡張キーボードで、ExAppが拡張名であった場所にあるはずです。メインバンドルは「com.codemagnus.ExAppMain」である必要があります。これは、シミュレータで完全に実行されます。ただし、「埋め込みバイナリのバンドル識別子の前に親アプリのバンドル識別子が付きません」という結果になります。
埋め込みバイナリバンドル識別子:com.codemagnus.ExAppMain.ExApp親アプリバンドル識別子:com.codemagnus.ExAppMain
IPAビルドのこの問題を解決するための解決策を探しています。
これは私を夢中にさせました。ここで提案されているすべてを確認し、Xcodeを再インストールし、コンピューターを再起動しましたが、何も機能しませんでした。以前のいくつかのコミットを確認した後、問題を見つけました。
コンテキストについては、Objective Cでカスタムキーボードエクステンションを使用しています。新しいカスタムキーボードエクステンションターゲットを追加すると、「次のキーボード」ボタンを持つKeyboardViewController
スタブクラスが得られます。拡張のInfo.plist
のNSExtensionPrincipalClass
値をKeyboardViewController
とは異なるクラス名に変更し、作業を開始しました。最終的に、スタブKeyboardViewController
はデッドコードだったため、取り除くことにしました。
KeyboardViewController
ファイルを削除してXcodeから削除すると、この問題が発生しました。それらを元に戻すと、アプリは再び動作するようになりました。
ビルド設定を確認してください。一番下までスクロールして、ユーザー定義バンドルのプレフィックスが正しいことを確認してください。通常com.whatever。
上部に設定するだけでは、この下部の設定が常に変更されるとは限りません。シミュレータをリセットしたり、派生フォルダを揚げたりした後、これは最終的に私のために働いた.
私はIOS 9.3、xCode 7.3
XCodeを介してアプリを起動するときに、「親バンドルはサブバンドルと同じ識別子を持っています...」というようなエラーが表示されました。
XCode8の「プロジェクト->一般」でバンドル識別子を短縮しました。最初は、バンドルIDはcom.companyname ..でした。
アプリケーション名が20文字を超えていました。 12文字に短縮すると、うまくいきました。
Xcode 7.3
これは、ターゲット名が長すぎるために発生する可能性があります。ターゲット名をもっと短い名前に変更してみてください(bundleIdentifierを一致するように変更してください)。
このエラーの原因を理解するには、最初にシミュレータのログファイルを確認する必要があります。これらは通常、~/Library/Logs/CoreSimulator/CoreSimulator.log
または同様の場所にあります。そのため、まずログを調べて根本原因を特定し、それをさらに調査することを強くお勧めします。 ( このスレッド を見て、ログの場所を確認できます。)
たとえば、ErrorDescription=Failed to chmod /Users/username/Library/Developer/CoreSimulator/Devices/
thenなどのエラーが発生した場合、おそらくシミュレーターをリセットするのが最も簡単でしょう。 ErrorDescription=WatchKit 2 app's bundle ID com.mydomain.AppName.watchapp is not prefixed by the parent app's bundle
などのエラーの場合、おそらくプロジェクトのメインバンドルIDの設定方法にエラーがあります。
NSExtensionPointIdentifier
の値を誤って変更したため、このエラーが発生しました。拡張機能のIDであると考えられていましたが、拡張機能の種類を示す これらの値 のいずれかでなければなりません。
バンドル識別子のほかにApple watchを使用している場合は、info.plistでキーWKAppBundleIdentifierに正しいウォッチアプリバンドル識別子が含まれていることも確認する必要があります。
展開ターゲットを6.0から7.0に変更すると、このエラーが発生し始めました。シミュレーターをリセットすると問題が解決することがわかったため、アプリに関連するすべてのシミュレーターでこれを行う必要がありました。しかし、6.0に戻って特定のシミュレーター用に再コンパイルすると、すぐに機能しましたが、7.0に戻るとシミュレーターが破損し、設定を再度クリアする必要がありました。
明らかに、展開ターゲットはシミュレーターのコーディングに影響し、コーディングは下位互換性がありますが、上位互換性はありません。さらに、ログメッセージはあまり役立ちません。マニフェストを使用してアプリをキャッシュファイルにハードリンクできなかったことを示しています(もちろん、アプリ、キャッシュ、およびマニフェストへのパス名を指定します)。