SiriKit: shortcut defined in IntentsDefinition file not showing up in the Shortcuts app on macOS? - sirikit

I haven't been able to add some basic SiriKit actions to my macOS app in macOS Monterey. To test this out, I created a new project, made it a macOS app with Storyboard. Then I added an intents definition file, and added a basic intent, with no inputs/outputs. I added the intent name to "Supported Intents" in the target "General" configuration.
When I build and run the app, the shortcut doesn't show up in the Apple Shortcuts app. I've tried looking for the "Siri" capability in "Signing & Capabilities" and it's not listed there (compared to a new iOS app where it would be).
I'm not sure what I'm missing here. Would love some help.
BTW, I'm using Xcode 13.1 on macOS Monterey RC.
This is what my Custom Intent looks like.

I had the same problem with our existing app. Deleting my app from my Mac (the current App Store version) and deleting the derived data in Xcode did the trick.

Related

ADB0020: Android ABI mismatch. How do I set ABI of target physical device?

I have a brand new Samsung A10 with Pie on it.
I'm attempting to run the Sample Application provided in MediaPlugin:
https://github.com/jamesmontemagno/MediaPlugin
At first I was getting this error when I tried to build:
Invalid value 'armeabi' in $(AndroidSupportedAbis). This ABI is no
longer supported. Please update your project properties to remove the
old value. If the properties page does not show an 'armeabi' checkbox,
un-check and re-check one of the other ABIs and save the changes.
Then I did some reasearch and went to Android Properties / Android Options / Advanced and unselected armeabo-v7a.
As I understand it this will remove 32 but support, which I'm fine with.
Now I get this error:
ADB0020: Android ABI mismatch. You are deploying an app supporting
'x86;x86_64;arm64-v8a' ABIs to an incompatible device of ABI
'armeabi-v7a;armeabi'. You should either create an emulator matching
one of your app's ABIs or add 'armeabi-v7a' to the list of ABIs your
app builds for.
I'm targeting a new A10 Samsung phone with Android Pie on it. I can't see where to set the 'device ABI', though why would a new Pie phone be interseted in armeabi-v7a anyway?
Where can I set the 'device ABI' or otherwise fix this?
I can't find anything on Google. Thanks.
UPDATE
I've found this work around which is as worrying as it is bizarre:
Untick the armeabi-v7a option
Build
Re-tick the option
Build
Deploy
from
https://forums.xamarin.com/discussion/146174/vs2019-error-this-abi-is-no-longer-supported
I'd like to understand what's going on here rather than just work around it.
This is only an issue with my A10 physical Samsung phone, in emulators it seems to work fine.
I got this error before. You could untick all the supported architectures to tick all of them like below. Delete the obj and bin folder of project to clean and rebuild. Most of times, it works.
Different Android devices use different CPUs, which in turn support different instruction sets. Each combination of CPU and instruction set has its own Application Binary Interface (ABI).
For more support of Android ABIs, you could refer to the Android ABIs guides.
https://developer.android.com/ndk/guides/abis
To fix this issue on a Xamarin.Forms Android application, Right click on your android project and then select Properties > Android Options > Advanced.
You will see a dropdown for supported architectures. Select x84 & x86_64.
The app should now build and run on the emulator.
go to your project folder and edit yourproject.csproj
and remove starting <AndroidSupportedAbis> line completely.
add:
<AndroidSupportedAbis>armeabi-v7a;x86_64;arm64-v8a;x86</AndroidSupportedAbis>
save and debug. (changes accept on visual studio)
Enjoy.
Do not setup retry abis on xamarin.
I changed to Debug mode from Release mode after signing a release.
For Mac:
Android Project -> Option -> Android Build -> Advanced. Then tick all.
Click Option from Solution Explorer for Android:
Click Android Build then Advanced:

Xamarin.Forms Mac AuthenticationContinuationHelper

