iOS 9“ fbauth2” หายไปจาก Info.plist


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

ความคิดใด ๆ นี่คืออะไร? ฉันได้เพิ่มลงในส่วนที่ไม่ได้ใช้งานแล้ว

คำตอบ:


347

คุณสามารถใช้ชุดรูปแบบ URL ต่อไปได้เมื่อคุณสร้างแอพสำหรับ iOS 9 และคุณต้องการเรียกใช้ชุดรูปแบบ URL ตอนนี้คุณจะต้องประกาศชุดรูปแบบเหล่านั้นใน Info.plist ของแอพ มีคีย์ใหม่คือLSApplicationQueriesSchemesและที่นี่คุณจะต้องเพิ่มรายการของชุดรูปแบบที่คุณต้องการให้เป็น OpenOpenURL

ลองแบบนี้

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

1
ขอบคุณครับ ฉันคิดว่ามันจะมีความจำเป็นก็ต่อเมื่อฉันสร้างมันบนอุปกรณ์ iOS9
เฟลิเป้

โปรดคัดลอก xml / วางรุ่น: D?
Christopher Francisco

20
เหตุใดข้อมูลนี้จึงไม่ปรากฏบน quickstart สำหรับ iOS developers.facebook.com/quickstarts/926602334080849/…
Paul Brewczynski

1
ขอบคุณ คุณคิดออกยังไง
Hernan Arber

1
@PaulBrewczynski ฉันไม่รู้ว่าทำไมมันถึงไม่อยู่ในคู่มือการเริ่มต้นอย่างรวดเร็ว แต่ฉันพบมันในเอกสารที่นี่: developers.facebook.com/docs/ios/ios9
TMIN

25

หากคุณใช้ iOS9 นี่เป็นสิ่งสำคัญในการอัปเดตไฟล์ info.plist ของคุณ คุณเพียงแค่ต้องทำ 3 ขั้นตอน 1. ไปที่ info.plist 2. เพิ่มเขตข้อมูลคือLSApplicationQueriesSchemesประเภทข้อมูล NSArray 3. เพิ่มรายการประเภทข้อมูล NSString ตั้งชื่อเป็น fbauth2

แค่นั้นแหละ. เพียงทำความสะอาดและเรียกใช้ คำเตือนจะไม่แสดงอีกครั้งป้อนคำอธิบายรูปภาพที่นี่


ฉันใช้งาน Xcode 7.1 แต่ใช้โปรแกรมจำลองการทำงานของ iPhone 6 Plus ที่ใช้ iOS 8.1 สิ่งนี้ไม่ควรปรากฏหรือไม่
เจอโรมชานเยวฮอง

21

สำหรับ v4.6.0 ของ FaceBook SDK ให้เพิ่มคีย์ต่อไปนี้ลงในไฟล์ plist ของคุณ:

<key>LSApplicationQueriesSchemes</key>
<array>
        <string>fbapi</string>
        <string>fb-messenger-api</string>
        <string>fbauth2</string>
        <string>fbshareextension</string>
</array>

ลิงก์: https://developers.facebook.com/docs/ios/ios9


1
developers.facebook.com/docs/ios/getting-startedจะnotบอกให้คุณทำสิ่งนี้ดีที่คุณชี้ให้เห็น!
James111


5

โปรดอย่าเพิ่งเพิ่มสิ่งนี้ลงใน CFBundleURLSchemes ของคุณ ... ที่จริงแล้ว HIJACK ความพยายามของแอพใด ๆ ที่ Facebook auth ทำให้ป๊อปอัพแสดงกล่องโต้ตอบ "แอป X ต้องการเปิด" ...

คุณไม่ต้องการที่จะทำอย่างนั้น

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

ฉันได้สิ่งนี้เมื่อใช้การทดสอบกีวี่ของฉันเนื่องจากเป้าหมายการทดสอบของเราไม่สามารถเข้าถึงบันเดิลหลักได้ ดังนั้นฉันต้องเพิ่มเงื่อนไขลงisRegisteredCanOpenURLSchemeในFBSDKInternalUtility.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];
}

มันก็ใช้ได้กับฉันเช่นกัน ฉันไม่สามารถทำงานอื่นได้ นี่เป็นเรื่องแปลกสำหรับฉันที่เราต้องแก้ไขรหัส facebooks จะไม่ถูกลบเมื่อ FB อัพเดท cocopod ของพวกเขา
2285278

1

วิธีสร้างแอปของคุณสำหรับ iOS 9: (สำหรับ Facebook Share)

  1. เปิดInfo.plistไฟล์เพิ่มฟิลด์อื่น LSApplicationQueriesSchemesภายใต้รายการคุณสมบัติข้อมูลและตั้งค่าเป็นประเภทข้อมูลArrayหรือNSArrayหรือ
  2. เพิ่ม 3 รายการสำหรับLSApplicationQueriesSchemesและตั้งค่าประเภทข้อมูลเป็นStringหรือNSStringหรือ
  3. กำหนดfbauth2, fbshareextension, fbapiเป็นค่ารายการ

ติดตามภาพนี้ :

ป้อนคำอธิบายรูปภาพที่นี่


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
ล้าสมัย. SDK ที่ใหม่กว่าต้องการน้อยกว่า
goodguys_activate

0

คุณสามารถลองด้วยรหัสด้านล่างใน swift 5.0

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

คุณสามารถโทรโดยใช้ Bundle

guard Bundle.externalURLSchemes.contains(URLScheme) else {
    return
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.