Setup
Configuring Sharing Services for social and native sharing
Prerequisites
Essential Kit imported into the project from My Assets section of Package Manager
iOS and Android build targets configured
No external accounts required for basic sharing functionality
Setup Checklist
Open Essential Kit Settings (
Window > Voxel Busters > Essential Kit > Open Settings), switch to the Services tab, and enable Sharing ServicesEssential Kit automatically configures platform-specific sharing frameworks during build
Changes to the settings asset are saved automatically. If you use source control, commit the updated
Resources/EssentialKitSettings.assetfile
Configuration Reference
Enable Sharing Services
All
Yes
Toggles the feature in builds; disabling strips related native code
Zero Configuration Required: Sharing Services has no additional configuration options. Simply enable the feature and all sharing methods become available immediately.
Platform-Specific Notes
iOS
Automatically configures
Social.frameworkandMessageUI.frameworkduring buildSocial media composers use native iOS sharing frameworks
Mail composer uses
MFMailComposeViewControllerMessage composer uses
MFMessageComposeViewControllerShareSheet uses
UIActivityViewControllerwith all available sharing servicesNo app-specific configuration needed - iOS sharing works out of the box
Android
Automatically configures Android Intent sharing system during build
Uses
Intent.ACTION_SENDandIntent.ACTION_SENDTOfor sharingShareSheet presents
Intent.createChooser()with installed appsMail composer uses email client intents
Message composer uses SMS/MMS intents
Social composers launch respective apps via package-specific intents
No additional permissions required for basic sharing functionality
What Happens During Build
Essential Kit's build pipeline automatically:
iOS: Links
Social.frameworkandMessageUI.framework, configures sharing capabilitiesAndroid: Sets up Intent filters for sharing, configures package queries for social apps
You don't need to manually configure Xcode projects or Android manifests—Essential Kit handles all platform setup transparently.
Capability Checking
Before showing composers, check device capabilities to provide fallback options:
Mail Composer:
if (MailComposer.CanSendMail())
{
// Device has configured email accounts
SharingServices.ShowMailComposer(
toRecipients: new[] { "[email protected]" },
subject: "Support Request",
body: "Describe your issue.",
callback: null
);
}
else
{
Debug.Log("No email accounts configured");
// Show alternative sharing method
}Message Composer:
if (MessageComposer.CanSendText())
{
Debug.Log("SMS available");
if (MessageComposer.CanSendAttachments())
{
Debug.Log("MMS with attachments supported");
}
if (MessageComposer.CanSendSubject())
{
Debug.Log("Message subject supported");
}
}Social Share Composer:
if (SocialShareComposer.IsComposerAvailable(SocialShareComposerType.Facebook))
{
Debug.Log("Facebook sharing available");
}
if (SocialShareComposer.IsComposerAvailable(SocialShareComposerType.Twitter))
{
Debug.Log("Twitter sharing available");
}
if (SocialShareComposer.IsComposerAvailable(SocialShareComposerType.WhatsApp))
{
Debug.Log("WhatsApp sharing available");
}Always Check Availability: Different devices have different apps installed and services configured. Always check capability before showing composers and provide fallback options like ShareSheet for better user experience.
Testing Setup
Test sharing on physical devices with various configurations:
Device with no email accounts: Test mail composer unavailability fallback
Device with social apps installed: Verify social composers appear
Device with minimal apps: Test ShareSheet shows only available options
iOS and Android devices: Verify platform-specific behaviors
Next Steps
After enabling Sharing Services in settings:
Review Usage Guide to understand all sharing methods
Implement capability checking before showing composers
Test on physical devices with different app configurations
Implement fallback sharing options for unavailable composers
Last updated
Was this helpful?