기본환경: ipad1 5.0.1 jailbreak theos


먼저 아이패드에서 cydia 어플 개발에 필수인 THEOS를 cydia로 부터 다운 받아야한다.

아이패드 쉘에서 아래처럼 입력한다.

svn checkout http://isynergyclient.googlecode.com/svn/trunk/ isynergyclient-read-only


그러면 뒤에 붙은 디렉터리 명에 소스가 달려온다.
컴파일하려면 libactivator.h가 필요하다.

직접 구해서 올바른 위치에 놔도 되고
llibactivator를 컴파일할거 까진 없지만 소스를 받아도 된다.
아이패드에서 git 소스 받기를 참조

바로 make해서 실행되면 좋겠지만.. 내 아이패드에는 cydia에서 받은 ios2.0sdk와 3.0sdk 그리고 맥북에서 퍼다온 4.3sdk등이 마구잡이로 아이패드에 들어가 있어서 아래처럼해야 컴파일이 되었다 -_-...


#SYSROOT = /var/sdk
SYSROOT = /
export SYSROOT

APPLICATION_NAME = SynergyClient
SynergyClient_OBJCC_FILES = BackgroundApplication.m \
AppDelegate.m \
mouse_msgs.mm \
SynergyClient.m \
ConfigurationViewController.m \
main.m
SynergyClient_FRAMEWORKS = CoreGraphics
SynergyClient_LDFLAGS += -L"/private/var/toolchain/iPhoneOS4.3.sdk/usr/lib"
SynergyClient_LDFLAGS += -L"/private/var/toolchain/iPhoneOS4.3.sdk/usr/lib/system"

include $(THEOS)/makefiles/common.mk
include $(FW_MAKEDIR)/tool.mk
include $(FW_MAKEDIR)/application.mk




- Posted using BlogPress from my iPad
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


디렉터리를 하나 만들고 들어와서
아래처럼 실행해본다.

\rm -rf * .git
git init
git remote add origin git://github.com/rpetrich/libactivator.git
git fetch
git checkout master

or
마스터 브랜치가 없어서 소스를 못받는거 같으면 아래처럼
존재하는 태그를 본 후 가장 최신거를 받아도 된다.


git tag
git checkout v1.6.2



- Posted using BlogPress from my iPad
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


synergy-plus 라는 아이패드 용 시너지 클라이언트가 있습니다. 이 클라이언트는 컴퓨터에 시너지 서버를 실행하여 컴퓨터의 마우스로 아이패드를 동작시킬 수 있는 프로그램이죠. (좀 완성도가 떨어졌지만..)

어쨋든이 시너지 플러스에서 아이패드 상에 마우스를 나타내는 라이브러리로 hid-support에 존재하는 MouseSupport라는 라이브러리를 사용하고 있습니다.

아이패드 상에서 블루투스 키보드와 블루투스 마우스를 함께 사용하면 좋겠다는 생각이 있는데.. 일단 아이패드의 기본 블루투스 스택은 마우스를 지원안합니다.
따라서 BTStack 이라는 서드파티 블루투스스택을 설치해서 써야하지만.. 문제는 현재 BTStack은 키보드와 마우스만 지원하는듯합니다. 블투 테더링 연결을 못한다는게 큰 단점..

그래서 생각중인것이 키보드는 기본 블투 스택의 키보드로 사용하고, 마우스는 mouse support 라이브러리를 이용해서 wifi로 안드로이드 폰 같은 것이 터치패드가 되어 조종할 수 있음 얼마나 좋을까 입니다..

첫 걸음으로 hid support를 사용해보는 것을 해보려합니다.

hid_support의 빌드 환경은 make를 기반으로 하는 THEOS를 사용하고 있습니다
이 THEOS는 SYSROOT환경 변수가 ios sdk를 가리켜야함으로 아래처럼 makefile안에서 더 추가했습니다.



SYSROOT = /var/sdk
export SYSROOT

include $(THEOS)/makefiles/common.mk

#SUBPROJECTS = libhidsupport hidlowtide hidspringboard
SUBPROJECTS = libhidsupport hidspringboard

