I have created binding library to bind a Framework supposed to read smart card data (it is working properly on XCode), but in Xamarin.iOS app, the card reader is never been detected.
I'm using Tactivo card reader.
Note: I tried all possible scenarios in the binding library and now I believe it is not an issue of binding library, there should be some libraries required to be loaded while application deployment to be able to let the Framework to be triggered by inserting the card reader. Or it is something related to permissions and app capabilities.
App doesn't deal with the card reader at all!
Here you can find details about the binding library.
Can anyone help?
From the question it seems your app is successfully building and launching.
Such third party device integration requires some entries in the info.plist file's "Supported external accessory protocols" key.
Please check XCode sample and check if there is an entry for the "Supported external accessory protocols" key. If it is there, then you should add them in your Xamarin.iOS project's info.plist file.
I hope this may help!
Related
Is UI automation available for the main menu of the Apple TV and not a specific application? I already setup the whole UI testing thing using XCode and tried using the remote control but it is only available for the application that was defined using XCUIApplication.
So is it possible to control the whole system rather than a specific application? I was thinking of something similar to pyatv but using XCode since I might be able to get more information concerning the current focused apps and so on.
There is an API XCUIApplication(bundleIdentifier: ) to interact with not-AUT apps. You need to substitute the right identifier for this Springboard-like interface. Maybe it is a Headboard, but I'm not sure.
Bundle identifiers of tvOS apps https://github.com/rzakhar/XCTApps/blob/master/Sources/XCTApps/tvOS.swift
I have a UWP app created using Xamarin.Forms and I uploaded it on Microsoft Store, I enabled Microsoft to decide which platforms can I support, Xbox was automatically selected by Microsoft. I cant unfortunately test it since I dont have Xbox or any emulator available. But I am seeing that there are some downloads and Microsoft Developer Console shows the type as "Console"...
Now my question is on Xamarin.Forms doesnt have that idiom as Console, it is defined here as phone, tablet, desktop, tv, Unsupported... how to check for Xbox?
This is not built into Xamarin.Forms, so you will have to use Windows-specific API to recognize if the app is running on Xbox. You can implement a custom Dependency service that will have an interface which you will implement in UWP project. The documentation will tell you how to do it.
Then to check which type of device the app is actually running on you can check the value of:
Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily
This property contains a value depending on which type of hardware the app is currently open:
"Windows.Xbox"
"Windows.Mobile"
"Windows.Desktop"
"Windows.Team"
"Windows.IoT"
"Windows.Holographic"
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.
I'm doing the bare minimum here. Creating a cocoa app project, adding a MKMapView to the View Controller, and linking the MapKit framework. When I run the app, the control shows but is not rendering any tiles no matter the zoom level. Everything else works. I can see user location, set coords/regions, read them back, etc... It's just not rendering the tiles. It does show the grid that is loaded before the tiles are cached. Am I overlooking something? This is all that you need to do on iOS.
Please have a look at the debugger window. Is there something like
"Your Application has attempted to access the Map Kit API. You cannot access this API without an entitlement. You may receive an entitlement from the Mac Developer Program for use by you only with your Mac App Store Apps. For more information about Apple's Mac Developer Program, please visit developer.apple.com."
Then you have to add your developer account to your project.
I am having problems with exporting a working .ANE using the external accessory framework of Xcode/iOS. Let me briefly show what I did:
I took the Vibration example of the adobe website, I can successfully edit this example and create a .ANE which works on my iPad and force it to make a sound (vibration is not supported on iPad obviously). I then included elements of the framework that I developed, for a specific form of bluetooth communication with an external device.
This device can communicate to my iPad using the ExternalAccessory framework. It works great when I build an application in Xcode only. The problem is that people within my organisation are not used to work with objective-C so they asked me to make it compatible with AIR. Which I am extremely close to. Actually all my classes' logic seem to work and the different methods are called effectively. There is one problem though:
In order to make the External Accessory framework work I need to include the protocol of the external device in my plist. And the library example provided in the Vibration example does not seem to contain an info.plist so I do not know how to include the protocol in this library.
Can anybody help me? Maybe with specific experience in this direction, or by explaining to me how to create an info.plist file for my library. I think this is the only brick I need to complete my challenge.
FYI: I found out that the problem is in the protocol by debugging using the console of the Xcode Organiser, this is the error I get: ": ERROR - opening session failed as protocol [I deleted the protocol name for my organisation's sake] is not declared in Info.plist"
I managed to solve the problem, the trick is to edit the xml file that is generated along with your app. This should be entered into the code:
<iPhone>
<InfoAdditions>
<![CDATA[
<key>UISupportedExternalAccessoryProtocols</key>
<array>
<string> ... </string>
</array>
]]>
</InfoAdditions>
<requestedDisplayResolution>standard</requestedDisplayResolution>
</iPhone>
Then it will work correctly. (for ... enter your protocol)