Some builds crash deployed with testflight - unity3d

We've developed an AR app using Unity 2018.1.8f1 and AR Kit, we deploy on testflight to two iPads to test it.
One [0] iPad 2017 running iOS 12 beta 4, the other [1] iPad 2017 Pro iOS 11.
Both of them could run the testflight build that was deployed until after build number 50 where the iPad [1] would have problems, launching it you would see the unity splashscreen but immediately afterwards it crashes. This crash happens at the same time that AR Kit initializes, on non ar supported devices it crashes here as well.
Future builds would also fail on iPad[1]
Both iPads can downgrade to an older build and can run those versions fine. It can also take the same build and be installed via XCode and have it work there without crashing.
Does anyone know what could cause this issue and how to resolve it if it's related to the iPad used or something in the build process.

The problem occured when the model used was replaced with a new one (identical but with new textures)
The solution was to in Xcode under Build settings disable Compress PNG files & Remove Text metadata from PNG files.

Related

How Xcode-11.7 can build the project for iPhone(iOS-14) and also shows the debug log in Xcode console?

In my Macbook, i have Xcode 11.7 installed and somehow my iPhone OS updated to iOS-14.
Then i couldn't build and run my project to the iPhone as Xcode-11.7 doesn't have device support for iOS-14.
Scenario 01:
I downloaded Xcode-12 and copied the iOS-14 device support file to Xcode-11.7.
When i build the project by Xcode-11.7 for iPhone-iOS14. It's only install the app to my iPhone by showing an error pop up
but there are no log showing in the xcode console.
Then i found the Xcode-12 release note
Xcode 12 now encrypts the connection between Xcode and paired devices, protecting against an attacker in a privileged network position executing arbitrary code on connected iOS, iPadOS, watchOS, or tvOS devices during a remote debug session. (60386733) These security benefits are available when Xcode 12 connects to devices running iOS 14, iPadOS 14, watchOS 7, tvOS 14, or later versions. These OS versions also refuse debugger connections from older Xcode releases. Xcode 12 continues to support debugging for older OS versions, but without the new encryption.
By this notes, it is clear that Xcode-11.7 or lower version should not be able to show debug log in the console from iPhone which OS is 14 or higher even though we use the hacky method to put device support file.
Scenario 02:
Some of my colleague are using Xcode-11.7 to build on iPhone-iOS14. They are not getting any issue what i'm getting in Scenario 01. The difference is that they downloaded the iOS-14 device support file from a github repo instead of coping from Xcode-12. Then i also tried to copy the iOS-14 device support file from that github repo & fortunately it also worked for me!
Now my question is
How is that possible to connect the debug session with iPhone-iOS14 using Xcode-11.7 where apple official release note pointed that it should not work?
The copy of iOS-14 device support file from Xcode-12 to Xcode-11.7 is not working but why its working when dowloaded from github repo?

simulating app upgrade in iOS

I am trying to simulate an upgrade from version 2.0 to 2.1. I have version 2.0 hosted in testflight, so I did install it in my device. Then I tried running the app from xcode. However what happened is that the app did not get overlapped, instead it created two apps with the same name. How can I make it such that when I run the app from xcode it overlays the old version?
I've made sure that the bundle identifier is the same.
Well the info you can get while updating can be found # this link here.
when user updates an app, Documents folder is stored as is, including
NSUserDefaults (but, sometimes user download app via iTunes and
replace the whole application, crying 'OMG! update killed all my
levels progress!'); Application bundle is erased and replaced by new
one (anyway, it is readonly for user); Re-deployment of new build
version will be enough;
You can't access the appstore inside the simulator because: # link here
It's a simulator not an emulator. Even if there was an App Store in
the Simulator, none of the apps in the store would work since they are
compiled for ARM CPUs while the Simulator runs x86 code.
Another stack overflow # link here states:
Build and install your old version, generate some data, and then
install the new version on top of it.
For testing before submitting to the Appstore I generally download
from the AppStore again the old version, and then install with Xcode
the newer version - for your next update... ;-)
And another stack overflow (that I lost the link for) states:
No, the simulator runs i386 binaries and iPhone appstore apps are ARM
binaries apps.
iOS apps are compiled to machine code, Android apps are run in a
Virtual Machine using byte code and are translated to machine code at
the time they are run.
So no, I don't believe you can run it in the simulator, how ever you can have older projects saved on the iPhone and test both out. And the apple documentation is # this link here.
Read this: https://developer.apple.com/library/ios/technotes/tn2285/_index.html
You cannot simulate update in XCode (neither in simulator or connected device). You have to create IPA file and simulate update process via iTunes.

