Я хочу создать UIActivityViewController, который исключит некоторые из встроенных функций общего доступа, включая Facebook и Twitter Share. Но доля Facebook по-прежнему доступна как ShareExtention.
Я создаю следующее:
activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];
и исключить Facebook, установив исключенные типы активности.
activityViewController.excludedActivityTypes = @[
UIActivityTypeAddToReadingList,
UIActivityTypeAssignToContact,
UIActivityTypePrint,
UIActivityTypeSaveToCameraRoll,
UIActivityTypeCopyToPasteboard,
UIActivityTypeAirDrop,
UIActivityTypePostToFacebook,
UIActivityTypePostToTwitter
];
При запуске на моем iPhone появляется значок Facebook, несмотря на то, что он исключен.
Исследование того, как это происходит. Я вижу, что обработчик завершения для контроллера активности возвращает activityType = com.facebook.Facebook.ShareExtension, а не UIActivityTypePostToFacebook. Также при выборе более кнопки в контроллере активности есть переключатель для Facebook, как и для других приложений, которые используют соглашение о совместном использовании.
Почему Facebook использует ShareExtention, когда Twitter нет, и почему я не могу исключить его с помощью исключенных действий?
Примечание. Я тестировал это на нескольких устройствах, но проблема существует только на одном устройстве, которое работает под управлением 8.1.3.
Спасибо

![click to enlarge When commenting avc.excludedActivityTypes = @[UIActivityTypePostToFacebook]; this code Facebook again visible in share option](/img/d94aa3333eb7b377e1c45df5818c772e.png)