I added an intents extension target to my project. It is embedded.
1) My app asks (and has) permission to use Siri.
2) My application's info.plist specifies a Siri Usage description
3) My target's "Supported Intents" row within its info.plist contains INSendMessageIntent, the one I'm trying to use.
4) I had to add my intent Bundle Extension to my developer account as an identifier using its specific Bundle Id. On the website I was able to add "Siri" support for app and app extension target. I was able to add Siri Capability to my main project and entitlements file, but I had to manually able to add it to the entitlements file for my extension: Siri was NOT a Capability option under "Signing and Capabilities" for my Target Extension within my app.
5) I have been running my extension target with "Siri" but have also tried it with app itself.
Please help. Thank you.
Post
Replies
Boosts
Views
Activity
"MyApp John Saying 'Hello, friend.'"
Looking for John...
I am trying to resolve contacts for an INSendMessageIntent (basically, decipher a recipient from intent.recipients (a list of INPerson objects) provided when the following function is called:
func resolveRecipients(for intent: INSendMessageIntent,
													 with completion: @escaping ([INSendMessageRecipientResolutionResult]) -> Void)
).
I was wondering where to RELIABLY retrieve the user's spoken String within each INPerson object (independent of whether it's in the user's contacts or not).
I can't tell based on the Documentation or any articles I've researched which of the variables within an INPerson object will be filled each time for me to process.
The relevant items of an INPerson object are below:
personHandle, nameComponents ,displayName ,contactIdentifier, customIdentifier
Any ideas?
Many system intents do not require the device to be unlocked, but all development examples seem to have system intents in App Extensions.
If I create a custom system intent NOT in an extension (or even just a regular System Intent, how can I ensure that it will run even if the device is locked?
I have certificates, identifiers, provisioning profiles, and a developer account over them all. Including my app extension target which is embedded in my app. Yet my app extension target does not allow me to add Siri to "Signing and Capabilities." The option, like the other developer options, aren't even available.
What do I do?
Note: my signing is automatic.
I have been unable to add Firebase/FirebaseAuth or anything else to my app extension target which is embedded in my Project. At first I tried adding the frameworks from clicking on the Target and adding to frameworks and libraries. However, I was unable to get a reference in my extension target... just my main app.
My Podfile is below. Without using Cocoapods, I can't get a reference to Firebase, but with Cocoapods I get errors like:
FBSDKCoreKit/FBSDKLoginKit from Firebase pod?: 'sharedApplication' is unavailable: not available on iOS (App Extension)
...and other "semantic" errors. In the case of the FBSDK, I'm not even using that unless it comes with Firebase, which I can't seem to find the details of.
Anyone have any ideas on how I can cleanly just put my database input code in my INSendMessageIntent... it's really that simple... I have to be overthinking this, right?
I've tried cleaning the build folder, deleting derived data, deleting podfile/pods/workspace/podfile.lock, clearing pod cache, redoing all of it, etc, etc, etc...
target 'UpdateMessages' do
	Comment the next line if you don't want to use dynamic frameworks
	use_frameworks!
	Pods for UpdateMessages
#pod 'Firebase/Auth'
#pod 'Firebase/Firestore'
end
Based on various sources like the source docs, I have implemented CallKit like below, but my app is not dialing. Any ideas? No errors are being reported, my provider supports VOIP, and my phone has wifi calling enabled.
Here is what I have:
let provider = CXProvider(configuration: CXProviderConfiguration(localizedName: "My App"))
provider.setDelegate(self, queue: nil)
let controller = CXCallController()
let transaction = CXTransaction(action: CXStartCallAction(call: UUID(), handle: CXHandle(type: .phoneNumber, value: "5555555555")))
self.controller.request(self.transaction, completion: { error in
												if(error != nil){
														print(error)
												}
extension ViewController : CXProviderDelegate {
		
	 func providerDidReset(_ provider: CXProvider) {
				}
		
func provider(_ provider: CXProvider, perform action: CXStartCallAction) {
action.fulfill()
}
	
		
	 func provider(_ provider: CXProvider, perform action: CXAnswerCallAction) {
						action.fulfill()
				}
		
		func provider(_ provider: CXProvider, perform action: CXEndCallAction) {
						action.fulfill()
				}
		
}