Skip to content

ANE 빌드와 테스트 하기

연재순서

  1. ANE 살펴보기
  2. iOS용 ANE 라이브러리 만들기
  3. Android용 ANE 라이브러리 만들기
  4. 연결 SWC 만들기
  5. ANE 빌드와 테스트 하기


작업환경

  • Mac OS 10.7.4
  • Flex SDK 4.6.0 for AIR3.3
  • Flash Builder 4.6


소스 다운로드

[button url=’https://github.com/sewonist/ScreenWakeUp‘ target=’_blank’ size=’large’]Sources in GitHub[/button]

시작점 만들기

드디어 연재 마지막 시간입니다. 앞시간에 만든 파일들을 모두 모아 ane 를 만들어 보도록 하겠습니다. 사실 ane 빌드 자체는 한줄 명령어로 끝날 정도로 단순하지만 실제로 ane 를 만들려고 시도 할 때 많이 어려워하는 부분입니다. 그중 가장 큰이유는 GUI에 익숙해 있는 개발자가 커맨드라인을 이용해서 빌드 해야 하기 때문입니다. 그래서 많은 개발자들이 build.bat 이나 build.xml 을 이용해서 빌드를 하지만 커맨드라인을 수정해야 한다는 점은 변함이 없습니다. 그러므로 이번 기회에 adt를 이용한 빌드를 익혀 두는 것도 좋을 것 같습니다.

build 디렉토리

위의 디렉토리에 지금까지 만든 라이브러리와 SWC 를 모아 두었습니다. libScreenWakeUp.a 는 iOS용 라이브러리 에서 SecreenWakeUp.jar 는 Android용 라이브러리에서 마지막으로 ScreenWakeUp.swc는 연결 SWC 입니다. 그리고 나머지 2개의 xml 지금부터 차례대로 알아보겠습니다.

extension.xml

[xml] <extension xmlns="http://ns.adobe.com/air/extension/3.1"&gt; it.ane.ScreenWakeUp 1.1 libScreenWakeUp.a ExtInitializer ExtFinalizer ScreenWakeUp.jar it.ane.screenwakeup.ScreenWakeUpExtension [/xml]

xml 의 정확한 구조와 명세는 다음의 링크에서 확인 할 수 있습니다. Native extension descriptor files 여기서는 중요한 몇가지만 설명하겠습니다.

id ANE의 고유 id 입니다. 이 아이디는 연결 SWC 가 context를 만들 때 사용하는 id와 동일합니다.

platform 각 플렛폼을 정의하는 노드 입니다. 플렛폼에 사용 할 수 있는 name 속성은 다음과 같습니다.

  • Android-ARM for Android devices.
  • default
  • iPhone-ARM for iOS devices.
  • iPhone-x86 for the iOS Simulator.
  • MacOS-x86 for Mac OS X devices.
  • QNX-ARM for Blackberry Tablet OS devices.
  • Windows-x86 for Windows devices.

10 thoughts on “ANE 빌드와 테스트 하기”

  1. 매우 좋은 정보 감사합니다.ㅎㅎ
    제가 3달전에.. ane를 만들어볼려고 시도했었는데..
    도움말이나 구글링 찾아서 해보았는데.. 역시나 안되더군요.. ㅠ
    이유도 모르고 영어를 해석도 쉽지않고.. ㅠ
    하지만 이제 좋은 정보를 얻어가니 잘 해볼수 있을꺼 같습니다.ㅎ
    정말감사합니다.

    1. 도움이 되셨다니 작성자로서 정말 기쁘네요~ 막상 실제로 해보시면 크게 어렵지 않으니 꼭 성공하시리라 믿습니다.

  2. swonist님 혹시
    ScreenWakeUp.as에서 context.call(“Lock”, $flag); 를 호출하게 되면

    Error #1009: Cannot access a property or method of a null object reference. 1009

    이러한 에러가 표시 되는데 혹시 어떠한 이유로 에러가 나는지 아시는지요? 여러번 시도 끝에 해결방안은 찾지 못하여 이렇게 글을 씁니다. ㅜ.ㅜ
    그리고 정말 좋은 정보 감사합니다.

    1. 우선 ScreenWakeUp.as 는 직접 호출해서 사용하시는 클래스가 아닙니다. 연재에도 설명했지만 ScreenWakeUp.as 는 플래시와 네이트 코드 사이의 브릿지 역활을 해주는 클래스 입니다. 즉 반드시 ANE내부에서 네이티브 코드와 함께 사용되어야 합니다. 위와 같은 에러가 발생했다면 가장 의심해 볼 부분은 역시 context 가 생성되지 않았을 가능성입니다. extension.xml 의 ID와 ScreenWakeUp.as의 ID 가 잘 매치 되는지 확인 해보시고 꼭 ANE로 빌드 후 테스트 코드에서 테스트 해보시기 바랍니다.

  3. 감사합니다. 드디어 해결이 되었어요~ㅎㅎ extension.xml 의 ID 값이 다르게 들어가 있어서 에러가 나는 것을 확인 하였습니다.

  4. 안녕하세요! 좋은 강의 잘 봤습니다!
    그런데.. 혹시 네이티브에서 어플쪽으로 메시지를 전달하는 강의도 부탁드려도 될까요?
    어플 -> 네이티브 강의는 많은데 네이티브 -> 어플 쪽은 관련 내용이나 강의도 찾기가 힘드네요… 흑흑..
    가능 하시다면 부탁드리겠습니다.

Comments are closed.