We are getting an error:
[NsUrlConnetionInternalConnection_WithConnectionDisconnectFromConnection]:
message send to deallocated instance 0*7a58e60 while runnting an
iPhone application.
It is using a live webservice. But it is working with locally created webservice. Please give us a solution to solve it.
It seems like you've deallocated an instance of NSURLConnection that is still in use. Try using the Zombies instrument in Instruments to find the memory management history of the object and where you're breaking it.
Related
I want to use reverse Geocoding to get an address from a location coordinate inside my notification service extension.
But including this code.
GMSGeocoder().reverseGeocodeCoordinate(self.getLastSavedLocation().coordinate) { response, error in }
crashes the app (shown in attached image)
Removing this code runs the app fine. I am unable to figure out what did I do wrong. This same code works correctly inside the app but crashes in the notification extension, I tried using Apple's reverse geocoder that also works fine on extension, but GMSGeocoder crashes. Please let me know what can be done to fix it.
So, I contacted Apple technical support, and they clarified my issue.
Here is what they told me,
If you look at the crashing thread, you're crashing when you try to
initialize OpenGL from EAGLContext:
https://developer.apple.com/documentation/opengles/eaglcontext?language=objc
The issue here is that you cannot access graphics hardware "from the background":
https://developer.apple.com/library/archive/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/ImplementingaMultitasking-awareOpenGLESApplication/ImplementingaMultitasking-awareOpenGLESApplication.html
...which, in the case of an NSE, means you can't use them at all. Note
that while OpenGL is deprecated, that doesn't actually matter here.
The same crash would occur if they were using metal. Our low
We can't use level graphics APIs at all in an NSE.
So the solution is to use Google's Geocoding API (but it is not free to use).
https://developers.google.com/maps/documentation/geocoding/overview#ReverseGeocoding
i made an iPhone app that uses camera. It works fine in iPhone, no memory warnings at all. It is also running on iPod touch 4G but gives memory warnings and crashes after some time after getting level 2 warning.
If someone can point me the possible reason for this. Thanks.
The only way you are going to fix this is by being able to debug it on the device. I wrote this blog to explain how to debug EXC_BAD_ACCESS, which is what I assume you are getting
http://loufranco.com/blog/files/Understanding-EXC_BAD_ACCESS.html
The simplest things to do:
Run a Build and Analyze and fix every problem it finds (or at least rewrite it so that B&A doesn't think it's a problem) -- Having a clean B&A is a really good way to making sure you catch these problems early
Turn on Zombies and run your program -- this makes the last release sent to an object turn it into a zombie rather than dealloc it. Your program will leak tons of memory, but if you ever send a message to a zombie it will stop right there and you will see a bug that you need to fix, because in your real version, that would be a crash (sending a message to a dealloced object).
More techniques described at the link
It crashes on a specific operation or randomly?
if randomly,
use instrument to check your memory leaks and memory usage. It's hard to figure out where the problem lies in without going through all your app.
If been looking around the web and can't seem to find any good solutions to sending allowing your user to submit bug reports from your iPhone app.
How do you handle crashes and exceptions?
Do you send the error user-data to a server,
grab a log file from somewhere and attach,
or do you ignore it and pretend it never happened?
Anybody got any experience with this?
Update
I am aware of how to prepare you software testing it with Static Analysis, Leak Detection, User Testing etc.
But errors might still happen when a user (mis)using my software. Always assume your user is trying to break your software.
What I want to figure out is how (I, or rather the app) can provide me with useful data when/if errors happen. As they do even in top quality products – like my own ofc. :)
I'm looking anyone that has experience with allowing the use to send error reports, stack traces, logs etc. to see how they handle the problem.
Some people use built-in analytics like Flurry which will post exception data to Flurry's website which you can review later.
Also, Apple has a "crash log" reporting area on iTunes Connect, but I'm not sure if it works since I've yet to see something come through and I kinda doubt each and every person has run my apps flawlessly. Not saying I write poor code (hopefully), but not every device is created equal either so I have to imagine it has crashed at least ONCE. There's always the option of logging and sending to a server later though.
Most of the time though, if you give users your e-mail address within the app itself (like on an instructions or about screen), they will e-mail me about any issues. That's a little bit nicer since it gives you a chance to correct the issue before they hit the review forms on iTunes.
You can also try BugSense. It's free, realtime, error reporting for iOS
PS: I am one of the founders.
Crashes most of the time comes with problems of memory management. To test memory leaks and find in your code on to what areas you were leaking a memory. Use the Instruments if your using XCode.
In your XCode go to Run -> Run with performance tool -> Leaks.
You can check everything here when it comes to memory allocations.
Note: To avoid crashes, make sure you released objects correctly and check your scheduled timers as well.
Regards,
ZaldzBugz
i am integrating twitter in my iphone music application.i.e when a user clicks a song and then he click on the twitter tab the login page of twitter should be opened and when he enters his username and password and then he clicks on the post button the song name and the comment he has entered in the textview should be posted to his twitter id.
the problem is that when i am clicking on the post button on the command it is showing as posted but then suddenly the program stops giving me an error of “EXC_BAD_ACCESS”.
Please help in solving the problem
You can use Instruments with the Zombie template to find the solution to this bug. You're probably trying to message a deallocated object.
EDIT: On the WWDC Session video's there is a video with a nice and good explanation how to find these kind of bugs. You must be a registered developer to access these videos though.
May I recommend using ShareKit for Social Media integration ?
http://getsharekit.com/ I've used this myself and it's by far the easiest solution of integrating social media interaction in your app.
Hope this helps.
I wrote a blog that gives several approaches to finding EXC_BAD_ACCESS
http://loufranco.com/blog/files/debug-iphone-crash-EXC_BAD_ACCESS.html
Here is what is happening -- Your program is running a line of code that tries to read or write to a memory location that hasn't been mapped for your application. The most likely reason for this is that you have a bug that is corrupting memory or you are sending messages to deallocated objects.
It is very likely that the line of code that is running is not the bug -- it happened sometime before this.
I strongly recommend a Build and Analyze and scan-build, because it finds these kinds of bugs a lot. It will likely flag a lot of code in your project -- you should address each problem because it's likely a real problem that will cause a leak or crash.
After that, try suggestion #4 in the blog which will instruct the simulator to never deallocate any objects -- once an object is in the state where it would be deallocated, it will warn you if anyone sends it a message. This would have caused EXC_BAD_ACCESS, but now gives a good description of what is happening.
Obviously, you need to turn this off in the real application (or have a lot of leaks).
I have an iPhone app which communicates with a server to get the data being displayed. I have tested this app on a wifi connection and a good 3G connection. The app works without an issue. But if I test the app on a poor connection, the app crashes.
I get an XML from the server and parse it before displaying the data. I have put in the NSXMLParser method to show an alert if the parsing fails. The n/w connection code is also placed in try/catch blocks and we show an alert if the control goes to the catch block.
On a poor internet connection, the app just crashes (doesn't even go to the catch block) and checking the crash logs suggests the app could not get the complete response. Shouldn't it go to the catch block in that case? (I am using a wrapper class to make a synchronous connection)
This will always be an issue in any app using the internet if the connection is poor. Is there any way we can avoid this?
Thanks.
I am using the code provided here as the base for creating connections and getting the response
This isn't a direct answer, but may I suggest the ASIHTTPRequest library? I searched around for a long time looking for a good networking library and this seemed to be pretty bullet-proof through all sorts of connection issues.
It took me an afternoon to remove the lousy library I wrote and to integrate it. The other nice thing about it is that it can be done asynchronously.
It is available here: http://allseeing-i.com/ASIHTTPRequest/