openURL:completionHandler:
method of the NSExtensionContext
class.NSExtensionPointIdentifier
with Xcode (cmd+shift+f) or take a look into "Build Phases / Embed App extensions":.appex
, now you can navigate to the individual app extensions in the project.NSExtensionPointIdentifier
among all files inside the app bundle (IPA or installed app):UIActivity
where we had to define the document types, also using UTIs. An app does not need to have an extension for that. It is possible to share data using only UIActivity
.Info.plist
file and search for NSExtensionActivationRule
. That key specifies the data being supported as well as e.g. maximum of items supported. For example:0
as MaxCount
will be supported. However, more complex filtering is possible by using a so-called predicate string that will evaluate the UTIs given. Please refer to the Apple App Extension Programming Guide for more detailed information about this.NSUserDefaults
API. See this figure from Apple App Extension Programming Guide:NSURLSession
class to perform a background upload or download, so that both the extension and its containing app can access the transferred data.NSExtensionContext - inputItems
in the data originating app.NSXPCConnection
that uses the libxpc.dylib
Framework.NSItemProvider
are public.plain-text
and public.file-url
, the latter being included in NSExtensionActivationRule
from the Info.plist
of the "Share Extension" of Telegram.NSExtension - _plugIn
:Share.appex
is sending the text file (public.plain-text
and public.file-url
).com.apple.mobilenotes.SharingExtension.appex
which is receiving and will process the text file.frida-trace
and then dig deeper into the methods that you find more interesting by extending the automatically generated stubs.