일단 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하고 ..

실행해보았습니다.

 

+ Recent posts