If an iOS app gets terminated by watchdog due to, for example, hanging the main thread, is that considered to be a crash or something different.
I'm asking because, according to google and AI, Crashlytics can detect and report these,but in my experience it does not.
If I deliberately cause a watchdog termination by for example sleeping on the main thread for a long time then these never appear in Crashlytics.
I know Apple folks here don't comment on non Apple software, so I'm not asking about Crashlytics, just wondering and interested about watchdog timeout terminations and how they differ from a "regular" crash.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
In Xcode I've:
select Product / Scheme / Edit scheme
tap on Archive on the left hand side of the
select post actions and + to add a new script
Then in there I have added a script I want to run on the archive after its created.
I'd like to be able to see the output the script churns out as it goes along but doesn't seem possible?
If I just add something like echo "hello" to the start of the script then I don't see "hello" visible anywhere when I build an archive (via Product/Archive).
I'm looking in the build navigator. Is there somewhere else to look or is it possible to get the logging into the navigator?
If I create an Xcode (version doesn't matter, 16.N )project of type framework then install some dependencies using SPM.
Then within the Frameworks and Libraries section, the Embed part is empty.
This doesn't happen if the project type is app rather than framework.
If I want to set this to embed or not embed then how can this be done if its not even visible, for that matter how can I tell what it is set to even?
I've got several Xcode iOS projects and in the Editor menu section there are dozen's of options, as in the diagram.
However if I create a new iOX Project (with Xcode 16.2) look at how sparse the Editor menu is. Why is that, why do they appear for other projects but not for a new one and why are the contents different?
If an Xcode project has some compiler flags set in Build Phases / Compile Sources, then is it possible to have those enabled if scheme A is selected and disabled if scheme B is selected.
Same question for things in Build Settings, such as Other Compiler Flags.
I suppose it could be achieved by having two targets, one with things enabled and one without, but for a very large complex project, duplicating targets is not necessarily an easy thing to do.
Topic:
Developer Tools & Services
SubTopic:
Xcode
The iOS documentation shows notification actions buttons with the text center aligned: https://developer.apple.com/documentation/usernotifications/declaring-your-actionable-notification-types
But there's no apparent way for an app to control this. The buttons are controlled and rendered by the system and the text is always left aligned.
Is there some way to get the text center aligned?
Trying to add some release test notes to a TestFlight build - but after clicking the blue save button nothing happens, nothing is saved.
I tried with two different browsers and two different Apple accounts, same thing with both.
Anybody else experiencing this issue?
If there is a Notification Service Extension which has the com.apple.developer.usernotifications.filtering entitlement, then does/how having that entitlement affect the preconditions for the NSE to be delivered a push?
Specifically, if the app has not prompted for requestAuthorization() is it expected that the push will be delivered to the NSE or not?
Thank you
How can experimentation and testing calling the AgeRangeService.shared.requestAgeRange() functionality be recreated easily?
The very first time I ran this the OS popped up a dialog, however it won't do so again, even after the app is deleted and the device re-started.
If one navigates to Settings/User/Personal Information/Age Range for Apps/Apps that have requested your age range appear here.
Then the names of apps appear here even after the app has been deleted. Therefore how can it be removed from this section?
Erasing and resetting the phone will presumably reset things back to a state such that the dialog can be presented again. But doing that and having to wait for that to complete each development or test run is impractical.
Is there an alternative?
Topic:
App & System Services
SubTopic:
General
On this page:
https://developer.apple.com/documentation/storekit/testing-age-assurance-in-sandbox
It says:
Start with a Sandbox account.
What is a Sandbox account and how does one set one up?
Just it just simply mean an Apple account id used for testing, or something else?
In the summary documentation about the declared Age Range API:https://developer.apple.com/news/?id=2ezb6jhj
It states: "The API will also return a signal from the user’s device about the method of age assurance, such as credit card or government ID"
But if the api itself, and its documentation is examined, there is no such mechanism nor mention of it: https://developer.apple.com/documentation/declaredagerange/agerangeservice
So my question is, is the first documentation incorrect, if not, then where and how to access the method of age assurance?
I'm trying to digest and understand the new set of APIs relating age verification that were released last week.
I have say that without some cohesive overview, example app, just a simple diagram showing the relationship of everything, its not at all clear to me what's going on nor what an app developer is expected to do to use these apis (I'm a senior engineer with 15 year's iOS experience, but hey maybe I'm just a bit slow in the head).
I have a few questions, but the topic of this post is what is the relationship between age verification i.e. between the declared age range/significant change and Permission Kit?
The documentation for the former mentions the Significant Change API/Topic (https://developer.apple.com/news/?id=2ezb6jhj / https://developer.apple.com/documentation/PermissionKit/SignificantAppUpdateTopic).
Now the Significant Change Topic is documented as being part of PermissionKit, however the documentation for that (https://developer.apple.com/documentation/permissionkit)
States emphatically at the top:
"Communication experiences using the PermissionKit framework are only available using iMessage."
Meaning you can't use PermissionKit for anything other than iMessage? If it doesn't mean that, then why does it state so?
If it does mean that, then how does an app which has nothing to do with iMessage make use of Significant Change - because this documentation:https://developer.apple.com/news/?id=2ezb6jhj
Is talking about using significant change for all apps, not iMessage.
So there is a contradiction here.
It an app receives a Voip push, but has to terminate the call, then if this happens a few times the OS is terminating the app (Message from debugger: Terminated due to signal 9) and then it stops delivering future pushes to the app.i.e. with code let endCallAction = CXEndCallAction(call: callUUID) let transation = CXTransaction(action: endCallAction) self.callController.request(transation) { (error) in } provider.reportNewIncomingCall(with: callUUID, update: callUpdate) { error in Model.priorityLog("GRUNT reportNewIncomingCall completion error \(String(describing: error))") completion() }
I'm working on an out-sourced application for a company and when a version of it built using ids and provisioning profiles from my Apple account it runs without problems.
However when it is built and run using the company's ids and provisioning profiles I am seeing an issue with it.
What is happening is when a notification service extension uses a call extension then the OS logs:
doQueryCallExtensionStatusWithDispatchGroup() COMPLETED WITH ERROR: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.CallKit.CallDirectory was invalidated: failed at lookup with error 159 - Sandbox restriction." UserInfo=
NSDebugDescription=The connection to service named com.apple.CallKit.CallDirectory was invalidated: failed at lookup with error 159 - Sandbox restriction.
I noticed that in the company's provising profile for the notification service extension the app identier prefix is different from the team identifer. In my own provisioning profile the app identifier prefix and team identifer are the same.
Could it be the case that this difference in identifiers within the provisioning profile is leading to the sandbox error message?
Attached is the notification service extension provisioning profle provided to me by the company (converted to a .plist for readability)
I'm currently using 4 extensions within my app and use a group in combination with UserDefaults.init(suiteName:) to share settings between the extensions and the app.
However I've just tried adding an unwanted communications extension and found that data writing to defaults, in the exact same way as the other extensions, isn't saved.
At first I noticed data written by the UCE wasn't present when the app tried to read it, so performed an experiment and found that while the extension is running, it can write and read data to user defaults, but the next time the extension runs, all that data has gone.
I've tried using the old and now default UserDefaults.synchronize() but it makes no difference.
Why is the UC extension different from every other extension? Is it possible to write and persist data from within it?
let groupName = "group.com.mycompany.appName"
let sharedDefaults = UserDefaults.init(suiteName: groupName)
var theValue = sharedDefaults!.value(forKey: "some key")
NSLog("\(theValue)") // prints nothing, despite the extension having previously run
sharedDefaults!.set("some value", forKey: "some key"))
sharedDefaults!.synchronize()
theValue = sharedDefaults!.value(forKey: "some key")
NSLog("\(theValue)") // prints "some value"