Titanium SDK 6.1.1.GA 가 릴리즈 되었습니다.

6.1.0.GA는 좀 많이 뜯어구쳐서 버그가 약간 있었던터라 금방 나왔네요.

이제 6.0.3.GA 앱들 SDK 업데이트 해야겠습니다.

역시 대부분 최소한 x.x.1이 나와야 써볼만 ㅋ

1개의 좋아요

저는 맥북프로 디자인이 바뀌면 첫번째 버전을 썼는데 같은 맥락에서 바로 그 다음버전을 노렸어야 했는데.ㅠㅠ

1개의 좋아요

아이폰도, 아이패드도, 맥북도ㅋㅋㅋ 세상의 진리군요.

저는 6.1.1.GA로 빌드하니까 오브젝트 생성하는데 아규먼트가 전달되지 않아서 다시 6.1.0.GA로 내렸습니다.
Appcelerator 버전업은 이미 그다지 신뢰하지 않고 있습니다. ㅎㅎㅎ

		myobj.init({
			arg:	true,
		});

이런 코드를 사용 중인데, 에러가 나서 디버깅해보니 arg에 undefined가 넘어오네요.
6.1.0.GA에서는 정상 동작합니다.

뭔가 너무 이상하고 심각한 문제네요. alloy 버전 어떻게 되나요?

Alloy는 사용하지 않고 예전에 Classic 프로젝트로 생성한 것인데요,
안드로이드 릴리즈 버전에서 특정 경우에만 나타나는 현상인 것 같습니다.
모든 경우에 발생하는 에러는 아니고, 에러가 나는 지점에서만 항상 에러가 발생하고 있습니다.
릴리즈 버전에서만 발생하는 것으로 봐서는 minification 된 코드에서 문제가 발생하는 것 같기도 합니다.

저도 6.1.1에서 비슷한 에러를 겪었습니다.

패턴이 동일한 변수이름을 할당한 object를 여러곳에서 썼을때 그랬어요.

function A() {
  var a = {...}.
  return a.init();
}

function B() {
  var a = {...}.
  return a.init();
}

이런 패턴일 때 minify를 거치면, B 함수쪽의 a가 void 0가 되는 케이스였습니다.
생각해보면 es5에서 함수안에서 명명한 var는 global context이기 때문에 저런 패턴으로 코딩하면 안되는거죠…

그래서 A와 B안의 구문을 즉시실행함수로 변경해서 context를 분리해서 해결했습니다.

함수 내에서 var로 선언한 변수가 global이 되는 것은 C 언어 계열에서 기본적으로 보장하는 "변수 지역성"에 위배되는 것이 아닌가요?

만약 말씀하신대로 동작한다면 프로그래머를 상당히 혼란스럽게 하는 문법이 아닐까 생각합니다. ^^

맞아요. js는 private가 없으니까요. 개떡같이 동작하죠ㅋㅋㅋㅋ
js는 c계열이 아니고 lisp에서 시작된거라고 알고 있습니다.

오늘 또 하나 배우네요,
좋은 정보 감사합니다. ^^