따뜻한 대한민국 겨울만들기

AIR 3.3 에 새로운 Feature인 iOS Simulator Support 가 추가 되었습니다.

Flash Builder 4.6 에 있는 Simulator 가 아닌 XCode 에 있는 iOS Simulator 에서 AIR Project 를 돌릴 수 있는 것인데요. (NativeExtension을 포함할 수도 있다네요.)

아마 AIR 3.3 Release Note 문서(Beta3)를 보고 따라 해보시면 별다른 문제 없이 잘 돌아 갈 것입니다.


Native Extension 이 포함되지 않는 AIR 모바일 프로젝트를 iOS Simulator 에서 돌리는건 문제 없이 잘 되는데..

포함된 프로젝트를 iOS Simulator 에서 돌리기 위해선 몇가지 설정을 추가로 해줘야 합니다.(이 부분은 다음 포스팅에서 다루기로 하구요.) 


iOS Simulator 에서 돌리기 위해 먼저 ADT 컴파일을 해야 하는데,

이 과정에서 자꾸 아래와 같은 에러 메세지가 뜨면서 컴파일이 되지 않았습니다.



ld warning: in /var/folders/vn/vn2Pp4dkFZGRnh4zaPBIbk+++TI/-Tmp-/a2083f26-5203-4a0a-8f6e-c7660477fec2/libnet.daum.ne.NEBabyLibrary.a, file is not of required architecture
Undefined symbols:
  "_ExtFinalizer", referenced from:
      _g_com_adobe_air_fre_fmap in extensioglue.o
  "_ExtInitializer", referenced from:
      _g_com_adobe_air_fre_fmap in extensioglue.o
ld: symbol(s) not found
Compilation failed while executing : ld64

(하나는 이미지, 하나는 텍스트로 같은 에러 코드 입니다.)


구글링과 삽질을 거듭중에.. 항상 그렇듯.. 결국 문제는 사소한데서 발견 되었습니다.

XCode 는 Build 된 파일이 2곳에 존재하는데,


1. /Users/FlowerGirl/Library/Developer/Xcode/DerivedData/NEBabyLibrary-dkmqtbzpqxkmwtfhqqxufkywuzrc/Build/Products/Debug-iphoneos/NExxx.a

2. /Users/FlowerGirl/Library/Developer/Xcode/DerivedData/NEBabyLibrary-dkmqtbzpqxkmwtfhqqxufkywuzrc/Build/Products/Debug-iphonesimulator/NExxx.a


1번은 빌드 타겟을 iOS Device 에 놓고 했을때 저장되는 경로이구요.

2번은 빌드 타겟을 Simulator 에 놓고 했을때 저장되는 경로입니다.


NativeExtension 이 포함된 프로젝트를 iOS Simulator 에서 돌리기 위해선,

XCode에서 Simulator를 타겟으로 빌드된 NExxx.a 파일을 사용해야 하는데...

저는 iOS Device 타겟으로 빌드된 곳의 NExxx.a 파일을 사용해서 위와 같은 에러가 발생하는 거였더라구요.

(에러 메세지를 보면.. ExtFinalizer 와 ExtInitializer 가 찾을 수 없거나 일치하지 않아서인데.. 제 해결 상황을 봐선 꼭 그런거 같진 않아 보이는데요. 이 부분은 의문이네요.)