# SUBPROJECTS += hidsupporttest

include $(FW_MAKEDIR)/aggregate.mk



그리고 libhidsupport는 아래처럼..


SYSROOT = /var/sdk
export SYSROOT

include $(THEOS)/makefiles/common.mk

LIBRARY_NAME = libhidsupport
libhidsupport_CFLAGS = -I/var/include
libhidsupport_CFLAGS += -I/var/include/gcc/darwin/3.3
libhidsupport_FILES = client.c
libhidsupport_INSTALL_PATH = /usr/local/lib
libhidsupport_FRAMEWORKS = CoreFoundation
libhidsupport_LDFLAGS += -L"/usr/lib"
libhidsupport_LDFLAGS += -F"/System/Library/Frameworks"
libhidsupport_LDFLAGS += -F"/System/Library/PrivateFrameworks"
include $(FW_MAKEDIR)/library.mk



역시 hidspringboard는..


include $(THEOS)/makefiles/common.mk

# use latest SDK but use iOS 3.0 as deployment target
export TARGET=iphone:latest:3.0

TWEAK_NAME = hidspringboard
hidspringboard_FILES = Tweak.xm
hidspringboard_CFLAGS = -I../3rdParty
hidspringboard_CFLAGS = -I/var/include
hidspringboard_CFLAGS += -I/var/include/gcc/darwin/3.3
hidspringboard_CFLAGS += -I/../3rdParty/GraphicsServices
hi dspringboard_CFLAGS += -F"/System/Library/Framework s"
hidspringboard_CFLAGS += -F"/System/Library/PrivateFrameworks"
hidspringboard_LDFLAGS += -L"/usr/lib"
hidspringboard_LDFLAGS += -F"/System/Library/Frameworks"
hidspringboard_LDFLAGS += -F"/var/sdk/System/Library/PrivateFrameworks"
hidspringboard_LDFLAGS += -F"/System/Library/PrivateFrameworks"
hidspringboard_LDFLAGS += -bind_at_load
hidspringboard_LDFLAGS += -multiply_defined suppress
hidspringboard_LDFLAGS += -framework QuartzCore
hidspringboard_LDFLAGS += -framework GraphicsServices
hidspringboard_FRAMEWORKS = UIKit
hidspringboard_PRIVATE_FRAMEWORKS = QuartzCore GraphicsServices
include $(THEOS_MAKE_PATH)/tweak.mk



- Posted using BlogPress from my iPad
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


일단 cocos2d를 0.99.3으로 잡았습니다.
이유인 즉슨.. 일단 cocos2d 0.99.3을 넘어가면 용량이 꽤 커지고.. (생각해보니 별이유는 없는듯..)

기본적으로 이전 포스트한 블로그 내용대로 ipad에서 UI 개발 환경이 된 상태라고 가정하겠습니다.

일단 제 MacOSX는 10.6.8로 스노우레오파드입니다. (맥북이 2.0 듀얼코어라서 xcode 4로 가려면 10.7 라이언으로 갈아타야하는데 xcode가 좀 버벅인다더군요;; )

10.6.6이상부터 xcode 3.2.6 그리고 iphone sdk 4.3을 설치할 수 있습니다.

developer.apple.com 에서 로그인 후 아래 파일을 받습니다. 
xcode_3.2.6_and_ios_sdk_4.3.dmg

그리고 macosx 탐색기에서 하기 디렉터리들을 아이패드에 옮깁니다.
(이런 파일 복사를 하는 이유는 추가적인 Frameworks나 libz 같은 라이브러리를 복사하기 위해서 입니다.  )
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk에 있는 System과 usr 디렉터리를
아이패드의 /var/toolchain/iPhoneOS4.3.sdk라는 이름으로 만들어 둡니다.
이렇게 준비해둔 후 컴파일하다가 에러가 나는 프레임워크나 libz.1.2.3.dylib같은 파일이 없다고 하면 
그에 맞춰서 /usr/lib라든가 /System/Library/frameworks/OpenGLES같은 곳에 복사해온 프레임워크 파일을 복사해서 문제를 해결합니다.
Makefile을 수정해서 아예 /var/toolchain을 쓰도록 하는것도 나쁘지 않을듯하네요..

