[아이폰] 리눅스에서 아이폰 프로그램 빌드하기

2010.02.10 10:49
 
 
 우연찮게 리눅스에서 아이폰 프로그램 빌드하는 방법을 알게 되어 소개 한다.

맥이 있으면 좋겠다만 배포는 안되기 때문에 
간단한 코드 빌드후 테스트를 원하는 사람들에게는 적합할 것 같다.
toolchain 빌드만 하면  끝이다. 리눅스 정말 멋진 놈 ~~

간단한 환경을 소개하자면

- Virtualbox에 Ubuntu 설치 (Ubuntu 9.10  32bit ) 굳이 virtualbox에 깔필요 없고 native 에서 해도 된다.
- firmware 3.1.2 ( JB가 가능한 버전 )
- 기타


1. 준비물

- iPhone 3.1.2 SDK :  다음 버전을 다운 받는다. 애플 id로 로그인 하면 된다.
http://developer.apple.com/iphone/download.action?path=%2Fiphone%2Fiphone_sdk_3.1.2__final%2Fiphone_sdk_3.1.2_with_xcode_3.1.4__leo
pard__9m2809.dmg
- iPhone 3.1.2 firmware :
http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7270.20091008.phn32/iPhone2,1_3.1.2_7D11_Restore.ipsw

- 하드 공간 넉넉하게 약 8기가 이상 확보

2. 설치
- 빌드 전에 필수 패키지들을 설치한다.

apt-get install \
  automake \
  bison \
  cpio \
  flex \
  g++ \
  g++-4.3 \
  g++-4.3-multilib \
  gawk \
  gcc-4.3 \
  git-core \
  gobjc-4.3 \
  gzip \
  libbz2-dev \
  libcurl4-openssl-dev \
  libssl-dev  \
  make \
  mount \
  subversion \
  sudo \
  tar \
  unzip \
  uuid \
  uuid-dev \
  wget \
  xar \
  zlib1g-dev \
  build-essential \

3. toolchain 설치

홈디렉토리의 적당한 위치를 만들고 svn 저장소에서 다운 받는다.

4. firware와 sdk 파일 복사

다운로드한 sdk 파일을 ~/iphone/toolchain/files에 복사

firmware 파일을 ~/iphone/toolchain/files/firmware에 복사

 5. toolchain.sh 파일 편집

firmware 파일은 암호화되어 압축된 이미지이므로 VFDecrypt Key가 필요하다.

따라서 toolchain.sh 파일을 편집기로 열어 DEVICE 및에 아래 코드를 추가해 준다.

DECRYPTION_KEY_SYSTEM="47D76295817F74953F8E557B4917FE2201E9778A9900E43FBF311A83F176FE521B996A4B"\

6. 빌드

다음 명령으로 toolchain을 빌드한다.

./toolchain.sh all


과정은 sdk와 firmware에서 필요한 파일을 추출하는 작업 과

코드를 빌드하는 과정으로 나누어 진다.

그런데 아마 build fail 이 날것이며 make.log 를 확인해 보면 된다.

에러난 파일에 <stdio.h> 와 <stdlib.h> 를 include 시키면 된다.

본인은 src/cctools/ld64/src/ld.cpp Options.cpp 파일을 수정하였다.

새로 수정후에는

./toolchain.sh build 명령으로 빌드하면 되고

불필요한 과정은 생략해도 된다.

 

7. 확인

다음 처럼 확인해 본다면 빌드가 성공한 것이다.



~/iPhone/toolchain/toolchain/pre$ ls

arm-apple-darwin9  bin  include  info  lib  libexec  man  share



8. ldid 설치

아이폰의 ssh 접속후 cydia에서 apt를 설치후 다음 명령으로 ldid를 설치한다.

apt-get install ldid




9. APP 설치

빌드후 아이폰에 설치까지 하는 과정이다.
반드시 iPhone에 ssh가 켜져 있는 상태여야 하고 시스템에서 접근이 가능해야 한다.

여기서는 HelloToolchain이라는 샘플소스를 빌드한다.

cd ~/iphone/apps/HelloToolchainIP=xxx.xxx.xxx.xxx PATH=../../toolchain/pre/bin/:$PATH make deploy


10. iPhone!!

- 아이폰에 설치된 HelloToolchain, 잘 자리잡고 있다.
 

- 앱 실행 했을때 모습, HelloToolchain!!
신고

슈플 애플/아이폰 , , , , , , , , , , ,

  1. 간만에 꾸며보니

  2. Blog Icon
    풍객사

    컴퓨터를 좋아하는 페이스북 사용자입니다.
    내용이 좋아서 다른 분들께 소개시켜드리고 싶네요.
    퍼갈께요^^

  3. 넵 얼마 든지요.. ^^

  4. Blog Icon
    참이슬

    정말 담아놓고 두고두고 보고 싶은 글입니다.
    리눅스를 공부하는 초보로써 정말 좋은 정보 입니다.
    이런 좋은 정보 많이 많이 부탁드립니다.
    퍼갈게요^^*

  5. Blog Icon
    emrehtlstjs

    우분투 12.04 에서 해봤는데요,6번 까지는 실행이 되는거 같은데toolchain.sh all 을 입력하면,
    The following command are missing: xar
    you may need to install additional software for them using your package manager.
    라는 문구가 뜨면서 그 다음이 진행되지 않습니다.make.log파일을 확인하고 싶은데 어디서 확인하는지도 잘..모르겠습니다.
    부탁 드리겠습니다.알려주시면 안될까요..?

티스토리 툴바