How to disable App Extensions? - ios8

If I don't want the Pinterest app extension to show up in my UIActivityViewController, how can I remove it? Previously I could just add the activity type to the excludedActivityTypes array. That doesn't seem to work with app extensions.

Applications require a special entitlement to exclude individual extension-provided activity items. (Not 100% sure but) Managed devices can also have individual extensions blocked via MDM.

Related

Xamarin-iOS: host application will not run with share extension

My app setup is a basic new app with default viewController with the default classes for share extension on iOS 11.2.
The host AppDelegate class FinishedLaunching never gets called.
Just shows the launch screen and closes the app.
The sample Xamarin app provided also has the same issue.
Link to the sample app:
Share Extension sample
Any idea whats going wrong?
Do you want to open the app which you created with the share extension, when user clicks the share button to use this share extension? If so, this app should be called Containing App.
But unfortunately, there's no way to do this on iOS8.3+ except Today Extension. From this post we know that:
The intended approach for share extensions is that they handle all of
the necessary work themselves.
Also from the Apple documentation about extension:
An extension’s UI should be simple, restrained, and focused on
facilitating a single task.
Apple doesn't recommend us to open its containing app from extensions, actually it avoids that. If you want to retrieve data in containing app, you can set up an app group so that data can be shared between these two apps.

some of the iOS apps does not shows action extension feature in iOS8 devices

Basically when i do open in functionality in other apps basically it
will show tow options 1. open-in 2. extensions. But i am seeing some
of the apps not showing the other apps action extension feature. I do
not know how they are hiding it?. Or they doing something else to do
not show the other apps extensions other than iOS defaults action
extensions?.
Example:
YES: Mailbox, Dropbox, Box etc. - these app was able to show the other
apps action extension
NO: Evernote, Acompli, Zoho Docs - - these app does not shows the
other apps action extension.
Any idea? why evernote and Zoho not showing the other apps action extension feature?. Is there something they need to do on their side or i need to do on my side to make it show?.
Any help that might be really appreciated.
screenshots attached.
Action and Share extensions have an activation rule, which is stored as NSExtensionActivationRule in their Info.plist. These extensions only appear if the host app is sharing data that matches the activation rule. For example, if an app shares images and the extension can only handle text, the extension will not be displayed as an option in that app.

How to track events in extension?

Most iOS analytics tools (flurry, new relics) use the standard uiapplication delegate methods to upload events in batch, every minute or when the application terminate. I haven't seen any dedicated solution for extension (today, photo...) from these guys. What do you do for analytics in extension in ios8?
For now, I used two work arounds
1 - I used app group shared data https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html and I log the event when the user open the containing app
2 - My today extension allow user to openURL to open the containing app, I pass data in the params of the url.
In my WatchKit app, I use openParentApplication:reply: to pass a request to the host app and log my analytics from there.
Flurry has announced support for Apple Watch extensions. You can find out more in the developer documentation here:
https://developer.yahoo.com/flurry/docs/analytics/gettingstarted/technicalquickstart/applewatch/
It's possible that this will open the door for tracking activity within other extensions, but I haven't seen anything about it yet.

Preventing devices without a GL extension from downloading app from Google Play

Is it possible to make an app unavailable for devices without a specific OpenGL ES extension on Google Play store?
Since <supports-gl-texture> takes the extension name, not the texture format, can it be exploited for generic GLES extensions?
Yes I believe there is, for example:
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
This statement will prevent devices that do not support OpenGL es 2.0 from seeing your app in the playstore.
Try this:
String extensions = javax.microedition.khronos.opengles.GL10.glGetString(
GL10.GL_EXTENSIONS);
According to the docs, the extensions variable will contain a space-separated list of supported extensions to GL. So I think you can just use .contains("GL_OES_depth24"); or something. You're going to have to check some example content of whats returned to see how to check for it.
I don't know how to stop the app from coming up in google play store but you can just put this check at the beginning of your app that will tell users that you can't use this app or something.

Switch Off Universal Navigation in Google Marketplace Application

We have a Marketplace app in the new Marketplace that we do not want the universal navigation extension to be visible for.
In the setup you can uncheck "Enable Universal Navigation extension". It then forces you to "Enable Drive extension".
we don't want either of these options. We only want API access, which is granted by installing the app from the marketplace.
Does anybody know the solution to this?
Don't think that there is any solution, either one is required.
Simply point the universal navigation to any HTML page with general info or your company website, it doesn't hurt.
Actually I found a workaround to solve this problem.
I enabled a "Drive Extension" but configured the Drive extension so that it never shows up in Drive by setting a "Default File Extension" that will never occur - eg "neveroccur".
Using this approach there is no universal navigation and my app can access the APIs for the whole organization. Users cannot see a drive extension as it never activates because the file type does not exist.

Resources