그리고 cocos2d 0.99.3을 다운 받아서 역시 아이패드의 /var/toolchain/cocos2d_0.99.3 대충 이름 만들고 놓습니다.

소스는 cocos2d 에 있는 tests디렉터리에 ScenceTest.h 와 m을 가져왔고 main역시도 거기 있는거 가져 왔습니다.

Makefile은 아래처럼 cocos2d를 위해서 추가로 프레임워크 및 libz를 추가했습니다.
( 맥북에서 terminal로 아이패드 ssh접속한 후 vim으로 본 화면을 걍 긁어다 놓아서 보기 안좋네요.. )

 1 
  2 # Makefile for gcc compiler for iPhone
  3 
  4 PROJECTNAME=Scence
  5 APPFOLDER=$(PROJECTNAME).app
  6 INSTALLFOLDER=$(PROJECTNAME).app
  7 
  8 CC=arm-apple-darwin9-gcc
  9 LD=$(CC)
 10 LDFLAGS = -arch arm -lobjc -lz
 11 LDFLAGS += -framework CoreFoundation
 12 LDFLAGS += -framework Foundation
 13 LDFLAGS += -framework UIKit
 14 LDFLAGS += -framework QuartzCore
 15 LDFLAGS += -framework CoreGraphics
 16 LDFLAGS += -framework OpenGLES
 17 //LDFLAGS += -framework GraphicsServices
 18 //LDFLAGS += -framework CoreSurface
 19 //LDFLAGS += -framework CoreAudio
 20 //LDFLAGS += -framework Celestial
 21 //LDFLAGS += -framework AudioToolbox
 22 //LDFLAGS += -framework WebCore
 23 //LDFLAGS += -framework WebKit
 24 LDFLAGS += -L"/usr/lib"
 25 LDFLAGS += -F"/System/Library/Frameworks"
 26 LDFLAGS += -F"/System/Library/PrivateFrameworks"
 27 LDFLAGS += -bind_at_load
 28 LDFLAGS += -multiply_defined suppress
 29 LDFLAGS += -L"/var/toolchain/cocos2d-iphone-0.99.3/cocos2d"
 30 LDFLAGS += -L"/var/toolchain/cocos2d-iphone-0.99.3/external/FontLabel"
 31 LDFLAGS += -L"/var/toolchain/cocos2d-iphone-0.99.3/cocos2d/Support"
 32 
 33 CFLAGS = -I"/var/include"
 34 CFLAGS += -I"/usr/include"
 35 CFLAGS += -F"/System/Library/Frameworks"
 36 CFLAGS += -F"/System/Library/PrivateFrameworks"
 37 CFLAGS += -I"/var/toolchain/cocos2d-iphone-0.99.3/cocos2d"
 38 CFLAGS += -I"/var/toolchain/cocos2d-iphone-0.99.3/external/FontLabel"
