FBSDKLog: fbauth2 is missing from your Info.plist under LSApplicationQueriesSchemes and is required for iOS 9.0
Будь-яка ідея, що це? Я додав його у свій список, але не працював.
Відповіді:
Ви можете продовжувати використовувати схеми URL-адрес, коли створюєте свою програму для iOS 9 і хочете викликати схеми URL-адрес, тепер вам потрібно буде оголосити їх у своїх програмах Info.plist. Існує новий ключ, LSApplicationQueriesSchemes , і тут вам потрібно буде додати список схем, на яких ви хочете бути canOpenURL.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbauth2</string>
</array>
Якщо ви використовуєте iOS9, це важливо для оновлення файлу info.plist. Вам просто потрібно виконати 3 кроки 1. Перейдіть до info.plist 2. Додайте поле, а саме LSApplicationQueriesSchemes NSArray тип даних. 3. Додайте елемент типу даних NSString, назвіть його fbauth2.
Це воно. Просто почистіть і біжіть. попередження не відображатиметься знову.
Що стосується 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>
not
говорить вам про це, добре, що ви на це вказали!
Просто дотримуйтесь пояснення Facebook: Підготовка ваших програм для iOS9
Apple згадує про це у своїх програмах: Privacy and Your App Keynote 2015
Будь ласка, просто не додайте це до своїх CFBundleURLSchemes ..., що насправді ВІДМІНЮЄ будь-яку спробу програми на автентифікацію Facebook, що призведе до появи діалогового вікна "Х додаток хоче відкрити" ...
Ви НЕ хочете цим займатися.
пор .:
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
Я отримав це під час запуску моїх тестів Kiwi, оскільки наша тестова мета не мала доступу до основного пакету. Тому мені довелося додати умову до isRegisteredCanOpenURLScheme
inFBSDKInternalUtility.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];
}
Щоб створити свій додаток для iOS 9: (Для спільного користування Facebook)
Info.plist
файл, додайте ще одне поле LSApplicationQueriesSchemes у розділі Список властивостей інформації та встановіть його тип даних Array
або NSArray
.String
або NSString
.fbauth2
, fbshareextension
, в fbapi
якості значення елемента.Дотримуйтесь цієї фотографії :
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>
Ви можете спробувати з наведеним нижче кодом в 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
}