Failed to get remote view controller with error: Error: domain=_UIViewServiceInterfaceErrorDomain, code=2
Failed to get remote view controller with error: Error: domain=_UIViewServiceInterfaceErrorDomain, code=2
我有一个非常令人沮丧的错误。我已经 iOS 开发了 3 个月。我一直在登录 facebook,然后连接到 Firebase。我一开始就实施了这一点。它完美运行,今天我醒来将应用程序放到商店...但 Facebook 登录不起作用。
我登录 Facebook 的代码绝对没有任何变化(我几乎可以肯定,但我已经检查了所有内容!)发生的事情是你点击 facebook 登录按钮,它只会是白色的(通常情况下会有一个互联网浏览器)。我得到的错误是:
[ViewService] Failed to get remote view controller with error: Error: domain=_UIViewServiceInterfaceErrorDomain, code=2
我完全没有更改代码。我的 bundleID 和 appID 与 facebook 开发人员中的相同。
我完全不知道它是什么,有类似问题的极少数人似乎也不知道。我想了解,但只要能够解决它并且将来不会发生,那就太好了!我在 swift 中编码,但我没有像在 Facebook 文档中那样使用 swiftSDK,而是使用 FBSDKLoginButton。
我也在模拟器上试过了,但没有成功。它只发生在我的 phone.
我真的不确定什么是有用的信息,所以如果我包含了不相关的信息,我很抱歉。
我正在使用 facebook sdk 4.20.2
这是我的 info.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>CeleBreak</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb1253394891414659</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>FacebookAppID</key>
<string>1253394891414659</string>
<key>FacebookDisplayName</key>
<string>CelebreakApp</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbauth2</string>
</array>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSExceptionDomains</key>
<dict/>
</dict>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
</dict>
</plist>
这是我的登录名VC:
class LoginVC: UIViewController: FBSDKLoginButtonDelegate {
@IBOutlet weak var loginButton: FBSDKLoginButton!
public var originVC: UIViewController = TabBarController()
override func viewDidLoad(){
phoneNumberTextField.delegate = self
loginButton.delegate = self
phoneNumberTextField.keyboardType = UIKeyboardType.numberPad
}
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error?) {
}
func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) {
fatalError("Logging out in Login View shouldn't happen")
}
}
那么登录按钮就是一个FBSDKLoginButton。当我查看 Facebook 文档时,它并没有解释如何这样做,而是解释了如何使用 swift SDK,但我遵循了以这种方式设置 Facebook 的指南,但并没有真正理解它。
解决方案:从 phone 上的 Safari 设置中清除数据和历史记录。
来源:
我在全面测试我的登录流程时遇到了同样的问题 - 重复记录 in/out,使用 FB 本机应用程序而不是 Safari 登录等。
我猜这是FB登录/Safari之间交互的弱点。
我有一个非常令人沮丧的错误。我已经 iOS 开发了 3 个月。我一直在登录 facebook,然后连接到 Firebase。我一开始就实施了这一点。它完美运行,今天我醒来将应用程序放到商店...但 Facebook 登录不起作用。
我登录 Facebook 的代码绝对没有任何变化(我几乎可以肯定,但我已经检查了所有内容!)发生的事情是你点击 facebook 登录按钮,它只会是白色的(通常情况下会有一个互联网浏览器)。我得到的错误是:
[ViewService] Failed to get remote view controller with error: Error: domain=_UIViewServiceInterfaceErrorDomain, code=2
我完全没有更改代码。我的 bundleID 和 appID 与 facebook 开发人员中的相同。
我完全不知道它是什么,有类似问题的极少数人似乎也不知道。我想了解,但只要能够解决它并且将来不会发生,那就太好了!我在 swift 中编码,但我没有像在 Facebook 文档中那样使用 swiftSDK,而是使用 FBSDKLoginButton。
我也在模拟器上试过了,但没有成功。它只发生在我的 phone.
我真的不确定什么是有用的信息,所以如果我包含了不相关的信息,我很抱歉。
我正在使用 facebook sdk 4.20.2
这是我的 info.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>CeleBreak</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb1253394891414659</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>FacebookAppID</key>
<string>1253394891414659</string>
<key>FacebookDisplayName</key>
<string>CelebreakApp</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbauth2</string>
</array>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSExceptionDomains</key>
<dict/>
</dict>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
</dict>
</plist>
这是我的登录名VC:
class LoginVC: UIViewController: FBSDKLoginButtonDelegate {
@IBOutlet weak var loginButton: FBSDKLoginButton!
public var originVC: UIViewController = TabBarController()
override func viewDidLoad(){
phoneNumberTextField.delegate = self
loginButton.delegate = self
phoneNumberTextField.keyboardType = UIKeyboardType.numberPad
}
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error?) {
}
func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) {
fatalError("Logging out in Login View shouldn't happen")
}
}
那么登录按钮就是一个FBSDKLoginButton。当我查看 Facebook 文档时,它并没有解释如何这样做,而是解释了如何使用 swift SDK,但我遵循了以这种方式设置 Facebook 的指南,但并没有真正理解它。
解决方案:从 phone 上的 Safari 设置中清除数据和历史记录。
来源:
我在全面测试我的登录流程时遇到了同样的问题 - 重复记录 in/out,使用 FB 本机应用程序而不是 Safari 登录等。
我猜这是FB登录/Safari之间交互的弱点。