We've run into an unusual situation in which an ad-hoc build of our app crashes on one specific user's iPhone (iPhone 12 Pro Max). Other users with the same device have no issue. This device is running the iOS 15 Beta (8, I believe), but so are other devices that work.
The behavior is that the app launches, the splash screen is briefly shown, and then the app disappears. There are no crash logs for the event, but I do see entries in the log that indicate bootstrapping has failed. The error message is a bit inscrutable, so I'm not sure what to look at.
This is all complicated by it not being an actual native app, as it is written using React Native. So debugging is problematic.
Looking at the log below (see the 11:33:43.698190-0400 line), does anyone have a suggestion on what I should look for? Out of 60 testers, this is the only phone with the issue.
default 11:33:43.608231-0400 Spotlight [FBSSystemService][0xe7c9] Sending request to open "com.foo.mobile.thisapp"
default 11:33:43.608625-0400 SpringBoard [FBSystemService][0xe7c9] Received request to open "com.foo.mobile.thisapp" from Spotlight:406.
default 11:33:43.608738-0400 SpringBoard Received trusted open application request for "com.foo.mobile.thisapp" from <FBApplicationProcess: 0x1084c37e0; application<com.apple.Spotlight>:406(v468)>.
default 11:33:43.635600-0400 SpringBoard Executing request: <SBMainWorkspaceTransitionRequest: 0x28344de60; eventLabel: OpenApplication(sceneID:com.foo.mobile.thisapp-default)ForRequester(Spotlight.406); display: Main; source: Spotlight>
default 11:33:43.647737-0400 SpringBoard [FBWorkspaceEvent] Executing: <FBWorkspaceEvent: 0x284665a00; OpenApplication(sceneID:com.foo.mobile.thisapp-default)ForRequester(Spotlight.406)>
default 11:33:43.649306-0400 SpringBoard Asked to bootstrap a new process with identity: application<com.foo.mobile.thisapp>
default 11:33:43.649338-0400 SpringBoard Creating process (sync=true) with identity: application<com.foo.mobile.thisapp>
default 11:33:43.649426-0400 SpringBoard Created <FBWorkspace: 0x283194210; application<com.foo.mobile.thisapp>>
default 11:33:43.649518-0400 SpringBoard Bootstrapping application<com.foo.mobile.thisapp> with intent foreground-interactive
default 11:33:43.650264-0400 SpringBoard [Main] dispatch event:
<SBSceneReadySwitcherModifierEvent: 0x284698320; type: SceneReady; appLayout: <SBAppLayout: 0x281e6c080; primary: com.foo.mobile.thisapp:default; environment: main> {
configuration = full;
environment = main;
layoutItems = {
primary = <SBDisplayItem: 0x2849d13b0> {
type = App;
bundleIdentifier = com.foo.mobile.thisapp;
uniqueIdentifier = sceneID:com.foo.mobile.thisapp-default;
};
}
}>
default 11:33:43.654268-0400 runningboardd Acquiring assertion targeting application<com.foo.mobile.thisapp> from originator [daemon<com.apple.SpringBoard>:67] with description <RBSAssertionDescriptor| "FBApplicationProcess" ID:34-67-63886 target:application<com.foo.mobile.thisapp> attributes:[
<RBSDomainAttribute| domain:"com.apple.frontboard" name:"Bootstrap-Foreground" sourceEnvironment:"(null)">,
<RBSDomainAttribute| domain:"com.apple.frontboard" name:"Visibility" sourceEnvironment:"(null)">
]>
default 11:33:43.654411-0400 runningboardd Assertion 34-67-63886 (target:application<com.foo.mobile.thisapp>) will be created as active
default 11:33:43.654645-0400 runningboardd Executing launch request for application<com.foo.mobile.thisapp> (FBApplicationProcess)
default 11:33:43.654810-0400 runningboardd Creating and launching job for: application<com.foo.mobile.thisapp>
default 11:33:43.654988-0400 runningboardd _mutateContextIfNeeded called for com.foo.mobile.thisapp
default 11:33:43.671674-0400 mediaserverd <<<< FigCaptureDisplayLayoutMonitor >>>> -[FigCaptureDisplayLayoutMonitor _updateCurrentLayout:]: <FBSDisplayLayout: 0x1392c2630; displayIdentity: Main> { bounds = {{0, 0}, {428, 926}}; interfaceOrientation = "portrait (1)"; backlightLevel = 100; elements = { <SBSDisplayLayoutElement: 0x13922f140; com.apple.springboard.spotlight; frame: {{0, 0}, {428, 926}}; level: 0; role: embedded>; <SBSDisplayLayoutElement: 0x139270130; sceneID:com.foo.mobile.thisapp-default; bundleID: com.foo.mobile.thisapp; frame: {{0, 0}, {428, 926}}; level: 1; role: primary>; } timestamp = September 2, 2021 at 11:33:43 AM EDT;}
default 11:33:43.673667-0400 SpringBoard [Main] dispatch event:
<SBTransitionSwitcherModifierEvent: 0x283a3df00; type: MainTransition; transitionID: B611A8E7-B802-4298-8FB7-A9E960141B96; phase: Prepare; animated: YES; fromAppLayout: 0x0; toAppLayout: <SBAppLayout: 0x281e6c080; primary: com.foo.mobile.thisapp:default; environment: main>; fromEnvironmentMode: home-screen; toEnvironmentMode: application; pendingTermination: {(
)}; isSpotlightTransition: YES; dosidoTransitionDirection: 0>
default 11:33:43.697614-0400 runningboardd Invalidating assertion 34-67-63886 (target:application<com.foo.mobile.thisapp>) from originator [daemon<com.apple.SpringBoard>:67]
error 11:33:43.698190-0400 SpringBoard Bootstrapping failed for <FBApplicationProcess: 0x1084e9b50; application<com.foo.mobile.thisapp>:<invalid>> with error: <NSError: 0x28498d350; domain: RBSRequestErrorDomain; code: 5; reason: "Launch failed."> {
NSUnderlyingError = <NSError: 0x28498e2e0; domain: NSPOSIXErrorDomain; code: 85>;
}
default 11:33:43.698318-0400 SpringBoard [application<com.foo.mobile.thisapp>:-1] Now flagged as pending exit for reason: Bootstrap failed
default 11:33:43.698349-0400 SpringBoard [application<com.foo.mobile.thisapp>:-1] Connection to remote process was not established.
Interestingly enough, this appears to be some side effect of compiling with Fastlane and then using Fastlane to upload the artifact. If I archive the project manually and upload it to Firebase, the app works fine on the iPhone in question.
Related
I am doing some iPhone automation and want to observe call states of ongoing calls. I implemented a listener to read the idevicesyslog and fetch log output of com.apple.accessibility.heard, which is printing each state change similar to the following lines (stat=Sending and stat=Active):
ay 13 02:14:02 heard(HearingUtilities)[11392] <Notice>: -[HUComfortSoundsController callStatusDidChange:]:415 Phone call holding 0 [pending = 1, active = 0, avc = 0, endpoint = 1] - NSConcreteNotification 0x102f173f0 {name = TUCallCenterCallStatusChangedNotification: object = <TUProxyCall 0x102f47080 p=com.apple.coretelephony aPI=(null) svc=Telephony hdl=<TUHandle 0x103407870 type=PhoneNumber, value=+4912345, normalizedValue=+4912345, isoCountryCode=de> isoCC=de stat=Sending tStat=0 dR=0 fR=0 supportsR=1 uPI=57FCA1D2-D09F-4E23-A08A-3AD4B18B570D grp=(null) lSIUUID=00000000-0000-0000-0000-000000000001 lSIAccountUUID=AA1FC9E6-068E-4D86-B3B9-C1074658AFB2 hosted=1 endpt=1 callerNFN=(null) srcID=(null) aC=(null) aM=(null) iUB=1 vm=0 connStat=00 nMICS=0 sR=0 iSA=0 iSV=0 iSS=0 wHM=0 hSI=0 vST=0 iapST=0 oapST=0 vCA=<TUVideoCallAttributes 0x102f17330 remoteCameraOrientation=0 localVideoContextSlotIdentifier=0 remoteVideoContextSlotIdentifier=0> model=<TUCallModel 0x102f3e380 hold=1 grp=1 ungrp=1 DTMF=1 uMPS=1 aC=1 sTV=0> em=0 iFE=0 sos=0 sSR=1 sSUI=0 mX=0<\M-b\M^#\M-&>
May 13 02:14:14 heard(HearingUtilities)[11392] <Notice>: -[HUComfortSoundsController callStatusDidChange:]:415 Phone call holding 0 [pending = 0, active = 1, avc = 1, endpoint = 1] - NSConcreteNotification 0x10321ab80 {name = TUCallCenterCallStatusChangedNotification: object = <TUProxyCall 0x102f47080 p=com.apple.coretelephony aPI=(null) svc=Telephony hdl=<TUHandle 0x103330670 type=PhoneNumber, value=+4912345, normalizedValue=+4912345, isoCountryCode=de> isoCC=de stat=Active tStat=0 dR=0 fR=0 supportsR=1 uPI=57FCA1D2-D09F-4E23-A08A-3AD4B18B570D grp=(null) lSIUUID=00000000-0000-0000-0000-000000000001 lSIAccountUUID=AA1FC9E6-068E-4D86-B3B9-C1074658AFB2 hosted=1 endpt=1 callerNFN=(null) srcID=(null) aC=AVAudioSessionCategoryPhoneCall aM=(null) iUB=1 vm=0 connStat=11 nMICS=0 sR=0 iSA=0 iSV=0 iSS=0 wHM=0 hSI=1 vST=0 iapST=0 oapST=0 vCA=<TUVideoCallAttributes 0x102f17330 remoteCameraOrientation=0 localVideoContextSlotIdentifier=0 remoteVideoContextSlotIdentifier=0> model=<TUCallModel 0x1032596b0 hold=1 grp=1 ungrp=1 DTMF=1 uMPS=1 aC=1 sTV=1> em=0 iFE=0<\M-b\M^#\M-&>
Unfortunately, starting from newer iOS versions (maybe 15.4 or 15.x already, don't know exactly), the heard service is killing itself after 3 minutes:
May 13 02:28:03 heard(Accounts)[11501] <Notice>: "The connection to ACDAccountStore was invalidated."
May 13 02:28:03 heard(Accounts)[11501] <Notice>: "The connection to ACDAccountStore was invalidated."
May 13 02:30:21 heard(HearingUtilities)[11501] <Notice>: -[AXHeardController shutdownIfPossible]:355 heard still shouldn't be running. Shutting down.
It is restarting after i am opening the settings-> accessibility settings via phone menu. Does anybody have an idea what I can do about this? I thought about following things:
Include heard service / accessibility in an own app, so that it will stay online when app is active
Get call states in another way? I tried an observer inside an app, but when it is running in background, it will not react anymore.
Some iOS setting to enable it permanently
Will this be fixed in an upcoming version?
The com.apple.accessibility.heard seems to be an internal service, does anybody know how to deal with it now?
Otherwise i would also be happy for a hint how to solve this without observing logs. As I said, CallObserver in my swift app is problematic, as it is not working in background.
1.After downloading my app from TestFlight and then click it, or run from Xcode directly, the app is stuck on launch screen and cannot continue.
2.When connected with macOS, from the Console we can see some possibly related error in SpringBoard process:
Attempting to create a breadcrumb action for a scene handle which already has one (sceneID:#myAppName#-default). Are you trying to active an app that's already active?
...
[Main] dispatch event:
<SBMainTransitionSwitcherModifierEvent: 0x2837d7dc0; type: MainTransition; transitionID: xxx; phase: Complete; animated: YES; fromAppLayout: 0x0; toAppLayout: <SBAppLayout: 0x281500e80; primary: #myAppName#; environment: main>; fromEnvironmentMode: home-screen; toEnvironmentMode: application; pendingTermination: {(
)}>
The "pendingTermination: {()}" in this log does not appear when app can be launched normally.
And now we cannot see any logs in my app’s process.
3.Then when I lock the screen and unlock it, the iPhone shows nothing but a black background, and I cannot use my iPhone as usual. Here is the logs in the Console:
3.1 Lock screen:
[sceneID:#myAppName#-default] Setting deactivation reasons to: 'appSwitcher, systemAnimation' for reason: updateAllScenesForBand - Assertion added.
[sceneID:#myAppName#-default] Setting deactivation reasons to: 'appSwitcher' for reason: updateAllScenesForBand - Assertion removed.
Invalidating assertion 32-60-106090 (target:[application<#myAppName#>:7754](UIScene:com.apple.frontboard.systemappservices::sceneID%3A#myAppName#-default)) from originator [daemon<com.apple.SpringBoard>:60]
Calculated state for application<#myAppName#>: none (role: UserInteractiveNonFocal)
3.2 Unlock screen:
Acquiring assertion targeting [application<#myAppName#>:7754](UIScene:com.apple.frontboard.systemappservices::sceneID%3A#myAppName#-default) from originator [daemon<com.apple.SpringBoard>:60] with description <RBSAssertionDescriptor| "injecting inherited from "UIScene:com.apple.frontboard.systemappservices::com.apple.springboard" to 7754<UIScene:com.apple.frontboard.systemappservices::sceneID%3A#myAppName#-default>" ID:32-60-106093 target:7754<UIScene:com.apple.frontboard.systemappservices::sceneID%3A#myAppName#-default> attributes:[
<RBSHereditaryGrant| endowmentNamespace:com.apple.boardservices.endpoint-injection UIScene:com.apple.frontboard.systemappservices::com.apple.springboard>,
<RBSHereditaryGrant| endowmentNamespace:com.apple.frontboard.visibility UIScene:com.apple.frontboard.systemappservices::com.apple.springboard>
]>
Assertion 32-60-106093 (target:[application<#myAppName#>:7754](UIScene:com.apple.frontboard.systemappservices::sceneID%3A#myAppName#-default)) will be created as active
Calculated state for application<#myAppName#>: none (role: UserInteractiveNonFocal)
Finished acquiring assertion 32-60-106093 (target:[application<#myAppName#>:7754](UIScene:com.apple.frontboard.systemappservices::sceneID%3A#myAppName#-default))
[sceneID:#myAppName#-default] Setting deactivation reasons to: 'appSwitcher, systemAnimation' for reason: updateAllScenesForBand - Assertion added.
[sceneID:#myAppName#-default] Setting deactivation reasons to: 'appSwitcher' for reason: updateAllScenesForBand - Assertion removed.
4.After rebooting my iPhone, everything return to normal again.
This bug has happened for several times recently, but I have not encounter this kind of issue before.
Is it a bug in SpringBoard? Or it is a bug in my app, and what can I do to fix it?
Thanks.
Got this strange error when running a unit test. It only appears when attaching to the process when testing the target by Xcode. Testing the target without attaching debugger works. Running the test by command line tool also works. Any idea about the reason? Thanks!
DetailsThe request to open "org.cocoapods.UnitTestHost" failed.
Domain: FBSOpenApplicationServiceErrorDomain
Code: 1
Failure Reason: The request was denied by service delegate (SBMainWorkspace) for reason: Unspecified ("null").
User Info: {
BSErrorCodeDescription = RequestDenied;
FBSOpenApplicationRequestID = 0x2594;
}
--
The operation couldn't be completed. (null)
Domain: FBSOpenApplicationErrorDomain
Code: 1
Failure Reason: (null)
User Info: {
BSErrorCodeDescription = Unspecified;
}
--
Some related error messages from the console:
SpringBoard (SpotlightUI) Reply Error on 0x600000857000:Connection interrupted
runningboardd (RunningBoard) failed to get pid for label UIKitApplication:org.cocoapods.UnitTestHost[6d75][rb-legacy] : No such process (3)
runningboardd (RunningBoard) Failed to start job for application<org.cocoapods.UnitTestHost>: <NSError: 0x7fa02351ca80; domain: NSPOSIXErrorDomain; code: 3; reason: "No such process"> {
userInfo = {
RBLaunchdOperation = launch_get_running_pid_4SB;
RBLaunchdJobLabel = UIKitApplication:org.cocoapods.UnitTestHost[6d75][rb-legacy];
}
}
runningboardd (RunningBoard) Launchd says label UIKitApplication:org.cocoapods.UnitTestHost[6d75][rb-legacy] has never exited
runningboardd (RunningBoard) Removing job: <RBLaunchdJob: 0x7fa02491a110; UIKitApplication:org.cocoapods.UnitTestHost[6d75][rb-legacy]>
Check your scheme settings and make sure all empty settings are unchecked. After doing this restart Xcode and simulator. Product menu > Scheme > Edit Scheme > Run > Arguments > Environment Variables
If there is a checkmark there with an empty field next to it, then uncheck it.
Try resetting your simulator
sudo rm -rf /private/tmp/com.apple.CoreSimulator.SimDevice.*
If it doesn't work try to restart the system.
Check Mach-O Type of your app.
Usually this error appears when you try to run Mach-Object with inappropriate type like Dynamic Library/Bundle/Static Library/Relocatable Object File. To solve the issue select Project -> Build Settings. Search Mach-O Type, change type to Executable.
I have a wkwebview and I selected the checkbox 'inline playback' which is suppose to make any video in the wkwebview to not autoplay and stay in the webpage and not go full screen.
This worked fine for me until my Xcode updated to 11!
I now get the following error but it lets the auto playing video to go full screen, when before it wouldn't.
2019-09-27 22:26:43.654625-0400 RPD[3848:126819] [assertion] Error acquiring assertion: <NSError: 0x600000c9c7b0; domain: RBSAssertionErrorDomain; code: 2; reason: "Required client entitlement is missing"> {
userInfo = {
RBSAssertionAttribute = <RBSLegacyAttribute: 0x7fe141f30d60; requestedReason: MediaPlayback; reason: MediaPlayback; flags: PreventTaskSuspend | PreventTaskThrottleDown | WantsForegroundResourcePriority>;
}
}
I added the capability 'Background Modes' but enabling Audio, Airplay, Picture in picture does not do anything.
I'm using an NTP framework in my App and it makes use of ASyncUDPsocket, however this framework makes the App break after coming back from the background after a while.
NetworkClock source: https://code.google.com/p/ios-ntp/issues/attachmentText?id=8&aid=6136447331175276042&name=NetworkClock.m&token=ky6UNYWjqChe2rQkEv1a_VSDpqk%3A1372342874389
AsyncUdpSocket source: http://pastebin.com/tuKqpnqZ
Breakpoints are:
[self doSend:[self socketForPacket:theCurrentSend]];
And:
result = sendto(theNativeSocket, buf, (size_t)bufSize, 0, dst, (socklen_t)dstSize);
I tried suggestions here:
https://code.google.com/p/ios-ntp/issues/detail?id=8
But so far the app stills crashes with a iPhone backboardd[28] <Warning>: Application 'UIKitApplication:nl.app[0x8f48]' exited abnormally with signal 13: Broken pipe: 13 error.
How can I prevent this?