Post

Replies

Boosts

Views

Activity

Unable to upload app with iOS 16 background asset download extension to Testflight - invalid info.plist
I'm experimenting/testing the new background download extension. The documentation for it says that the applicationDidInstall() and applicationDidUpdate() methods are only called if the app is installed from the App Store or from Testflight (I tried installing via Apple Configurator 2 but they are not called then). Hence in order to check these out I have to first upload the app to Testflight, but there's an error about the info.plist - however the info.plist is created/populated using Xcode's target template for the extension, so if Xcode itself is incorrectly creating the info.plist how is one supposed to know what's wrong with it and how to fix it? This is the content of the info.plist that was generated: <key>EXAppExtensionAttributes</key> <dict> <key>EXExtensionPointIdentifier</key> <string>com.apple.background-asset-downloader-extension</string> <key>EXPrincipalClass</key> <string>$(PRODUCT_MODULE_NAME).BackgroundDownloadHandler</string> </dict> And the error uploading to Testflight P.S. There's no apparent relevant tag for this extension
1
0
988
Aug ’22
How is one supposed to create a Background Assets extension? There's no extension type for this existing in Xcode beta 5
I want to use features described in the background assets WWDC22 session, however with Xcode 14 Beta 5 there is no application extension of this type. There was an application extension type with beta 4, but there are two problems with this firstly Testflight doesn't recognize it so its impossible to upload and therefore use (because some of the features are documented as only working when the app is installed from Testflight/App Store). secondly, if one creates an extension using Xcode beta 4, then it complies with beta 4, but it won't compile with beta 5. Therefore it is currently impossible to even begin to start working with the background assets extension framework.
3
0
1.1k
Sep ’22
usernotifications.filtering entitlement prevents a contact with an image from being added/updated
My notification service extension has the com.apple.developer.usernotifications.filtering entitlement and it would appear that this is preventing a contact with an image from either being added or updated, any attempt to do so results in calls to CNContactStore.execute() throwing an CNInvalidRecords error. If the filtering entitlement is removed then there are no problems and the contact can be added/updated without problem. If the entitlement is present but the contact is added/updated without an image then it is also problem free. It is specifically adding a contact with an image that cannot be accomplished if the entitlement is present. I've encountered problems with this entitlement before - for example there are problems attempting to use a CXCallDirectoryManager from within a notification service extension with this extension. Quote from Apple on the call extension issue: "Because that entitlement can "hide" notifications, its sandbox profile is actually more restrictive than the standard NSE sandbox. That's what's preventing access to CXCallDirectoryManager, not the App ID properties.  -Kevin Elliott DTS Engineer, CoreOS/Hardware" I'd be appreciative if somebody from Apple could comment and confirm if the problems with updating contacts with an image with this entitlement is the same fundamental sandboxing issue? If so, I don't understand why a contact can be added with this entitlement, its only an issue if the contact has an image, does that imply a bug?
1
0
1k
Sep ’22
How to implement background asset downloading feature?
I want to use features described in the background assets WWDC22 session (https://developer.apple.com/videos/play/wwdc2022/110403/). In earlier versions of Xcode 14 beta there used to be a background asset extension target type, however this got removed in beta 5 and has still not been put back even though Xcode 14 RC is released. With Xcode 14 beta 4, if the background asset target was chosen then a bunch of template code was created, same as happens with any extension type. But if the background asset extension target type isn't even present in the Xcode 14 RC, how is one supposed to create an extension and use this new feature?
3
0
1.6k
Dec ’22
Why does the usernotifications.filtering entitlement stop UIScreen.main.bounds from working?
If UIScreen.main.bounds is called from within a notification service extension then the values returned as as you'd expect. But then if the com.apple.developer.usernotifications.filtering entitlement is added to the extension the values returned are (0.0,0.0,0.0,0.0). Why is that, why does this entitlement stop UIScreen.main.bounds from working?
0
0
663
Sep ’22
Xcode 14.1 beta: How do you run the backgroundassets-debug command?
If I run "man backgroundassets-debug" I get instructions/help/comments for using the backgroundassets-debug tool to simulate the background assets download framework (which has been added back to Xcode 14.1 beta 1 after being removed from Xcode 14 beta 3) But how do you actually run the backgroundassets-debug tool itself? "backgroundassets-debug -h" for example results in a command not found message. I tried searching for the tool within the Xcode 14.1 package but can't see it anywhere running "xcode-select -p" displays "/Applications/Xcode-beta.app/Contents/Developer" And "xcode-select -v" displays "xcode-select version 2395" Within Xcode preferences, command line tools is set to Xcode-beta 14.1
1
0
994
Sep ’22
Issues with https auth challenge and background asset download extension
I'm trying to get a background asset extension working with iOS 16.1/Xcode 14.1. I'm able to succesfully download a file when using BADownloadManger from within the app, but not if the extension tries to download the same file. I've discovered its not possible to use a url with http for the asset download as the OS performs a check and throws an exception saying only https is accepted. However when you use a https url there's an authentication challenge. I implemented the auth challenge method of BADownloadManagerProtocol within the app (it completes with AuthChallengeDisposition.performDefaultHandling) and the file is sucessfully able to be downloaded when the download is initiated from within the app. However, the same file cannot be downloaded when its downloaded from the extension. I implemented the BADownloaderExtension: didReceive challenge method within the extension (which returns the same thing, AuthChallengeDisposition.performDefaultHandling) however when the extension is attempted to be invokved (using the backgroundassets-debug command line tool) then the handset logs this: Failed to send -[BADownloaderExtensionProxy sendAuthenticationChallenge:download:completionHandler:]_block_invoke and the download fails. Why does the download succeed from the app but not from the extension? Why is the OS saying it can't send the auth challenge when I'm implemented the relevant method of BADownloaderExtension?
1
0
527
Oct ’22
How to view TSIs?
In this section of this web site https://developer.apple.com/account/#CodeLevelSupportCard its possible to view a historical list of submitted TSIs, but there's nothing in their content which is clickable. Looking around elsewhere, there doesn't appear to be anywhere or anyway to view the original question and the responses in submitted TSIs? Is that really the case, or is there a bug in the Apple web site and they are supposed to be viewable?
2
0
1.5k
Sep ’23
iOS 16.1 is setting Personal Focus Smart Activation to be on by default - is there a way an app can detect if a focus mode currently active or not
As a user, I've been hit several times missing calls and notifications when I was expecting them. I've just figured out why that is - its because iOS 16.1 is automatically setting Smart Activation to on for Personal Focus. So I kept missing phone calls because the iPhone had been turning on Personal Focus when I was unaware it was. As well as blocking calls, it also doesn't display any notification. (I never use this focus feature, I didn't even know it existed until now, so for it to be enabled by default is absolutely ridiculous behavior. This is iOS 16.1 beta yet but its so close to the release date of 16.1 it must be the final behavior). Now with my developer hat on, I would like my application to detect if notifications are being suppressed due to a focus's do not disturb. Is there an API available for an app to determine if a notification has not been displayed to the user due to this for non communication type apps? Just a regular app that receives user-directed push messages and needs to know if they were displayed to the user.
0
0
1.4k
Oct ’22
What is an applicationName token?
I'm looking at this tutorial on app intents and shortcuts: https://arctouch.com/blog/implementing-app-shortcuts-intents And it says "Each phrase also has to contain your app name. To make it easier, you can provide the system with a list of synonyms for your app name and then use the applicationName token instead of your app name as a string literal" But it doesn't provide an example of using an applicationName token. I've tried searching for this but can't find anything. What is the applicationName token and what might an example of it being used be in a shortcut?
1
0
1.7k
Oct ’22
Why do some call blocking apps have multiple call extensions instead of just one?
Truecaller uses 4 call extension, Hiya has 3 and RoboKiller has 2. But why? There's no limitation or lack of functionality from just using one, why have multiple with the additional complexity of managing multiple ones within the app. I can't think of any possible reason for this, so I'm mystified why so many call blocking/identification apps have lots of them. Are they storing data in a database which doesn't support lazy loading / the ability to read a set of data in chunks, so instead they create multiple databases?
0
0
590
Oct ’22
So its not possible for an app to have more than one action extension?
I added two actions extensions to my app, however if from the iPhone's call history, Share Contact is selected, then Edit Actions, then only one of the action extensions is visible (they both have the same NSExtensionActivationRule, but the intention being they'll have different action names and perform different actions). So presumably, having more than one action extension just isn't possible. Could somebody please confirm if that is the case or not.
0
0
524
Oct ’22
Push tokens: how to get a user/app to run after users transfers to a new phone?
If the user installs an application which uses push notifications onto iPhone A and then runs the app then the app will send the push token to the server (and from that point one the app should detect if the push token changes and send the new token to the server). However there's no way that the app can do this in the situation where the user backs up iPhone A to iCloud and then restores to iPhone B. If the user doesn't explicitly launch the application, then the application has no chance to detect that the push token will have changed, and so meanwhile the server is sending pushes using the token from phone A but the user now is using phone B. User's won't know they have to launch an app on phone B, and there's no way the app can launch itself, so the user's now have a non functioning app but they don't realise it. There must a lot of apps using push that face this situation, yet there's no solution? I was hoping iOS 16's background asset download might be a solution to this - if the extension gets called after restoring from iCloud it could detect the device change and thus push token change and post a notification to the user telling them they need to launch the app, but this extension appears to be functionally sandboxed and its not possible to post a notification from within it (unlike many other extensions).
1
0
564
Nov ’22
Unable to upload app with iOS 16 background asset download extension to Testflight - invalid info.plist
I'm experimenting/testing the new background download extension. The documentation for it says that the applicationDidInstall() and applicationDidUpdate() methods are only called if the app is installed from the App Store or from Testflight (I tried installing via Apple Configurator 2 but they are not called then). Hence in order to check these out I have to first upload the app to Testflight, but there's an error about the info.plist - however the info.plist is created/populated using Xcode's target template for the extension, so if Xcode itself is incorrectly creating the info.plist how is one supposed to know what's wrong with it and how to fix it? This is the content of the info.plist that was generated: <key>EXAppExtensionAttributes</key> <dict> <key>EXExtensionPointIdentifier</key> <string>com.apple.background-asset-downloader-extension</string> <key>EXPrincipalClass</key> <string>$(PRODUCT_MODULE_NAME).BackgroundDownloadHandler</string> </dict> And the error uploading to Testflight P.S. There's no apparent relevant tag for this extension
Replies
1
Boosts
0
Views
988
Activity
Aug ’22
Xcode 14 Beta 5 - Background download extension target has gone
In Xcode 14 Beta 4, there was a target type for the new background download extension. With Beta 5 this target type has been removed. So with Beta 5 how is one supposed to create a target of this type?
Replies
0
Boosts
0
Views
382
Activity
Aug ’22
How is one supposed to create a Background Assets extension? There's no extension type for this existing in Xcode beta 5
I want to use features described in the background assets WWDC22 session, however with Xcode 14 Beta 5 there is no application extension of this type. There was an application extension type with beta 4, but there are two problems with this firstly Testflight doesn't recognize it so its impossible to upload and therefore use (because some of the features are documented as only working when the app is installed from Testflight/App Store). secondly, if one creates an extension using Xcode beta 4, then it complies with beta 4, but it won't compile with beta 5. Therefore it is currently impossible to even begin to start working with the background assets extension framework.
Replies
3
Boosts
0
Views
1.1k
Activity
Sep ’22
usernotifications.filtering entitlement prevents a contact with an image from being added/updated
My notification service extension has the com.apple.developer.usernotifications.filtering entitlement and it would appear that this is preventing a contact with an image from either being added or updated, any attempt to do so results in calls to CNContactStore.execute() throwing an CNInvalidRecords error. If the filtering entitlement is removed then there are no problems and the contact can be added/updated without problem. If the entitlement is present but the contact is added/updated without an image then it is also problem free. It is specifically adding a contact with an image that cannot be accomplished if the entitlement is present. I've encountered problems with this entitlement before - for example there are problems attempting to use a CXCallDirectoryManager from within a notification service extension with this extension. Quote from Apple on the call extension issue: "Because that entitlement can "hide" notifications, its sandbox profile is actually more restrictive than the standard NSE sandbox. That's what's preventing access to CXCallDirectoryManager, not the App ID properties.  -Kevin Elliott DTS Engineer, CoreOS/Hardware" I'd be appreciative if somebody from Apple could comment and confirm if the problems with updating contacts with an image with this entitlement is the same fundamental sandboxing issue? If so, I don't understand why a contact can be added with this entitlement, its only an issue if the contact has an image, does that imply a bug?
Replies
1
Boosts
0
Views
1k
Activity
Sep ’22
How to implement background asset downloading feature?
I want to use features described in the background assets WWDC22 session (https://developer.apple.com/videos/play/wwdc2022/110403/). In earlier versions of Xcode 14 beta there used to be a background asset extension target type, however this got removed in beta 5 and has still not been put back even though Xcode 14 RC is released. With Xcode 14 beta 4, if the background asset target was chosen then a bunch of template code was created, same as happens with any extension type. But if the background asset extension target type isn't even present in the Xcode 14 RC, how is one supposed to create an extension and use this new feature?
Replies
3
Boosts
0
Views
1.6k
Activity
Dec ’22
Why does the usernotifications.filtering entitlement stop UIScreen.main.bounds from working?
If UIScreen.main.bounds is called from within a notification service extension then the values returned as as you'd expect. But then if the com.apple.developer.usernotifications.filtering entitlement is added to the extension the values returned are (0.0,0.0,0.0,0.0). Why is that, why does this entitlement stop UIScreen.main.bounds from working?
Replies
0
Boosts
0
Views
663
Activity
Sep ’22
Xcode 14.1 beta: How do you run the backgroundassets-debug command?
If I run "man backgroundassets-debug" I get instructions/help/comments for using the backgroundassets-debug tool to simulate the background assets download framework (which has been added back to Xcode 14.1 beta 1 after being removed from Xcode 14 beta 3) But how do you actually run the backgroundassets-debug tool itself? "backgroundassets-debug -h" for example results in a command not found message. I tried searching for the tool within the Xcode 14.1 package but can't see it anywhere running "xcode-select -p" displays "/Applications/Xcode-beta.app/Contents/Developer" And "xcode-select -v" displays "xcode-select version 2395" Within Xcode preferences, command line tools is set to Xcode-beta 14.1
Replies
1
Boosts
0
Views
994
Activity
Sep ’22
Issues with https auth challenge and background asset download extension
I'm trying to get a background asset extension working with iOS 16.1/Xcode 14.1. I'm able to succesfully download a file when using BADownloadManger from within the app, but not if the extension tries to download the same file. I've discovered its not possible to use a url with http for the asset download as the OS performs a check and throws an exception saying only https is accepted. However when you use a https url there's an authentication challenge. I implemented the auth challenge method of BADownloadManagerProtocol within the app (it completes with AuthChallengeDisposition.performDefaultHandling) and the file is sucessfully able to be downloaded when the download is initiated from within the app. However, the same file cannot be downloaded when its downloaded from the extension. I implemented the BADownloaderExtension: didReceive challenge method within the extension (which returns the same thing, AuthChallengeDisposition.performDefaultHandling) however when the extension is attempted to be invokved (using the backgroundassets-debug command line tool) then the handset logs this: Failed to send -[BADownloaderExtensionProxy sendAuthenticationChallenge:download:completionHandler:]_block_invoke and the download fails. Why does the download succeed from the app but not from the extension? Why is the OS saying it can't send the auth challenge when I'm implemented the relevant method of BADownloaderExtension?
Replies
1
Boosts
0
Views
527
Activity
Oct ’22
How to view TSIs?
In this section of this web site https://developer.apple.com/account/#CodeLevelSupportCard its possible to view a historical list of submitted TSIs, but there's nothing in their content which is clickable. Looking around elsewhere, there doesn't appear to be anywhere or anyway to view the original question and the responses in submitted TSIs? Is that really the case, or is there a bug in the Apple web site and they are supposed to be viewable?
Replies
2
Boosts
0
Views
1.5k
Activity
Sep ’23
iOS 16.1 is setting Personal Focus Smart Activation to be on by default - is there a way an app can detect if a focus mode currently active or not
As a user, I've been hit several times missing calls and notifications when I was expecting them. I've just figured out why that is - its because iOS 16.1 is automatically setting Smart Activation to on for Personal Focus. So I kept missing phone calls because the iPhone had been turning on Personal Focus when I was unaware it was. As well as blocking calls, it also doesn't display any notification. (I never use this focus feature, I didn't even know it existed until now, so for it to be enabled by default is absolutely ridiculous behavior. This is iOS 16.1 beta yet but its so close to the release date of 16.1 it must be the final behavior). Now with my developer hat on, I would like my application to detect if notifications are being suppressed due to a focus's do not disturb. Is there an API available for an app to determine if a notification has not been displayed to the user due to this for non communication type apps? Just a regular app that receives user-directed push messages and needs to know if they were displayed to the user.
Replies
0
Boosts
0
Views
1.4k
Activity
Oct ’22
What is an applicationName token?
I'm looking at this tutorial on app intents and shortcuts: https://arctouch.com/blog/implementing-app-shortcuts-intents And it says "Each phrase also has to contain your app name. To make it easier, you can provide the system with a list of synonyms for your app name and then use the applicationName token instead of your app name as a string literal" But it doesn't provide an example of using an applicationName token. I've tried searching for this but can't find anything. What is the applicationName token and what might an example of it being used be in a shortcut?
Replies
1
Boosts
0
Views
1.7k
Activity
Oct ’22
Why do some call blocking apps have multiple call extensions instead of just one?
Truecaller uses 4 call extension, Hiya has 3 and RoboKiller has 2. But why? There's no limitation or lack of functionality from just using one, why have multiple with the additional complexity of managing multiple ones within the app. I can't think of any possible reason for this, so I'm mystified why so many call blocking/identification apps have lots of them. Are they storing data in a database which doesn't support lazy loading / the ability to read a set of data in chunks, so instead they create multiple databases?
Replies
0
Boosts
0
Views
590
Activity
Oct ’22
So its not possible for an app to have more than one action extension?
I added two actions extensions to my app, however if from the iPhone's call history, Share Contact is selected, then Edit Actions, then only one of the action extensions is visible (they both have the same NSExtensionActivationRule, but the intention being they'll have different action names and perform different actions). So presumably, having more than one action extension just isn't possible. Could somebody please confirm if that is the case or not.
Replies
0
Boosts
0
Views
524
Activity
Oct ’22
Push tokens: how to get a user/app to run after users transfers to a new phone?
If the user installs an application which uses push notifications onto iPhone A and then runs the app then the app will send the push token to the server (and from that point one the app should detect if the push token changes and send the new token to the server). However there's no way that the app can do this in the situation where the user backs up iPhone A to iCloud and then restores to iPhone B. If the user doesn't explicitly launch the application, then the application has no chance to detect that the push token will have changed, and so meanwhile the server is sending pushes using the token from phone A but the user now is using phone B. User's won't know they have to launch an app on phone B, and there's no way the app can launch itself, so the user's now have a non functioning app but they don't realise it. There must a lot of apps using push that face this situation, yet there's no solution? I was hoping iOS 16's background asset download might be a solution to this - if the extension gets called after restoring from iCloud it could detect the device change and thus push token change and post a notification to the user telling them they need to launch the app, but this extension appears to be functionally sandboxed and its not possible to post a notification from within it (unlike many other extensions).
Replies
1
Boosts
0
Views
564
Activity
Nov ’22
Is it possible to interact with a widget without launching the app?
Is it possible to interact with a widget without the app launching, and also without long pressing followed by edit? I'm wondering if a scenario such as the user tapping the widget and that causing the pasteboard to be read, and then some content updated in the widget is possible without the app itself launching
Replies
0
Boosts
0
Views
540
Activity
Nov ’22