Anyone try using Microsoft.Identy.Client package with Xamarin.Forms in MacOS project?
I try to implement OpenUrl method according to sample: https://github.com/Azure-Samples/active-directory-xamarin-native-v2/tree/master but in AppDelegate in MacOS project VS cannot see AuthenticationContinuationHelper class. Microsoft.Identity.Client class is limited:
Microsoft.Identity.Client in MacOS Project not show all items
At .Droid and .iOS project everything work properly.
Anyone was handled with this?
So there is a video from Build 2018 as well as the Slide Deck that discuss that. You need to make sure in your nuget settings you have the "show pre-release packages" checked, and then install the Microsoft.Identity.Client. I had the same issue until I did that, installed the nugets, cleaned and rebuilt the solution.
The problem with Xaramin.mac is that the library does not currently, nor does it sound like it will any time soon support the Xaramin.mac platform. This is mentioned in Open Issue #522 on the GitHub repository, after some further reading into it. That was dated on February 20th, with no news since then, so I don't believe they have it on their roadmap. Must be something with the way MacOS handles the brewer handoff, let alone the MacOS was just recently supported by some of their services in Azure, which makes me think there is not enough market share there yet in this space?

How do I change the iOS version for the Simulator?

Environment: Version 8.2 beta (8C30a)
My schema list only devices.
How do I change the iOS version in simulator?
I can see the available iOS Simulators...
...but they're not listed in the schema list.
Nor is their a way to discriminate amongst the iOS versions within schema manager.
The list of available simulators is dictated by three factors:
It will not show you simulators whose iOS version is prior to that of your current app's deployment target. If you want to see some recent, prior iOS simulators, make sure your app's deployment target is set accordingly.
If you go to Xcode "Preferences" - "Components", you can confirm which iOS simulators are installed on your machine.
In Xcode's "Devices" window (shift+command+2), as shown in the snapshot in your original question, you can configure particular simulator devices for your Xcode environment.
Open your xcode and press command + shift + 2.
Click on left bottom + button and your new simulator with required iOS version.
Click create, now you are ready to use the new simulator.
After adding the #availability & #availability flags which allowed me to get a successful compiled under and older distribution target, I noticed that the iOSes came back:

Defines Presentation context is not available prior to xcode 4.2 [duplicate]

