태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
 

 
블로그 이미지
Android, iOS 어플 개발자 어플 소개, 관련 정보, PSP 게임, Wii 게임, NDS 게임, 토런토 공유, 일본, 재테크에 관심있습니다. My App Factory


 
 

[cocos2d, iOS 4.0] jpg 사용시 발생하는 문제해결

컴퓨터/cocos2d & objective C | 2010.07.02 23:29 | Posted by 뉴스로 영어공부 My App Factory

오늘도 열심히 4.0으로 앱들을 변경하는 중입니다. cocos2d에서만 발생하는 문제인지 모르겠으나 jpg 이미지들이 4.0에서는 모두 검거나 흐릿하게 출력되는 버그가 발생했습니다. (png파일들은 문제없더군요.)
구글링해서 찾은 해결방법입니다. 사용하는 cocos2d 버젼에 따라 위치 차이는 있겠으나 동일한 구문을 수정해주면 될듯합니다. 

CCTexture2D.m 파일의 - (id) initWithImage:(UIImage *)uiImage 함수중

hasAlpha = ((info == kCGImageAlphaPremultipliedLast) || (info == kCGImageAlphaPremultipliedFirst) || (info == kCGImageAlphaLast) || (info == kCGImageAlphaFirst) ? YES : NO);

에 다음 부분을 추가해 주시면 해결됩니다. 

hasAlpha = ((info == kCGImageAlphaNoneSkipLast) || (info == kCGImageAlphaPremultipliedLast) || (info == kCGImageAlphaPremultipliedFirst) || (info == kCGImageAlphaLast) || (info == kCGImageAlphaFirst) ? YES : NO);
에휴.. 오늘도 깜놀했군요. ^^;


결론부터 말씀드리면 디바이스 리셋부터 한번 해보시기 바랍니다. 

4.0 업데이트후로 게임이 다운되거나 아예 동작이 안된다는 리뷰들이 올라와서 iOS4.0에서 문제가 있는 어플들 하나씩 새로 올리는 중입니다. 어제 하나를 새로 빌드해서 올리고 다음 어플을 고치는 중에 OPenFeint관련 에러가 발생하여 최신 버젼으로 교체를 하게 되었습니다. 문뜩 어제 올린것도 아직 리뷰전이니 기왕이면 같이 교체해주는것이 나을것 같아 OPenFeint를 새로 넣어주고 빌드하고 있었습니다. 어제는 분명, 아이폰에서 테스트 잘 하고 이상없어서 올린 어플이 갑자기 문제가 생기기 시작했습니다. 기존 어플을 삭제하고 새로 인스톨하면 처음 실행은 되는데 이후로는 실행하면 SIGARBT 에러가 계속해서 발생하는 것이였습니다. 

4.0으로 업그레이드한후 문제가 생기면  Framework를 새로 넣어보라는 글이 있어 전부 지우고 새로 등록해도 아무런 해결이 안되더군요. 빌드 옵션부터 cocos2D도 최신으로 올려보기도 하고 Warning 나오는 부분들 다 찾아다니고.. 근 하루를 허비해서 이시간까지 봐도 뚜렷한 해결방법을 못 찾았습니다. 

어디가 문제인지도 나오지 않는 에러에.. 시뮬레이션에서는 생생하게 잘 돌아가고.. 아이폰에 넣기만 하면 계속 똑같은 현상.. 참.. 죽을 맛이더군요. 

꼬박 하루를 시달리다 혹시나 싶은 마음에 아이폰을 껏다켜니 거짓말처럼 문제가 없어지는군요.... ㅜ.ㅜ

예전에도 XCode가 이상하면 재실행하라는 글을 올린 적이 있는데.. 
2010/04/07 - [프로그래밍 관련/XCode] - [XCode Tip] XCode에서 아이폰으로 인스톨시 "Failed to upload MyApp.app" 에러 발생

이건 모.. 뻑하면 껏다켜야 해결되는군요. xcode버젼업하고나면 멀쩡히 잘 있는 파일들 링크가 사라져서 파일 못 찾겠다고 나오질 않나.. 프로세스는 종료라고 나오면서 꼭 디버그 멈춤을 해줘야 빌드를 풀어주질 않나.. 

윈도우, 비쥬얼 스튜디오에 너무 익숙해서 그런것일수도 있지만 개발환경은 아직 윈도우에 못 따라가는듯 합니다. 
에휴.. 오죽하면 저 XCode 그림이 망치가 아니라 삽을 넣어도 어울리겠다는 생각이 드는군요. 



[xcode]error g++ -4.2 failed with exit code 1

컴퓨터/XCode | 2010.06.14 15:25 | Posted by 뉴스로 영어공부 My App Factory
어제 기존 App에다 스코어보드가 필요해서 OPenFeint를 새로 붙이고 있었는데 Frameworks 까지 추가하고 나니 갑자기 저 에러가 나오기 시작했습니다. 설정문제인가 하는 생각에 이것저것 건드려봤지만 여전.. 구글링해봐도 제각각 다른 원인에 이유를 모르겠다는 글들만 잔뜩 보이고.. 

