FBSOpenApplicationErrorDomain错误1

时间:2015-07-10 21:58:24

标签: ios xcode ios-simulator swift2 xcode7

我正在尝试使用iPhone模拟器(任意)运行我在Xcode 7中从Swift 1.2迁移到Swift 2.0的iOS应用,我收到以下错误:

  

无法完成操作。 (FBSOpenApplicationErrorDomain   错误1。)

我已经尝试重置模拟器设置和内容,退出Xcode,清理项目等。

15 个答案:

答案 0 :(得分:48)

将Xcode更新为v7.0后,我遇到了同样的错误。经过几个小时的挣扎,我发现在我的主动方案中有一些空的环境变量设置被传递给Run动作(不知道它为什么存在)。删除此空环境变量会立即解决问题。

答案 1 :(得分:19)

当前一次运行的应用程序在后台仍处于活动状态时,即使您在Xcode中单击“停止”,也会发生此错误。尝试在模拟器本身手动杀死应用程序:cmd + shift + H两次打开正在运行的应用程序,拖动你的应用程序以杀死它。注意cmd + shift + H是转到主屏幕的快捷方式。然后开始新的运行,它应该工作正常:)

答案 2 :(得分:6)

  1. 模拟器 - >重置内容和设置
  2. 退出模拟器
  3. 再次运行测试用例

答案 3 :(得分:6)

在tvOS应用程序中,您可以转到模拟器并删除该应用程序,然后重新运行该程序。

答案 4 :(得分:4)

如果其他修复不起作用

经历了这些尝试:

  1. 强制退出模拟器中的应用
  2. 重置模拟器
  3. 从模拟器中删除了应用
  4. 全球禁用App Transport Security(不推荐)
  5. 关闭所有后台模式 问题总是返回阻止调试会话
  6. 这是我的修复

    似乎方案管理器启用了一个没有参数导致我的问题的字段。

    Product menu > Scheme > Edit Scheme > Run > Arguments > Environment Variables
    

    如果旁边有空字段的复选标记,则取消选中它。

    我收到了“1”错误代码。我希望这也适合你。

答案 5 :(得分:3)

在我的情况下,我能够通过使用不同的模拟器来解决它。它一直发生在session['secret_info'] = secret_info. 模拟器上,但一旦切换到iPhone 4S模拟器,错误就消失了。

答案 6 :(得分:2)

这个错误不是(我相信)与Facebook SDK有关。我得到了这个,我根本没有Facebook SDK。

我发现虽然Xcode没有显示错误的原因,但是模拟器日志是这样做的。

当您收到此错误时,模拟器将运行,因此交换到它,然后从“Debug”菜单中选择“Open system log ...”。

一旦日志出现在屏幕上,遍历到它的结尾,你会看到更多的信息(如果你很幸运,包括一个堆栈跟踪)关于出了什么问题。

在我的情况下,抛出异常是因为文件资产丢失或无法找到。

答案 7 :(得分:1)

在我的情况下,我解决它。

如果在后台模式下运行,请关闭您正在使用的应用。

它对我有用希望它适合你。

答案 8 :(得分:1)

经过多次努力,我认为问题是你可能正在尝试运行在后台运行的应用程序。从xcode停止应用并没有实际停止它(奇怪的是右边),你必须按两次cmd + shift + h的主页键,找到你的应用并杀死它。我仍然试图找出更好的方法,因为这是乏味的,但至少这将暂时起作用。

答案 9 :(得分:1)

退出(Command + Q)模拟器并再次启动它解决了这个问题。

答案 10 :(得分:1)

我使用Xamarin iOS,Visual Studio for Mac 7.2,编译iPad 2,iOS 9.3时出现此错误。解决方案是在项目 - >下将iOS版本支持的架构更改为 i386 + x86_64 。选项 - > iOS Build - >支持的体系结构

答案 11 :(得分:0)

我很确定此问题可能与iOS 9上的ATS有关。

确保您已按照FB小组提供的步骤操作,以使其SDK在iOS 9上运行。Release Notes

说明

App Transport Security

“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的要求,则连接将失败。

解决方案

这个问题有两种解决方案。

<强>推荐

确保您的连接符合ATS规定的要求。

“临时解决方案”

禁用应用中的ATS以允许不符合此要求的连接。

这可能是一个临时解决方案,因为您现在可以禁用ATS在您的应用中使用,在将来的版本中,此选项可能会被删除,您将被迫使用ATS作为默认安全功能。

FACEBOOK SDK

Facebook为了赢得一些时间并允许其用户继续在iOS 9.0和OS X 10.11中使用他们的SDK。他们选择了“临时解决方案”,因此你必须这样做。

  • 从您的应用中停用ATS。
  • 或将用于网络请求的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对话框(例如,登录,共享,应用程序邀请等)。

来源:Facebook - Preparing Your Apps for iOS9

答案 12 :(得分:0)

尝试重置模拟器

sudo rm -rf /private/tmp/com.apple.CoreSimulator.SimDevice.*

答案 13 :(得分:0)

在Denis接受的答案之后,他提到的impossible places首先是在Simulator System Log中发现的。 (Mac XCode Simulator>调试>打开系统日志。。)

就我而言,我正在尝试向模拟器iPad 2 iOS 9.3调试Hello World Xamarin Forms。 VS2017Mac输出上述错误,但模拟器系统日志提供了更多信息

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位应用程序。

此外,刷新模拟器也有帮助。 (模拟器>硬件>擦除所有内容和设置。。)。这样可以确保部署到模拟器的应用包含最新更改。

答案 14 :(得分:0)

我试图通过React Native应用程序运行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.)

因此,解决方法是通过build命令更改以为正确的平台进行构建。

错误的构建命令:

$ 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