I'm developing an app which is iOS 4 compatible, so my deployment target is set to iOS 4.0.
Whenever I drop a UINavigationController onto a UITabBar, I get these two warnings:
warning: Attribute Unavailable: Defines Presentation Context is not available prior to Xcode 4.2.
warning: Attribute Unavailable: Defines Presentation Context on iOS versions prior to 5.0.
The UINavigationController functions as expected, in fact, the entire app runs perfectly. But these two warnings are driving me nuts!
Also, the moment I delete the UINavigationController the warnings disappear.
Just uncheck the "Defines Context" checkbox in the attributes inspector. (Double-click on MainWindow.xib, select the navigation controller, then go to View->Utilities->Attributes Inspector.) That'll get rid of the warnings.
You are getting these warnings because you are using iOS 5.0 SDK features with a 4.x deployment target.
All, if not, most of the new 5.0 hotness, including ARC and Storyboards, is completely backwards compatible with iOS 4.x (I don't remember if 4.0 or 4.3 is the lowest supported version, check the docs), it will work as intended, but Xcode is going to warn you anyways.
You should be able to disable that warning if it really bothers you, but I wouldn't. That said, Apple does not currently accept applications built/archived with the Xcode 4.2 beta for submission to the App Store. This means you need to use Xcode 4.0/4.1 in a production environment.
Before we go any further, you should know that Xcode 4.2/iOS 5 is beta software, it is under NDA (you agreed to this when you joined the Apple developer program) and cannot be discussed in the public domain. This means you won't be able get much help from places in the public eye, like StackOverflow, as good as it can be. But, since I'm here and this is a very high level question, I can help :)
In the future, if you have iOS beta questions or issues, you should hit up the Apple Developer Beta Forums (an excellent resource, always search before you post), or #iphonedev on irc.freenode.net for not-beta stuff (I'll be there, say hi!)
If you're developing an application for release on the App Store:
You need to be developing with Xcode 4.0 or 4.1, Apple will not accept applications built/archived with 4.2. (I know I repeated myself, but people seem to miss this often)
And, although 4.2b7 supports developing for older frameworks better than previous Xcode betas have (by allowing you to install previous versions of the simulator), you will still find yourself accidentally using 5.0 SDK functions all over the place, as the code completion/interface builder very aggressively favors all of the new hotness. This is because the beta is for trying new things, not stable application development.
This means you need to switch back to using Xcode 4.0/4.1 for production, if you don't have it installed, or you overwrote the stable version with the beta, do not try to install 4.0/4.1 on top of the 4.2 beta, weird things will happen and both versions will start acting really weird and and Xcode will crash at least twice as often.
The best thing to do in this situation, is to follow the below steps. Make sure you don't skip anything, otherwise you'll have to restart the whole process.
Make sure you have your code committed and pushed up,
uninstalling Xcode like this temporarily removes git. (This was an
issue for me at work once)
Download the installers for Xcode 4.0/.1, and 4.2 if you intend to keep experimenting. (if you already
have both downloaded, this whole process won't take more than 5
minutes on an SSD)
Uninstall the Xcode beta from the command line using this command:
sudo <Xcode>/Library/uninstall-devtools --mode=all (more info here)
Restart your computer (this is important, do not skip it!!!)
Install the most recent non-beta version of Xcode and resume development.
If you want to use both versions of Xcode (4.0/4.1 and 4.2):
You must install the beta AFTER 4.0/4.1 is installed, otherwise you will be overwriting new things with old things, and this will give you many, many obscure headaches. I also recommend restarting between installations.
You need to install 4.2 after 4.0/4.1, and to a different folder (I use /Xcode4beta/, don't put it within the folder that contains 4.0/4.1, either). I've found I learn about the new hotness best if I keep separate iOS5 branches of my work, and update what I can when I have some free time.
If you have the iOS5 beta installed on your phone, and Xcode 4.0/4.1 won't let you build to your phone:
This is because Xcode needs to grab the debug symbols from the phone before it can be used for devleopment, but only the Xcode beta can do this for an iOS5 beta device, so follow these steps:
Make sure your phone is plugged in and turned on, and that your provisioning profile/certificates all check out.
Close the project in Xcode 4.0/4.1.
Open the project back up in Xcode 4.2, and check organizer. You should either already have a green dot next to your phone (assuming all of your provisioning is working), or it should be gathering the debug symbols. Let this finish, and then build your project. It doesn't need to be a successful build, nor do you have to install the application to the phone, sometimes you don't even need to build, Xcode can be a fickle mistress.
Close the project in Xcode 4.2.
Open the project back up in Xcode 4.0, you should now be able to build and install to your phone as you normally would.
Xcode 4.0/4.1 should now be able to use your device for development until you restart the computer.
Resolution is here:
How can I fix "Freeform Size simulated metrics are not available prior to Xcode 4.2" warnings?
You just need to change the development version of your xib file to Xcode 4.2 (default is Xcode 4.1)
View Controller and Navigation Controller setting or options name ( attributes inspector )
Define Context ( Checked ) unchecked.

Can't submit app with CorePlot using Xcode4

I created an application in XCode 4 that uses Core Plot.
I installed Core plot as an aditional SDK following the instructions from here:http://code.google.com/p/core-plot/wiki/UsingCorePlotInApplications (Install SDK)
The instructions for "static Library" haven't been updated yet fro XCode 4.
I can run the app in the simulator, install it on my iPhone and everything works just ok. I was even able to send it to beta testers using several services like TestFlight. For this, I had to generate an archive and then "share" by generating the .ipa file. No single problem here.
Now, when I try to validate/submit the app I got this error:
I'm selecting the "distribution" configuration, then product -> archive, then in the Organizer I try "validate" or "submit", but I always get this same result.
I also made sure that the "skip install" is set to NO. This part is confusion, Apple says it should be YES and many posts here say it should be NO. If I set it to YES, the app is not even archived.
At this point I'm not even sure if the issue is the "skip install" flag or core plot. I found this question: http://code.google.com/p/core-plot/issues/detail?id=280, so I think my issue may be related.
If I open the archive file, this is what is inside:
Any ideas/suggestions will be truly appreciated.
I had the same issue for both TestFlight and App Store.
The solution for me was to archive the app, and in the organizer select "Don't sign" when you try to validate/submit or share (in the case of TestFlight).
Hope this helps.

Resources