39 CFLAGS += -I"/var/toolchain/cocos2d-iphone-0.99.3/cocos2d/Support"
 40 
 41 #CFLAGS += -DDEBUG -O3 -Wall -std=c99 -funroll-loops
 42 CFLAGS += -DDEBUG -Wall -std=c99
 43 CFLAGS += -DMAC_OS_X_VERSION_MAX_ALLOWED=1050
 44 
 45 BUILDDIR=./build/2.0
 46 SRCDIR=./Classes
 47 RESDIR=./Resources
 48 OBJS=$(patsubst %.m,%.o,$(wildcard $(SRCDIR)/*.m))
 49 OBJS+=$(patsubst %.c,%.o,$(wildcard $(SRCDIR)/*.c))
 50 OBJS+=$(patsubst %.cpp,%.o,$(wildcard $(SRCDIR)/*.cpp))
 51 RESOURCES=$(wildcard $(RESDIR)/*)
 52 
 53 COCOS2D_SRCDIR=/var/toolchain/cocos2d-iphone-0.99.3/cocos2d
 54 OBJS+=$(patsubst %.m,%.o,$(wildcard $(COCOS2D_SRCDIR)/*.m))
 55 OBJS+=$(patsubst %.c,%.o,$(wildcard $(COCOS2D_SRCDIR)/*.c))
 56 OBJS+=$(patsubst %.cpp,%.o,$(wildcard $(COCOS2D_SRCDIR)/*.cpp))
 57 
 58 COCOS2D_SRCDIR2=/var/toolchain/cocos2d-iphone-0.99.3/external/FontLabel
 59 OBJS+=$(patsubst %.m,%.o,$(wildcard $(COCOS2D_SRCDIR2)/*.m))
 60 OBJS+=$(patsubst %.c,%.o,$(wildcard $(COCOS2D_SRCDIR2)/*.c))
 61 OBJS+=$(patsubst %.cpp,%.o,$(wildcard $(COCOS2D_SRCDIR2)/*.cpp))
 62 
 63 COCOS2D_SRCDIR3=/var/toolchain/cocos2d-iphone-0.99.3/cocos2d/Support
 64 OBJS+=$(patsubst %.m,%.o,$(wildcard $(COCOS2D_SRCDIR3)/*.m))
 65 OBJS+=$(patsubst %.c,%.o,$(wildcard $(COCOS2D_SRCDIR3)/*.c))
 66 OBJS+=$(patsubst %.cpp,%.o,$(wildcard $(COCOS2D_SRCDIR3)/*.cpp))
 67 
 68 all:    dist
 69 
 70 $(PROJECTNAME): $(OBJS)
 71     $(LD) $(LDFLAGS) -o $@ $^
 72 
 73 %.o:    %.m
 74     $(CC) -c $(CFLAGS) $< -o $@
 75 
 76 %.o:    %.c
 77     $(CC) -c $(CFLAGS) $< -o $@
 78 
 79 %.o:    %.cpp
 80     $(CC) -c $(CPPFLAGS) $< -o $@
 81 
 82 dist:   $(PROJECTNAME)
 83     /bin/rm -rf $(BUILDDIR)
 84     /bin/mkdir -p $(BUILDDIR)/$(APPFOLDER)
 85     /bin/cp $(RESDIR)/* $(BUILDDIR)/$(APPFOLDER)
 86     /bin/cp Info.plist $(BUILDDIR)/$(APPFOLDER)/Info.plist
 87     @echo "APPL????" > $(BUILDDIR)/$(APPFOLDER)/PkgInfo
 88     /usr/bin/ldid -S $(PROJECTNAME)
 89     /bin/cp $(PROJECTNAME) $(BUILDDIR)/$(APPFOLDER)
 90 
 91 install: dist
 92     /bin/cp -r $(BUILDDIR)/$(APPFOLDER) /Applications/$(INSTALLFOLDER)
 93     @echo "Application $(INSTALLFOLDER) installed"
 94     killall SpringBoard
 95 
 96 uninstall:
 97     /bin/rm -fr /Applications/$(INSTALLFOLDER)
 98     killall SpringBoard
 99 
100 reinstall: dist
101     /bin/rm -fr /Applications/$(INSTALLFOLDER)
102     /bin/cp -r $(BUILDDIR)/$(APPFOLDER) /Applications/$(INSTALLFOLDER)
103     @echo "Application $(INSTALLFOLDER) installed"
104 
105 clean:
106     @rm -f $(SRCDIR)/*.o
107     @rm -rf $(BUILDDIR)
108     @rm -f $(PROJECTNAME)


Info.plist도 번들이름도 Scence으로 바꾸었습니다.

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-
  3 <plist version="1.0">
  4 <dict>
  5     <key>CFBundleDevelopmentRegion</key>
  6     <string>en</string>
  7     <key>CFBundleExecutable</key>
  8     <string>Scence</string>
  9     <key>CFBundleIdentifier</key>
 10     <string>org.iphone.ScenceApp</string>
 11     <key>CFBundleInfoDictionaryVersion</key>
 12     <string>6.0</string>
 13     <key>CFBundleName</key>
 14     <string>Scence</string>
 15     <key>CFBundlePackageType</key>
 16     <string>APPL</string>
 17     <key>CFBundleShortVersionString</key>
 18     <string>1.0.0</string>
 19     <key>CFBundleSignature</key>
 20     <string>????</string>
 21     <key>CFBundleVersion</key>
 22     <string>1.0</string>
 23     <key>SignerIdentity</key>
 24     <string>Apple iPhone OS Application Signing</string>
 25 </dict>
 26 </plist>


 대략 첨부파일로 프로젝트 파일을 올려두겠습니다.

make 한 후..
make install하고 ..

실행해보았습니다.

 
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST
  1. BlogIcon broneri 2011.12.20 23:44 신고  댓글주소  수정/삭제  댓글쓰기

    아... 왼편 하단은 fps 찍는건데.. cocos2d/Resource/Fonts/fps_image.png를 더 가져오면 화면에 나오네요..



xcode 4버전은 macosx 라이언 (10.7) 이상에서만 동작한다고 하고..
된다 하더라도 2.0기가 듀얼코어 맥북에서는 버거운 감이 있다고 하니..

xcode 3.2.6+ ios sdk 4.3합본을 받았다. 
그런데 스노우레오파드도 10.6.6이상이어야 한다네..
10.6.8로 업데이트하는 중.. -_-.. 맥은 버전을 너무 탄다.

쩝 
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


아이패드1 5.0.1 환경

아이패드 터미널에서 GUI App을 그냥 실행하면 걍먹통 화면이 된다.
예를들어
/Applications/myapp.app/myapp
를 실행하면 걍 터미널에서 무한 대기 화면이된다..

Cydia에 open이라는 툴을 설치하면 아래처럼 실행가능해진다.

open com.yourcompany.myapp

인자는 Info.plist에 있는 CFBundleName으로 ApplicationIdentifier를 넣으면 된다.

그러면 터미널에서 실행하면 GUI App이 실행된다.
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


iSSH가 현재 아이패드용 터미널에선 블루투스키보드도 잘지원하고 참 좋은거 같습니다만...

하기 그림처럼 폰트 글짜 너비가 자기 맘대로 여서 너무 불편합니다..



다행히 아래와 같이 설정하니 그나마 (?) 볼만하게 나오네요..






YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


현재 제 아이패드는 1이고 5.0.1에서 반탈을 한 상태입니다.

순서
1. 툴체인 설치
2. 소스 받기
3.컴파일 및 실행


1. 툴체인 설치
하기 내용을 참고 합니다.

http://webterror.wordpress.com/2011/08/04/아이패드에-toolchain-을-설치하여-직접-컴파일을-하자

2. 소스받기
하기 내용의 소스를 다운 받습니다.
http://ios-hacks.blogspot.com/2011/02/building-your-first-application.html

3. 컴파일 및 실행

아래는 console compile test입니다.



아래는 gui compile test입니다.
특이사항은 저의 경우 killall SpringBoard로는 아이콘이 스프링 보드에 생기지 않더군요..
그래서 SBSetting의 respring으로 하니 나오더군용...




아래와 같이 HelloWorld 아이콘이 보이고..


실행한 화면입니다.



YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


만일 8G usb가 있다면 검색하다보면 쉽게 찾을 수 있는 방법으로 스노우 레오파드로 업그레이드 할 수 있습니다.

저같은 경우는 4g짜리 usb 메모리 카드만 있어서 이렇게 하지 못했네요.
어쨋거나 dmg파일이 맥북에 있으면 됩니다.
저는 pc데스크탑에 있는 6기가짜리 dmg를 분할압축 해서 usb로 맥북에 퍼다나른 후, 맥북에서 압축 풀어서 dmg를 마련했습니다.
(생각해보니까 그냥 wifi 되니까 네트웍 파일 전송할 껄 그랬나보네요 -_- 뭐 오래걸려도 귀찮진 않았을텐데 -- )

일단 레오파드 (10.5.x)는 디스크 유틸리티를 이용하면 파티션을 새롭게 잡을 수 있습니다.

저같은 경우 부트캠프로 이미 main과 Untitled(winxp)로 나뉜 상태였는데 main쪽에서 남는 공간을 활용하여 main_2라는 이름의 파티션을 새로 만들었습니다 이곳에다가 snow leopard dmg파일을 놓으려고요. 대략 15G정도 마련했습니다.
그리고 복원 탭을 누른 후 소스에다가 snow leopard dmg를 선택해서 넣고,
대상에다가 새로 생성한 main_2파티션을 선택하고 복원 버튼을 누릅니다.
그러면 main_2에 설치 파일이 복사되면서 설치를 위한 준비가 완료됩니다.


복원 완료 후 리부팅하고 옵션키를 누르고 있으면 어떤 디스크로 부팅할거냐고 나오는데 main_2를 선택하면 스노우레오파드 설치가 시작됩니다. 설치가 완료되면 아래처럼 10.6으로 업그레이드가 됩니다.


YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST
  1. BlogIcon 후레드군 2010.08.08 11:41 신고  댓글주소  수정/삭제  댓글쓰기

    헐?! 그러면 USB로 설치하셨다는 말인가요? Firewire가 아니어도 된다는 말이네요?

    • BlogIcon broneri 2010.08.09 13:51 신고  댓글주소  수정/삭제

      아.. snowleopard dmg파일이 leopard 맥북에만 들어있으면 usb나 firewire같은거 없이도 그냥 업그레이드 가능하다 입니다 ^^

  2. BlogIcon iwannaleica 2010.08.19 12:42 신고  댓글주소  수정/삭제  댓글쓰기

    좋은정보 감사해요~




제가 갖고 있는 아이팟터치1세대 존레논버전 (현재 2.2.1펌웨어)..
안타깝게 1세대는 최대 3.1.3까지 업데이트가 된다네요. 2세대 부터 iOS4가 가능함..

cocos2d 0.99버전 쓰려니 xcode 3.2.3에 iOS3이상이어야 하는거 같네요.

기존 xcode로 cocos2d 최신 버전 컴파일하려고 하니 아래처럼 에러 나네요

cocos2d 릴리즈 노트를 보니 아래처럼 xcode 3.2.3이상이어야 한다네요.



아이튠즈를 9.2대로 업데이트 받고 아이팟터치 연결해서 업데이트 확인하니 2.2.1은 최신이라면서 끝나네요 -_-

아래 사이트에 가서 3.1.3를 다운 받는 중입니다.
http://www.megaupload.com/?d=HXHEIJTW&f=iPod1,1_3.1.2_7D11_Restore.ipsw

그리고  아이튠즈에서 쉬프트 누른 상태에서 복원을 누르면 펌웨어 선택해서 복원된다네요..
아놔 맥북에서는 옵션키+복원 버튼임..;

이거 해보고 아이팟터치 사파리에서 jailbreakme.com에 접속해서 탈옥하면 되는듯하군요..
(탈옥 업청 쉬워졌네요)

아놔 근데 xcode 3.2.3을 다운 받아서 설치하려 했더니 아래처럼 스노우레오파드 (10.6)여야 한다네요 전 10.5.8 그냥 레오파드인데 --;;

스노우레오파드 먼저 깔아야 할듯..



스노우레오파드 먼저 깔아야 할듯..
현재까지 정리하자면
cocos2d 0.99최신 버전을 위해서는
- xcode 3.2.3 + iOS4 개발환경 (맥북)
- 아이팟터치 1세대 3.1.3 업데이트 

나중에 xcode로 컴파일하고 디바이스에 올리려면 4.0대만 나온다고 하네요.
http://wannabewize.tistory.com/121 
위에 나온 거처럼 하면 2.x대 3.x대 기기에서도 올려볼 수 있다네요.

YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


오랜만에 다시 코코스 최신 버전을 다운 받아서 실행하려고 했더니 다음 처럼 에러가 나네요

error: There is no SDK with the name or path 'iphoneos4.0'

그래서 아래 사이트로 가서 릴리즈 노트를 봤더니 저런... xcode, iphone sdk다시 받아야 한다네요


지금 xcode 3.2.3과 iOS 4.0 sdk를 다운 받는 중입니다. 언제 받나 -_-...

YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST



아이폰 앱 기획을 할 때 유용하게 사용될 수 있는 웹 프로그램이 있군요.

http://iphonemockup.lkmc.ch/


YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST



NHN다니시는 변해준씨 (36)가 개발한 Heavy Mach가 2주만에 게임 다운로드 3위로 등극하셨다네요.
10만 다운로드로 약 1억 4천만원의 수익을 얻게 되셨다는데 대단하네요 ^^



그런데 일전에 이런 기사를 봤는데요.

한국, 앱스토어 게임 사전 심의하는 유일한 국가

 게임을 서비스하려면 게임물등급위원회에 등급심사를 받아야한다는 것을 지인으로부터 듣게 됐다. 
그는 게임위에 전화를 걸어 게임등급을 받는 방법을 묻다가 등급을 받으려면 사업자등록증이 필요하다는 말에 힘없이 전화기를 내려놨다. 
자신이 다니던 회사는 잡쉐어링을 인정하지 않는 회사였기 때문에 게임을 개발하려면 직장을 그만 두어야할 상황이었던 것이다. 

으흠... 그럼 NHN 은 잡쉐어링을 인정한다는 말인가요 아니면, 한국 앱스토어에 올리지 않고 외국에 올린건지..
좀더 알아봐야 겠군요 ^^;

방금 맥부기 카페에서 물어봤는데, 외국에 올리면 문제 없다는 답변을 받았네요 ^^... ㅎㅎ


어쨋든 대단하다는 생각도 들고, 열심히 저도 만들어봐야 겠다는 생각이 드네요.

모두 모두 화이팅!



YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST



iPhone에서 간단한 겜을 만들까 검색했더니 기존 Cocoa Obj-C 버전의 Cocos2d 게임라이브러리를 iPhone용으로 공개했네요.

다음에서 라이브러리를 다운 받아볼 수 있습니다.
Cocos2d game library homepage

라이센스 문제?
일단 Cocos2d for iPhone은 기존의 LGPL을 따른다고 하네요. 소스 공개해야겠죠? 
그런데 이런 문구가 있더군요.
이곳에 말이죠?

cocos2d for iPhone license:
---------------------------

cocos2d for iPhone was originally licensed under the GNU LGPL v3 license.
But since it is impossible to distribute 3rd party dynamic libraries
for the iPhone, this license extends the GNU LGPL v3 license by allowing you: 
  a) to use cocos2d for iPhone as a static library
  b) to include all or part of the cocos2d for iPhone sources inside your project

This means that if you do a) and/or b) you are NOT forced to release your 
source code under the GNU LGPL v3 license.

즉, 기본적으로는 LGPL v3이긴 한데 3rd party 동적 라이브러리로 배포하기 어렵기 때문에, 정적 라이브러리 식으로 사용하거나, 프로젝트에 그냥 소스의 일부 또는 전부를 포함하여 컴파일하면 LGPL의 규제를 벗어날 수 있다고 하네요.

엡스토어에 올려도 될까?
또 찾아보던 중 다음과 같은 글들이 있더군요.

Cocos2d accepted by apple?!

They've already allowed games using it on the app store Chuck the Ball and Sophos Tongue are both cocos2d.
이미 엡스토어 Chuck the Ball과 Sophos Tongue라는 게임이 올라와 있네요.

한 술 더 떠서 아래 링크에는 위 라이브러리를 사용하여 올린 게임들이 있다고 하네요.
http://code.google.com/p/cocos2d-iphone/wiki/GamesUsingCocos2d


그럼 어떤걸 만들 수 있을까?

다음은 홈페이지에서 자랑하고 있는 기능 목록입니다.

Main features


그렇군요. 꽤 되는거 같네요. ㅋㅋ
다음은 간단한 기능 목록 유투브 입니다.


뭔가 좋은 기능을 많이 제공 하네요.

시작하려면 튜토리얼이 필요해

아래 사이트는 간단한 튜토리얼 입니다.
http://monoclestudios.com/cocos2d_whitepaper.html

그리고 몇가지 팁이 있는 블로그도 있네요.

http://blog.sapusmedia.com/search/label/cocos2d

스켈릭톤 코드도 있군요!
http://groups.google.com/group/cocos2d-iphone-discuss/web/sample-games

실행해 보면 간단한 게임이 나옵니다. (게임이긴 한건가... ㄷㄷㄷ; )
그냥 마우스 클릭하면 그쪽으로 움직이고 공으로 가면 끝..;


그래도 게임의 메뉴와 이정도의 스켈릭톤 코드면 뭐든 만들 수 있을거 같네요.
그런데 이 소스는 약간 예전 버전의 cocos2d버전을 사용한 거 같네요.
현재 버전 0.7 으로 포팅하는데 약간 손이 갑니다.. 다음 포스팅 때 얘기를 할까 합니다.

일단 현재 버전의 데모를 돌려보도록 하죠.

백문이불여일행

Cocos2d for iPhone을 아래 사이트에서 다운로드 받습니다.
현재 버전은 0.7이네요.

맥은 똑똑해서 다운받은 tar.gz 더블클릭하면 그냥 내용이 보입니다.

폴더에서 xcode프로젝트 파일을 더블클릭합니다.

엄청 많이 있네요.
TestCocos2는 제가 만든겁니다; 무시..;;
일단 test2 그룹을 제외하면 라이브러리 관련 그룹이라고 보시면 됩니다.
중요한 것은 Targets라는 현재 프로젝트를 설정하는 것인데요.

메뉴에 Project/Set Active Target과 Set Active Executable을 원하는 놈으로 설정합니다.

그리고 당연히 무조건 애플키 + R 을 하면 Compile & Debug Run이 됩니다.
만일 안되면 일단 라이브러리가 생성안되서 그런걸 수 있으니 cocos2d 를 target으로 하고 컴파일 해주세요. 그럼 .a 라이브러리 생깁니다.
만일 네트웍 기능 쓰는 데모면 cocosLive라이브러리 target설정 후 컴파일해야하고 물리엔진 쓰면 Chipmunk라이브러리도 미리 컴파일해서 마련해야 합니다. 


YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST



맥 사파리나 파이어 폭스에서 특정 웹의 스트림 동영상을 보려고 할 때 
MIME 형식 application/x-mplayer2 이것이 지원 안된다고 안나오는 경우가 있습니다.


이런 경우 Flip4Mac을 설치하면 됩니다.
그리고 오디오 코덱을 위해서 http://perian.org/ 에 가서 이것도 깔아주면 됩니다.

먼저 Flip4Mac을 다운로드 해보죠.

다운받으러 가기






그리고 오디오 관련 코덱도 더 다운받아야 합니다. 

http://perian.org/ 받기


그리고 설치를 둘다 하시면 아래와 같이 사파리에서도 Windows Media player용 Quick time 인터넷 플러그인이 설치되어 보이게 됩니다.


YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST
  1. BlogIcon ahnsw 2009.05.07 23:59 신고  댓글주소  수정/삭제  댓글쓰기

    오 마이 갓!!!! iPhone 관련 글 보러 왔다가 우연잖게 아주 좋은 정보 얻어 갑니다. 저도 인터넷으로 영어강좌를 듣는겍 있는데 제 맥에서는 안되서 항상 윈도우로 들어갔어야 해서 상당히 불편했는데 이제 바로 시청 할 수 있게 되었네요~~ ㅎㅎㅎ

  2. 설레임 2011.09.16 17:24 신고  댓글주소  수정/삭제  댓글쓰기

    다해봤는데 안돼요 흑흑



티스토리 툴바