Xcode won't detect device

I'm having a bit of an issue testing my app using my iPhone. Last week I upgraded to Xcode 4.3. I was able to test my apps on my iPhone (which was running iOS 4.3). Today I upgraded my iPhone to iOS 5.1 and now Xcode wont detect my iPhone (btw SDK is 5.1).
I'm not too sure what to do, I've even tried changing the Deployment target in Xcode back down to 4.3, but still nothing.
Make sure the device is "Enabled for development" under Organizer in Xcode. I've seen cases, where Xcode doesn't recognise the device, because it wasn't setup to be a development device.
I had this problem but my device was already enabled for development. Here are the steps I took to get it working.
If you want to cheat, try the last step. That's what got it working for me!
Try restarting both Xcode and the device. Separately.
Make sure you're using the latest iOS SDK under Base SDK (in Targets / Projects > Build Settings) and that it's a greater version that what's running on your device
Check Project > Build Settings > iOS Deployment Target is less or equal to what's on your device.
It turned out, when I'd created a new project, it had chosen an iOS Deployment Target greater than my device version.

IPhone app builds successfully but will not deploy to device

XCode decided to mess around with my statically linked library (Three20) so I stripped it out and added using the python script. Now my app builds without any errors but will not actually deploy to the device. It builds and immediately returns "Finished running application name on device name". When I try to build on the simulator the outcome is similar except the simulator screen is just completely black.
The device is a iPhone 4 running 5.1 so the 3GS armv6 issue I've found on here is not the answer. Any ideas how I can rectify this?

iPhone OS Deployment Target after update to iPhone SDK 4

I just updated to iPhone SDK 4 and am trying to debug on my device with 3.1.3 installed. Before the update, I compiled with Base and Active SDK set to 3.1.3 and all was well. After the update, I'm limited to SDKs 4.0 and 3.2--setting the base to 4.0 and iPhone OS Deployment Target to iPhone OS 3.1.3, I'm able to build and install on my 3.1.3 device, but receive the following error:
Error from Debugger: mi_cmd_stack_list_frames: Not enough frames in stack
I'm not using anything specific to the newer SDK, as I haven't touched a bit of code, just updated the SDK/XCode. So what am I doing incorrectly? The application runs as expected on an iOS4-installed device. Are there changes to pre-existing API's that need to be weakly linked perhaps? Thanks for all help.
Have you tried removing the app completely from your dev device, doing a build -> clean all targets, and then build again to your device?
I found this answer on macforums. If it's correct, then you probably have a memory corruption problem in your app that is confusing the debugger. Perhaps over-releasing something somewhere.
This probably isn't related to the SDK you are compiling with. It's possible you had this problem in your app all along but it just didn't show up until things moved around with the new Xcode, SDK, etc.
EDIT - I just ran into this problem myself trying to update an older app of mine to 4.0. It would run fine in the simulator and would install and run on the device except it wouldn't run in the debugger on the device. Anyway, I finally decided it was the .xcodeproj file that was corrupt or bad in some way and created a new project, copied over my source files to the new project and now it all works again. It's a pain but it only took about 20 mins to duplicate all my settings and I spent a couple hours trying to get the debugger to work.
Myself (and probably many others) are concerned about "will I still be able to compile/install apps for v3.1.3 of the iPhone OS?"
And what version of xCode does it become IMPOSSIBLE to ever write v3.1.3 apps again?
(Without installing a second copy of an older version of xCode.)
I've read the mile-long document that Apple wrote on the subject... but it sure would be simpler to understand if they just LISTED the various versions of each... instead of writing long paragraphs.
If you have:
Mac OS version 10.x.x x
xCode version x.x.x
SDK version(s) x.x.x
you can produce apps for iPhone OS x.x.x through x.x.x?