0
votes

I am trying to implement a share extension to my Xamarin.Forms app. And I followed these:

https://docs.microsoft.com/tr-tr/xamarin/ios/platform/extensions

https://docs.microsoft.com/en-us/samples/xamarin/ios-samples/ios8-share/

https://github.com/xamarin/ios-samples/tree/master/ios8/Share

And git repo above works when I run it. But I need to implement this for my xamarin forms project. So I did this steps:

  1. I right clicked to my xamarin forms solution. After I select add, new project. And I created "Share Extension (iOS)" project. (I choosed .Net Framework 4.7.2)

  2. A Share extension project is created with ShareViewController. I didn't do any change this.

  3. I opened info.plist of new created ShareExtension project. And I paid attention bundle identifier. For example my xamarin project's bundle identifier is "com.xamarin.test" and my share extension project's bundle identifier is "com.xamarin.test.share-extension"

  4. I selected MinimumOSVersion 10.0 of my main project and my share extension.

  5. In my project,NSExtension is following:

    NSExtension NSExtensionAttributes NSExtensionActivationRule NSExtensionActivationSupportsFileWithMaxCount 1 NSExtensionActivationSupportsImageWithMaxCount 1 NSExtensionActivationSupportsMovieWithMaxCount 1 NSExtensionActivationSupportsText NSExtensionActivationSupportsWebURLWithMaxCount 1 NSExtensionMainStoryboard MainInterface NSExtensionPointIdentifier com.apple.share-services

  6. After I cleaned whole solution and rebuilt it, I added to reference shared extension project's DLL to my Xamarin iOS project. After that I run the project (on iPhone 7 iOS 12.0 simulator).

When I open photos and I click share for a photo, I expect to see my app on share menu. But it doesn't work. I guess I missed a step but what is this, I don't know.

3

3 Answers

1
votes

Your problem is here:

After I cleaned whole solution and rebuilded, I added to reference shared extension project's dll to my xamarin ios project.

In the document, when it says about Container app project requirements:

It must maintain a reference to the Extension project.

You should right click the xamarin ios project --> Add a reference --> Choose the shared extension project. What you are doing is a opposite way.

So remove the wrong reference and add the new reference, clean and rebuild your solution, run again.

Update:

enter image description here

0
votes

Can Deployment Targets be different?I added Share extension it worked directly. Info.plist also looks correct. Is Deployment Target iOS 12+?

Edit: First answer is another question's answer. Let's think as if it didn't never exist :)

0
votes

As stated here, you want to make sure all the project references are correct. Another important thing when testing on a device, make sure you do so in release configuration with the linker on, as it is clarified here.

And finally, if you want to use your Xamarin.Forms UI (Xaml pages) in your extension, follow this recently published walkthrough.