64 bit app question

Hello

I got report that my app crash on iPhone6. I got crashlog screenshoot and there is info that app runs as 64 bit code. All my suspection go to CGAffineTransformRotate. I have not iPhone 6 for test, so debugging is not possible. It’s possible to compile code in VS as 64bit and run it on simulator? Or maybe any other idea like pressure iPhone6 to run 32bit code? Anyway I want to find out where is problem. For sure is not iOS version (I test on same on iPhone5 and also tested on iPhone 4 with older os)

b.r.

Sure, the simulator supports 64-bit (just x86_64, not arm64 of course) just fine.

Yep I found and marked only 64 bit compilation, but it’s working good on simulator. So this not resolve my problem. It’s possible to run only 32 bit code on iPhone 6? For sure ipa must contain both 32/64 code, so I cannot compile only 32 bit.

b.r.

technically, yes. just set the architectures to armv7(s) only. But Apple will no longer accept submissions w/o arm64 support. So you;only choice is to figure this out :(.

i’d be happy to run a quick test on my iPhone 6 if you like.

That’s bad :confused: I’ll prepare code with part which cause problem, because cannot send full project.

Okay I have prepared code which I’m sure make problems on 64bit devices. Don’t look at sense of code, because it’s taken from project and may looks nonsense :slight_smile: I try to leave all “unused” code to simulate original. Problems what I suspect lay in rotation CGAffineTransformRotate because when app start, it should rotate UIIMageView 90 degrees and it do on 32 bit devices, but on 64bit image is blank. To this point app should work. Clicking at button it should rotate it back and here app crash on iphone6. Please let me know if it works for You. I used Release configuration because it’s sent to Apple (TestFlight app), so use Release too.

64bitTestCode.zip (124.6 KB)

[EDIT]

Got info from boss, that version will commented CGAffineTransformRotate works, but app close after enter login&pass, so now at part where data is readed, or added to map or anything else :frowning: Looks like 64 bit version will have more surprises and need phone to test and find them all.

b.r.

It crashes with a BAD_ACCESS here: http://share.dwarfland.com/crY3. the local variable look good:

This is on iPad Air 2, latest iOS 9 Beta.

Thanks. My iPhone5s which I got is broken (cannot charge) :frowning: As I suspected, it crash on CGAffineTransformRotate because when I comment this lines then crash not appear. It crash on iOS 8.4 at my friend phone. Looks like broken transform values. On 32bit it have [0, 1, -1, 0, 0, 0]. Check on picture what 64bit code have. I checked on simulator now and it looks strange too, but it do not crash.

Can You print with NSLog: btn.znaczek.transform a,b,c,d,tx,ty values on line 180? To be sure if it’s not debugger wrong values.

NSLog("%@", NSStringFromCGAffineTransform(btn.znaczek.transform));

Correct values (from 64bit simulator and xcode code running on simulator) are:

[6.123233995736766e-17, 1, -1, 6.123233995736766e-17, 0, 0]

While on screenshot we see values on device:

[2.8376......179e-314, ....]

e-314 ??? 

It looks like first transformation totally destroy data (code on line 185). Memory address overvrote?
It’s bug for sure. Do I should open new topic with bug report or this one in enought?

Any tips to fix it fast?

b.r.

After disable all AffineTransformations, my app is working on 64 bit phones.
Any idea how to fix it? Do I need init transform matrix before use it or any AffineTransformation broke it? I bet that AffineTransform break matrix. Will have iPhone 6 at monday, so I can give more info.

b.r.

Problem is already fixed at enter link description here, so I mark it as fixed.