My iOS App Terminated due to Memory Pressure when I am using Photos.app - objective-c

I am running my application on iOS 7.0.1 & iPod Touch 5th generation device. When I follow below steps my app quits with below error on Xcode 5 without any error in console
App quit Unexpectedly Terminated due to Memory Pressure
Steps:
1) Run my application using Xcode 5. Login & then go to Home
2) Click on Home button so that my app enters in background (I can see my app is in background)
3) Start inbuilt Photos app from iOS. Click 1 or 2 pictures
4) After taking 1-2 pictures , App quit Unexpectedly Terminated due to Memory Pressure
I am not doing anything in my app. When I checked the CPU usage its 0% & Memeory used = 15.2 MB
Also there is no other app running in the background except my app.
Can anybody help with this ? Thanks
I am not getting why this is happening. If I don't use Photos.app then app works smoothly.

There's nothing you can, or should, do about this. You application is no longer in the foreground, and the foreground app (photos) is asking for more memory. To supply this, iOS will terminate any apps running in the background. It doesn't matter how much memory your app is using, iOS will terminate background apps as long as the foreground app requires more memory.
Once your app enters the background you can expect it to be terminated at any time. To improve the user experience, you can look at Enabling State Preservation and Restoration in Your App. This in theory allows your app to start where it left off when the user comes back to it.

Related

Ionic 5 app unresponsive or freeze when maximize or notification drawer open in android

Getting strange issue for ionic 5 app,
Application works fine till it is in foreground.
Once application minimize and again maximize it is unresponsive , freeze on scroll , page routing are slow.
I have checked in logcat logs , it shows Skip 100 frames, Main thread doing too much work.
but app is just come back to foreground nothing changed.
also shows error activityResumeTrigger: not whiteListed /mainactivity.
I am using ionic 5.4.16
Hope someone answer it,
Forget to mention , i have implemented AWS App SYnc, is that is reason of main thread doing lots of work when app resume.

WatchOS app keeps crashing when being opened from remote notification

WatchOS app works normally if being opened from home screen. If I try to open it from remote notification screen (by tapping title label) two app behaviors can be spotted:
If application was loaded previously (I don't know how to name it, maybe better to tell that app is not killed by system or still present in memory). In this case application will load normally and do some action if asked (for example open some Interface Controller and show remote notification details).
If application was launched long time ago (or killed by system, unloaded from memory, in my case I'm stopping it in Xcode). If app receives remote notification in this state after tapping on title label of notification scene it will try to load for some time and finally crash (this may take 1sec or 1min). Or it will stuck with loading indicator shown - what is interesting that in this case if I'll try to attach watch extension process to Xcode debug it will show that app is launched and works (for example I can send some data from parent iOS app and watchOS app will receive it - triggered method in Extension delegate and do some stuff).
Googling I have found that watch apps can be killed by system if they take to much power when being launched, so I tried to remove any load while app is starting itself but with no success - it still keeps crashing.
The only close to mine situation that I've found so far was a topic in apple developers forum:
https://forums.developer.apple.com/thread/20553
I have been spotting the same logs like in topic when watching how watch app behave in Xcode/Devices, but after updating to WatchOS 3 (now 3.1 beta) and using new Xcode 8 (now 8.1 beta) I can't see any logs from WatchOS at all (just some system messages that watch screen was turned of and on).
Have any one spotted such issues while working with watchOS remote notifications? Any suggestion where to search for solution?

Why does my app restart by itself after crash

Ever since the first release of iOS 8 DP, I've seen strange behaviors of my app on all my testing devices running iOS 8. My app sometimes restarts itself automatically after crashes. In a particular case, the app kept crashing and restarting itself endlessly and drained the device battery rapidly which caught my attention. During the investigation of the battery consumption issue, I added some logic in the application delegate so that each time the app launches, it will append a time stamp to the NSUserDefaults, so that I can know exactly when the app launches. The experiments showed that the app did restart by itself when it crashed, however, it's not reproducible every time it crashes.
I've never read anything from any of Apple's documentations that says an app can restart by itself after a crash. I wonder if anyone have experienced similar issue in their apps. Most importantly, how to prevent the app from draining the battery if it keeps crashing and restarting by itself?

ios launch appstore from within my app causes my app to terminate

I'm trying to take users of My App to the AppStore for several different functions - like Upgrade to Full Version, Rate/Review or simply View another App I've developed. However, all of these are causing my App to Terminate when iTunes is launched on the device. I'm using some simple code and
have tried many combinations of URLs, all of which successfully get to where they are going. Here are the behaviors:
User clicks Rate App
Code directs them to the web via:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:[[MyApp defaultApp] itunesLink]]];
My App goes to the background, and my delegate's applicationDidEnterBackground is called successfully
As iTunes is coming up, my App is terminated. Happens whether I run via X-Code or on the device directly.
When I quit out of the store and look at the running processes on the device, my App is still shown there. I know it has been terminated from X-Code console, and when I try to restart it it starts fresh.
I've tried the itunesLink as either itms://itunes.apple.com/app/ or with http - all of which get to the correct end point. If I use www.google.com it works fine and my App is NOT terminated, just sent to the background and the website is displayed OK.
Other points are that when I run via the simulator, the openURL call returns failure and doesn't open any URL.
Any insights as to why my App would be terminating? It's acting like an iOS security feature or something which is shutting my App down, but I thought what I was doing was pretty standard stuff.
If anyone has seen anything similar, I'd really appreciate advice on the situation.
Your app could be terminated for a number of reasons. The best thing is to look at the device console using Xcode's Organizer:
Your app may simply be terminated as a result of low memory notifications. As soon as it moves to the background and the app store launches (iTunes and the app store both use plenty of memory) it can be killed to free up memory. In this case you will set messages from "jetsam" like this:
<Notice>: jetsam: kernel termination snapshot being created
<Warning>: Application 'UIKitApplication:com.yourapp[0x6337]' exited abnormally with signal 9: Killed: 9
You should use the Activity Monitor in Instruments to see how much memory your application is using. iOS will terminate the most memory-intensive applications first, so you should try to reduce your app's memory footprint.

Background app crashing current app

I'm building an app that uses the camera. As many know, the camera uses a lot of memory and often throws a memory warning.
The app works well and as expected. However, when streaming Spotify in the background, my app crashes.
Is there any way to stop/pause a background app?
in iOS, every app runs in its own sandbox environment that cannot interact with other apps which are running so there is no way your app can pass on any kind of instruction (pause/stop) to other app running in background.