我正在尝试使用iPhone模拟器(任意)运行我在Xcode 7中从Swift 1.2
迁移到Swift 2.0
的iOS应用,我收到以下错误:
无法完成操作。 (FBSOpenApplicationErrorDomain 错误1。)
我已经尝试重置模拟器设置和内容,退出Xcode,清理项目等。
答案 0 :(得分:48)
将Xcode更新为v7.0后,我遇到了同样的错误。经过几个小时的挣扎,我发现在我的主动方案中有一些空的环境变量设置被传递给Run动作(不知道它为什么存在)。删除此空环境变量会立即解决问题。
答案 1 :(得分:19)
当前一次运行的应用程序在后台仍处于活动状态时,即使您在Xcode中单击“停止”,也会发生此错误。尝试在模拟器本身手动杀死应用程序:cmd + shift + H两次打开正在运行的应用程序,拖动你的应用程序以杀死它。注意cmd + shift + H是转到主屏幕的快捷方式。然后开始新的运行,它应该工作正常:)
答案 2 :(得分:6)
答案 3 :(得分:6)
在tvOS应用程序中,您可以转到模拟器并删除该应用程序,然后重新运行该程序。
答案 4 :(得分:4)
经历了这些尝试:
似乎方案管理器启用了一个没有参数导致我的问题的字段。
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是一项提高应用程序和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为了赢得一些时间并允许其用户继续在iOS 9.0和OS X 10.11中使用他们的SDK。他们选择了“临时解决方案”,因此你必须这样做。
要执行稍后操作,您必须将以下内容添加到目标.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对话框(例如,登录,共享,应用程序邀请等)。
答案 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