[TIMOB-28113] iOS: App crashes when animation a view
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | Critical |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2020-09-11T14:25:18.000+0000 |
Affected Version/s | Release 9.1.0 |
Fix Version/s | Release 9.2.0, Release 9.1.1 |
Components | iOS |
Labels | engSchedule, regression |
Reporter | Josh Longton |
Assignee | Vijay Singh |
Created | 2020-09-08T16:17:34.000+0000 |
Updated | 2020-09-11T14:25:18.000+0000 |
Description
The customer is experiencing a crash when animating a view.
they have just upgraded their application from 9.0.3.GA to 9.1.0.GA, the crash is nor present on the earlier SDK.
*Testcase*;
{noformat}
var win = Ti.UI.createWindow({
backgroundColor: "white",
layout: "vertical"
});
var flipBtn = Ti.UI.createButton({
top: 50,
title: "Flip"
});
var controlView = Ti.UI.createView({
});
var view1 = Ti.UI.createView({
elevation: 20,
width: 200,
height: 200,
top: 100,
backgroundColor: "red"
});
controlView.add(view1);
var view2 = Ti.UI.createView({
elevation: 20,
width: 200,
height: 200,
top: 100,
backgroundColor: "green"
});
win.add(flipBtn);
win.add(controlView);
var isShowGreen = false;
flipBtn.addEventListener('click', function () {
if (isShowGreen) {
isShowGreen = false;
view1.show();
controlView.animate({
view: view1,
transition: Ti.UI.iOS.AnimationStyle.FLIP_FROM_LEFT
});
view2.hide();
} else {
isShowGreen = true;
view2.show();
controlView.animate({
view: view2,
transition: Ti.UI.iOS.AnimationStyle.FLIP_FROM_LEFT
});
view1.hide();
}
});
win.open();
{noformat}
*Expected*;
Animation to happen successfully
*Actual*;
{noformat}
[INFO] -[TiUIViewProxy propertyChanged:oldValue:newValue:proxy:]: unrecognized selector sent to instance 0x7fef51014a00
[DEBUG] ACA crash.report: {
[DEBUG] "aca_version" = "2.0.2";
[DEBUG] message = "-[TiUIViewProxy propertyChanged:oldValue:newValue:proxy:]: unrecognized selector sent to instance 0x7fef51014a00";
[DEBUG] meta = {
[DEBUG] handled = 0;
[DEBUG] };
[DEBUG] stack = (
[DEBUG] "TitaniumKit 0x000000010c5efde3 -[TiProxy replaceValue:forKey:notification:] + 648\nTitaniumKit 0x000000010c5caadb -[TiViewProxy setValue:forUndefinedKey:] + 212\nFoundation 0x00000001095a4bd6 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 325\nTitaniumKit 0x000000010c5ef8c1 -[TiProxy setValuesForKeysWithDictionary:] + 1886\nTitaniumKit 0x000000010c5dd5e4 -[TiAnimation animationCompleted:finished:context:] + 365\nTitaniumKit 0x000000010c5df7c9 __23-[TiAnimation animate:]_block_invoke.380 + 107\nUIKit 0x0000000134fc4888 -[UIViewAnimationStateAccessibility animationDidStop:finished:] + 118\nQuartzCore 0x000000010b3d2adc _ZN2CA5Layer23run_animation_callbacksEPv + 306\nsupport 0x000000010713e445 main + 1173\nlibdyld.dylib 0x000000010ff361fd start + 1"
[DEBUG] );
[DEBUG] }
[INFO] APSAnalyticsStore: crash.report
[DEBUG] APSAnalytics: Attempting to send 1 analytics event(s)
[DEBUG] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[TiUIViewProxy propertyChanged:oldValue:newValue:proxy:]: unrecognized selector sent to instance 0x7fef51014a00'
[DEBUG] *** First throw call stack:
[DEBUG] (
[DEBUG] 0 CoreFoundation 0x000000010d247e6e __exceptionPreprocess + 350
[DEBUG] 1 libobjc.A.dylib 0x0000000109c3a9b2 objc_exception_throw + 48
[DEBUG] 2 CoreFoundation 0x000000010d268b94 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
[DEBUG] 3 CoreFoundation 0x000000010d24c86c ___forwarding___ + 1436
[DEBUG] 4 CoreFoundation 0x000000010d24eb58 _CF_forwarding_prep_0 + 120
[DEBUG] 5 TitaniumKit 0x000000010c5efde3 -[TiProxy replaceValue:forKey:notification:] + 648
[DEBUG] 6 TitaniumKit 0x000000010c5caadb -[TiViewProxy setValue:forUndefinedKey:] + 212
[DEBUG] 7 Foundation 0x00000001095a4bd6 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 325
[DEBUG] 8 TitaniumKit 0x000000010c5ef8c1 -[TiProxy setValuesForKeysWithDictionary:] + 1886
[DEBUG] 9 TitaniumKit 0x000000010c5dd5e4 -[TiAnimation animationCompleted:finished:context:] + 365
[DEBUG] 10 TitaniumKit 0x000000010c5df7c9 __23-[TiAnimation animate:]_block_invoke.380 + 107
[DEBUG] 11 UIKitCore 0x000000011ecca938 -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] + 671
[DEBUG] 12 UIKitCore 0x000000011ec9b5c5 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 220
[DEBUG] 13 UIKitCore 0x000000011ec9bbbc -[UIViewAnimationState animationDidStop:finished:] + 276
[DEBUG] 14 UIKit 0x0000000134fc4888 -[UIViewAnimationStateAccessibility animationDidStop:finished:] + 118
[DEBUG] 15 QuartzCore 0x000000010b3d2adc _ZN2CA5Layer23run_animation_callbacksEPv + 306
[DEBUG] 16 libdispatch.dylib 0x000000010feb18cb _dispatch_client_callout + 8
[DEBUG] 17 libdispatch.dylib 0x000000010febdcdb _dispatch_main_queue_callback_4CF + 1042
[DEBUG] 18 CoreFoundation 0x000000010d1ab869 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
[DEBUG] 19 CoreFoundation 0x000000010d1a63b9 __CFRunLoopRun + 2041
[DEBUG] 20 CoreFoundation 0x000000010d1a58a4 CFRunLoopRunSpecific + 404
[DEBUG] 21 GraphicsServices 0x00000001128c1bbe GSEventRunModal + 139
[DEBUG] 22 UIKitCore 0x000000011e7cf964 UIApplicationMain + 1605
[DEBUG] 23 support 0x000000010713e445 main + 1173
[DEBUG] 24 libdyld.dylib 0x000000010ff361fd start + 1
[DEBUG] )
[DEBUG] libc++abi.dylib: terminating with uncaught exception of type NSException
{noformat}
This is regression from animation related PR https://github.com/appcelerator/titanium_mobile/pull/11666. Looking in this.
PR - https://github.com/appcelerator/titanium_mobile/pull/12028
FR passed waiting for 9_1_X and 9_3_X ports.
merged to master for 9.2.0 target. Backport PRs merged to 9_1_X and 9_3_X. If we do a 9.1.1 this would be included, but if not users can still install an sdk off the 9_1_X branch to get this fix:
ti sdk install -b 9_1_X
*Closing ticket*. Fix verified in SDK version
9.2.0.v20200911051822
, and9.3.0.v20200911052140
,9.1.1.v20200910063052
. *Test and other information can be found at:* https://github.com/appcelerator/titanium_mobile/pull/12028