iOS 9 và fbauth2, bị thiếu trong Info.plist


147
FBSDKLog: fbauth2 is missing from your Info.plist under LSApplicationQueriesSchemes and is required for iOS 9.0

Bất cứ ý tưởng này là gì? Tôi đã thêm nó vào danh sách của mình nhưng không hoạt động.

Câu trả lời:


347

Bạn có thể tiếp tục sử dụng các lược đồ URL khi bạn xây dựng ứng dụng cho iOS 9 và bạn muốn gọi các lược đồ URL, bây giờ bạn sẽ cần khai báo chúng trong ứng dụng Info.plist của bạn. Có một khóa mới, LSApplicationQueriesScheme , và ở đây bạn sẽ cần thêm danh sách các lược đồ bạn muốn là canOpenURL trên.

Hãy thử như thế này.

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbauth2</string>
</array>

1
Cảm ơn, chàng trai. Tôi nghĩ rằng nó chỉ cần thiết nếu tôi xây dựng nó thành thiết bị iOS9.
Felipe

xml sao chép / dán phiên bản vui lòng: D?
Christopher Francisco

20
Tại sao thông tin này không được hiển thị trên quickstart cho iOS? developers.facebook.com/quickstarts/926602334080849/ từ
Paul Brewczynski

1
Cảm ơn. Làm thế nào bạn tìm ra điều này?
Hernan Arber

1
@PaulBrewczynski Tôi không biết tại sao nó không có trong hướng dẫn bắt đầu nhanh nhưng tôi đã tìm thấy nó trong các tài liệu ở đây: developers.facebook.com/docs/ios/ios9
TMin

25

Nếu bạn đang sử dụng iOS9 thì điều này rất quan trọng để cập nhật tệp info.plist của bạn. Bạn chỉ cần thực hiện 3 bước 1. Truy cập thông tin.plist 2. Thêm một trường cụ thể là kiểu dữ liệu LSApplicationQueriesScheme NSArray. 3. Thêm một mục của kiểu dữ liệu NSString đặt tên nó là fbauth2.

Đó là nó. Chỉ cần làm sạch và chạy. cảnh báo sẽ không hiển thị lại.nhập mô tả hình ảnh ở đây


Tôi đang chạy cái này trong Xcode 7.1 nhưng sử dụng trình giả lập iPhone 6 Plus chạy iOS 8.1. Điều này không nên xuất hiện phải không?
Jerome Chan Yeow Heong



5

Vui lòng chỉ không thêm phần này vào CFBundleURLScheme của bạn ... điều đó thực sự sẽ HIJACK bất kỳ nỗ lực nào của ứng dụng tại Facebook auth, khiến cửa sổ bật lên hiển thị hộp thoại "Ứng dụng X muốn mở" ...

Bạn KHÔNG muốn làm điều đó.

cf:

https://developers.facebook.com/docs/applinks/ios
https://www.fireeye.com/blog/threat-research/2015/04/url_masques_on_apps.html
https://www.reddit.com/r/workflow/comments/2tlx29/get_url_scheme_of_any_app

2

Tôi đã nhận được điều này khi chạy các thử nghiệm Kiwi của mình vì mục tiêu thử nghiệm của chúng tôi không có quyền truy cập vào gói chính. Vì vậy, tôi đã phải thêm một điều kiện để isRegisteredCanOpenURLSchemetrongFBSDKInternalUtility.m

+ (BOOL)isRegisteredCanOpenURLScheme:(NSString *)urlScheme
{
  static dispatch_once_t fetchBundleOnce;
  static NSArray *schemes = nil;

  dispatch_once(&fetchBundleOnce, ^{
    schemes = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"LSApplicationQueriesSchemes"];
    if (!schemes) { // This is a work around for our Kiwi tests as the Specs target doesn't have access to main bundle
      NSBundle *bundle = [NSBundle bundleForClass:[self class]];
      NSString *path = [bundle pathForResource:@"Info" ofType:@"plist"];
      NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:path];
      schemes = [dictionary valueForKey:@"LSApplicationQueriesSchemes"];
    }
  });

  return [schemes containsObject:urlScheme];
}

Điều này làm việc cho tôi quá. Tôi không thể làm gì khác để làm việc. Điều này có vẻ kỳ lạ với tôi rằng chúng tôi phải chỉnh sửa mã facebook, nó sẽ không bị xóa khi FB cập nhật cocepad của họ.
dùng2285278

1

Để xây dựng ứng dụng của bạn cho iOS 9: (Dành cho Facebook Share)

  1. Mở Info.plisttệp, thêm một trường LSApplicationQueriesScheme khác trong Danh sách thuộc tính thông tin và đặt kiểu dữ liệu Arrayhoặc NSArray.
  2. Thêm 3 mục cho LSApplicationQueriesScheme và đặt kiểu dữ liệu của chúng thành Stringhoặc NSString.
  3. Gán fbauth2, fbshareextension, fbapinhư giá trị mục.

Theo dõi bức ảnh này :

nhập mô tả hình ảnh ở đây


0
Write the below code in your info.plist under the **LSApplicationQueriesScheme**

<string>fbapi</string>
        <string>fbapi20130214</string>
        <string>fbapi20130410</string>
        <string>fbapi20130702</string>
        <string>fbapi20131010</string>
        <string>fbapi20131219</string>
        <string>fbapi20140410</string>
        <string>fbapi20140116</string>
        <string>fbapi20150313</string>
        <string>fbapi20150629</string>
        <string>fbauth</string>
        <string>fbauth2</string>
        <string>fb-messenger-api20140430</string>
        <string>fb-messenger-platform-20150128</string>
        <string>fb-messenger-platform-20150218</string>
        <string>fb-messenger-platform-20150305</string>

1
hết hạn. SDK mới hơn yêu cầu ít hơn
goodguys_activate

0

Bạn có thể thử với mã dưới đây trong swift 5.0

extension Bundle {
   static let externalURLSchemes: [String] = {
      guard let urlTypes = main.infoDictionary?["LSApplicationQueriesSchemes"] 
       as? [String] else {
        return []
      }
      return urlTypes
   }()
}

Bạn có thể gọi bằng Bundle

guard Bundle.externalURLSchemes.contains(URLScheme) else {
    return
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.