어디선가 한사람이 그건 에러가 아니다. 라고 적어놓았더군요. 그 이전에 나온 warning들 중에 이유가 있을것이라고.. 
제 경우는 Duplication File의 warning이 있었는데 이게 문제였습니다. 페이스북을 연결해놓은 앱에도  OPenFeint를 붙이며 다시 페이스북 코드가 들어가서 발생한 에러였네요. 

^^ 저 문제로 5시간정도? 고생했었는데 알고 보니 허탈하군요. 그래도 좋은 공부가 되었습니다. 

[objective C] New Line 개행문자

컴퓨터/cocos2d & objective C | 2010.04.08 03:03 | Posted by 뉴스로 영어공부 My App Factory


너무 간단한 것이지만 기존 언어들과 상이한 부분이라 기록합니다. 

C계열에서 공통으로 사용되는 개행문자는 "¥r¥n"입니다만,
Objective C에서는 "\n"입니다. 
(이제껏 기호 "¥" 와 "\"는 같은 것이라고 생각하며 살았습니다만 틀린 경우도 있다는 걸 처음 알게 되었군요... )



새로 생성한 프로젝트에서 주로 발생하는 것 같습니다. 제 경우는 처음 인스톨 할때는 매번 발생하는 군요. 
Active SDK를 Device로 선택하고 빌드할때 종종, 인스톨에 실패했다는 메시지를 출력할때가 있습니다. 정작 아이폰을 확인하면 어플은 제대로 설치가 되어 있구요. 디버깅을 시도할 경우 설치는 되지만 어플이 구동되지 않아 디버깅도 불가능합니다. 

AppID나 Profile에 이상이 없다면 XCode 자체적인 문제입니다. 해결방법은 간단, XCode를 재실행하면 되는군요.
죄없는(?) 개발자를 가끔 놀래키는 XCode입니다. 


[XCode Tip] IPhone Simulator 초기화 혹은 파일 삭제

컴퓨터/XCode | 2010.04.06 01:32 | Posted by 뉴스로 영어공부 My App Factory

개발 도중에 어플에서 필요한 파일을 생성해서 사용하다가 초기상태 - App이 처음 설치된 상태에서의 테스트를 하려고 보니 어디서 파일을 지워야 할지를 모르겠더군요. Finder에서 생성한 파일이름으로 검색해도 찾지를 못해서 하마트면 코드로 파일 삭제를 하는 귀찮은 짓을 할뻔했습니다. 

아래의 폴더에 시뮬레이터에서 사용되는 App의 파일들이 설치되어 있습니다. 일련번호로  폴더명이 생성되어 있지만 폴더안의 실행파일을 보면 어떤 프로젝트인지 아실수 있을겁니다.  NSDocumentDirectory에 파일을 만드셨다면 App폴더의 Documents내의 파일을 삭제하시면 됩니다. 


/Users/<username>/Library/Application Support/iPhone Simulator/User/Applications





cocos2d 사운드 출력 코드

컴퓨터/cocos2d & objective C | 2010.03.15 16:46 | Posted by 뉴스로 영어공부 My App Factory

cocos2d에서의 사운드 출력방법입니다. 

개발중인 게임에 효과음이 필요하여 관련소스를 검색해 보니 OpenAL에 대한 자료가 많이 나오더군요. 
OpenAL은 오픈API인 3D Sound Library이며 Loki Software라는 곳에서 개발하였으나 현재, 이회사는 없어지고 Creative와 Apple이 관리하고 있다고 합니다. Apple이 관리하는 오픈소스이기때문인지  XCode설치시 IPhone용 라이브러리에 OpenAL이 포함되어 있음으로 따로 찾으실 필요는 없습니다.  




OpenAL을 직접 이용하셔도 괜찮지만, cocos2d에서는 더 간단하게 사용할수 있도록 CocosDenshin이라는 이름의framework가 준비되어 있습니다. 특별한 효과가 필요없이 단순 재생만 할 경우, 아래의 코드만으로 간단히 구현할수 있습니다. 


//"cocos2d.h"에 import되어 있지 않음으로 별도의 import 선언이 필요합니다. 

#import "SimpleAudioEngine.h"


//효과음 재생

[[SimpleAudioEngine sharedEngine] playEffect:@"effect1.m4a"];

//배경음악재생

[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"backgroundMusic.m4a"];

//배경음악재생 중지

[[SimpleAudioEngine sharedEngine] pauseBackgroundMusic];




포맷은 기본적으로 "wav", "mp3"을 지원하는 이외에 "m4a"를 지원하고 있습니다. 아이폰에 기본 설치된 음성메모App에서 녹음할 경우, m4a로 파일이 생성됩니다. 필요한 효과음을 직접 음성메모로 녹음한 후, 이를 메일첨부를 이용하여 PC로 전송하여 바로 이용하니 대단히 편리하였습니다. (효과음 구현으로 일정에서 하루를 잡았었는데 허무할 정도로 빨리 끝나버렸습니다. - 덕분에 잠깐 블로그질을.. ^^;)