Xcode 7でSwift 1.2
からSwift 2.0
に移行したiOSアプリをiPhone Simulator(any)を使用して実行しようとすると、次のエラーが表示されます。
操作を完了できませんでした。 (FBSOpenApplicationErrorDomainエラー1.)
私はすでにシミュレータの設定とコンテンツをリセットし、Xcodeを終了し、プロジェクトをクリーンアップしようとしました。
Xcodeをv7.0に更新した後、同じエラーが発生しました。数時間苦労した後、アクティブなスキームのRunアクションに渡される空の環境変数のセットアップがあることがわかりました(なぜあるのかわかりません)。この空の環境変数を削除すると、すぐに問題が解決しました。
このエラーは、Xcodeで「停止」をクリックした場合でも、アプリの前回の実行がバックグラウンドでまだ実行されている場合に発生します。シミュレーター自体でアプリを手動で強制終了します。cmd+ shift + Hを2回押して実行中のアプリを開き、アプリを上にドラッグして強制終了します。注cmd + shift + Hは、ホーム画面に移動するためのショートカットです。次に、新しい実行を開始すると、正常に動作するはずです:)
TvOSアプリでは、シミュレーターに移動してアプリを削除し、プログラムを再実行できます。
これらの試みを経て:
スキームマネージャーは、私の問題を引き起こした引数のないフィールドを有効にするようです。
Product menu > Scheme > Edit Scheme > Run > Arguments > Environment Variables
横に空のフィールドがあるチェックマークがある場合は、チェックを外します。
「1」エラーコードが表示されていました。これがあなたにも役立つことを願っています。
私の場合、別のシミュレータを使用して解決できました。一貫してiPhone 4S
シミュレーター。ただし、一度iPhone 6 Plus
シミュレーター、エラーはなくなりました。
このエラーは、Facebook SDKとは関係ありません(信じています)。これを取得していますが、Facebook SDKがまったくありません。
私が見つけたのは、Xcodeがエラーの理由を示していないが、シミュレーターのログにはあるということです。
このエラーが発生すると、シミュレーターが実行されているので、それに切り替えて、[デバッグ]メニューから[システムログを開く...]を選択します。
ログが画面に表示されたら、ログを最後までたどると、問題が発生したことに関する詳細情報(幸運ならスタックトレースを含む)が表示されます。
私の場合、ファイルアセットが見つからないか、見つからなかったために例外がスローされました。
多くの苦労の後、問題はバックグラウンドで実行されているアプリを実行しようとしている可能性があると思います。 Xcodeからアプリを停止しても、実際には停止しません(奇妙な右)。cmd+ shift + hのホームキーを2回押して、アプリを見つけて強制終了する必要があります。これは面倒なので、これを行うより良い方法を探していますが、少なくともこれは一時的に動作します。
私の場合、私はそれを解決します。
バックグラウンドモードで実行している場合は、作業中のアプリを閉じるだけです。
それは私のために働きます、そしてそれがあなたのために働くことを望みます。
Xamarin iOS、Visual Studio for Mac 7.2、iPad 2、iOS 9.3用にコンパイルしてこのエラーが発生しました。解決策は、iOSビルドのサポートされているアーキテクチャをi386 + x86_64に、プロジェクト->オプション-> iOSビルド->サポートされているアーキテクチャに変更することでした。
シミュレーターを終了(Command + Q)して再度起動すると、問題が解決しました。
ReactネイティブアプリでDetoxを実行しようとしていたので、Detoxスタートガイドでは次のコマンドを推奨しました。
$ xcodebuild -workspace ios/MyApp.xcworkspace -scheme MyApp -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build
... Xcodeバージョン10.2.1(10E1001)であらゆる種類の障害が発生しました
そこで、正常にビルドされるまでコマンドを変更しました。しかし、私は(知らずに)間違ったプラットフォーム用に構築していました。私のxcodebuild
はDebug-iphoneos
ではなくDebug-iphonesimulator
を生成していました。したがって、xcodebuild
は成功を報告しますが、シミュレータにアプリをコピーして実行しようとすると、次のように失敗します。
$ xcrun simctl launch 35CC1D95-CDC2-4C8F-9B68-8E13EF7127D8 com.mycompany.iosapp
com.mycompany.iosapp: -1
An error was encountered processing the command (domain=FBSOpenApplicationServiceErrorDomain, code=1):
The request to open "com.mycompany.iosapp" failed.
The request was denied by service delegate (SBMainWorkspace) for reason: Unspecified.
Underlying error (domain=FBSOpenApplicationErrorDomain, code=1):
The operation couldn’t be completed. (FBSOpenApplicationErrorDomain error 1.)
したがって、修正は、正しいプラットフォーム用にビルドするビルドコマンドによって変更することでした。
$ xcodebuild -workspace ios/MyApp.xcworkspace -scheme MyApp -configuration Debug -derivedDataPath ios/build
$ xcodebuild -workspace ios/MyApp.xcworkspace -configuration Debug -scheme MyApp -destination 'platform=iOS Simulator,name=iPad (6th generation)' -derivedDataPath ios/build
この問題はiOS 9の [〜#〜] ats [〜#〜] に関連している可能性があると確信しています。
SDKをiOS 9で動作させるために、FBチームが提供する手順に従っていることを確認してください。 リリースノート 。
"App Transport Securityは、アプリとWebサービス間の接続のセキュリティを向上させる機能です。この機能は、セキュリティで保護された接続のベストプラクティスに準拠するデフォルトの接続要件で構成されます。セキュリティ。 "
"NSURLConnection、CFURL、またはNSURLSession APIを使用するすべての接続は、iOS 9.0以降およびOS X v10.11以降用に構築されたアプリでApp Transport Securityのデフォルト動作を使用します。要件に従わない接続は失敗します。 "
ソース: Apple-App Transport Security Technote
つまり、iOS 9.0以降、またはOS X v10.11以降用にビルドされたアプリで接続を実行しようとして、その接続がATSの要件に適合しない場合、接続は失敗します。
この問題には2つの解決策があります。
推奨
接続がATSによって課される要件を満たしていることを確認してください。
「一時的な解決策」
これに準拠しない接続を許可するには、アプリのATSを無効にします。
これは一時的な解決策かもしれません。アプリでATSの使用を無効にできるようになったため、将来のリリースではこのオプションが削除され、ATSをデフォルトのセキュリティ機能として使用する必要が生じるからです。
しばらく勝ち、ユーザーがiOS 9.0およびOS X 10.11で引き続きSDKを使用できるようにするためのFacebook。彼らは「一時的な解決策」を選んだので、あなたはそうしなければなりません。
後で行うには、ターゲット.plistに次を追加する必要があります
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>facebook.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>fbcdn.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>akamaihd.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
また、Facebookアプリへのアプリ切り替えを実行できるFacebookダイアログ(ログイン、共有、アプリ招待など)のいずれかを使用する場合、他の変更を実行する必要があります。
Denisから受け入れられた回答に続いて、impossible places
彼が言及したのは、最初にシミュレーターシステムログから発見されました。 (Mac XCode Simulator>デバッグ>システムログを開く..)
私の場合、Xamarin FormsをシミュレーターでデバッグするためにiPad 2 iOS 9.3
。 VS2017Macは上記のエラーを出力しますが、Simulator System Logにより詳細な情報が提供されます
Program specified by service does not contain one of the requested architectures: XPC_FLAGS=0x0
この thread で述べたように、iOSプロジェクトを右クリックしてBuild > iOS Build > Supported architectures
からi386 + x86_64
。 IOS 11より前のAppleは32ビットと64ビットの両方のアプリをサポートしているため、これは理にかなっています。
また、シミュレータの更新も役立ちます。 (シミュレーター>ハードウェア>すべてのコンテンツと設定を消去..)。これにより、シミュレーターにデプロイされたアプリに最新の変更が確実に含まれます。
シミュレーターをリセットしてみてください
Sudo rm -rf /private/tmp/com.Apple.CoreSimulator.SimDevice.*
製品メニュー>スキーム>スキームの編集>実行>引数>環境変数横に空のフィールドがあるチェックマークがある場合は、チェックを外します。
操作を完了できませんでした(エラー「1」)。チェックを外すだけで修正されました