옛글
[Gitflow] release 와 release 삭제
해당 git repository 에서 git flow init ( 릴리즈를 할 폴더를 정함 ) - git flow release start (버전명) - git flow release publish (버전명) 을 통해 릴리즈를 하며 릴리즈 삭제를 하고 싶다면, git push origin :(버전명) 혹은 :(폴더)/(버전명)위 명령어는 로컬과 같이 저장소를 바꿔라인데, 로컬에는 릴리즈가 없기 때문에 삭제가 됨.
MAC App용 이미지 파일 변경앱 'img2icns'
MAC App 의 icon 파일은 iOS처럼 png 등 이미지 파일로는 불가능합니다. 확장자가 icns라는 파일이 필요한데, 포토샵에 아이콘빌더 등을 통해 만들수도 있지만, 굳이 어려운방법보다 너무나 간단하게 이미지를 icns파일로 변경을 시켜주는 앱이 있어 소개합니다. http://www.img2icnsapp.com/위 사이트에서 Download 무료버전으로도 충분히 실사용하는데 문제 없이 잘되네요~!
MAC App sandboxing 하기
맥앱스토어가 더이상 샌드박스를 적용하지 않는 앱의 경우에는 허용하지 않겠다는 발표아래 샌드박싱을 하는 방법을 퍼와 포스팅합니다. https://developer.apple.com/library/mac/#documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxQuickStart/AppSandboxQuickStart.html#//apple_ref/doc/uid/TP40011183-CH2-SW3 에서 퍼왔으며 생각보다 간단하니 천천히 따라하시면 될 듯 합니다. (맥 Developer 인증서가 없이 자체 인증서 생성으로 테스팅이 가능합니다. Sandbox가 적용되어 있는 iOS앱처럼 (숨겨져있는) 라이브러리에 앱 폴더가 정상적으로 만들어지네요)* 애..
iOS앱을 MAC App으로 Porting하기
iOS 와 Cocoa는 유사하지만 생각보다 다른 점이 많다. iOS는 UIKit 을, 맥은 AppKit을. 그리고 iOS는 Touch를 (- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event), 맥은 Mouse를 - 여기서 좀 더 설명하자면 위의 ccTouch 대신 ccMouse를 사용하기에 바꾸어주어야 한다. ccMouseDown, Up, RightMoved 등등 그런 후에 원소스든 아니든 간에 클래스 init 시에 self.MouseEnabled를 꼭 Yes로 해주어야 마우스가 사용가능하다. 맥에서는 Touch 는 트랙패드를 의미한다. iOS는 UI, 맥은 NS를 - 대부분의 프레임워크들의 이름들은 UI를 NS로 바꾸면 작동하지만, 모..
child already added. It can't be added again COCOS2D CCNode에러
COCOS2D 의 CCnode에서 발생하는 에러로 Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'child already added. It can't be added again' 위와 같은 에러메세지를 출력하는 경우, Child가 중첩되어 Add 를 하거나 Child의 Parent가 존재하지 않는데 추가를 하려고 시도하는 경우 발생한다. -(void) addChild: (CCNode*) child z:(NSInteger)z tag:(NSInteger) aTag { if (nil==child) { CCLOG(@"%@ : have nil child. not adding.",self.class); re..
프로그래밍 언어의 종류가 중요할까?
프로그래밍 언어 종류가 중요할까? IT를 시작하는 단계에서 많은 사람들이 "언어의 종류"를 선택하길 고민하고, 선택 한 후 다른 언어와는 전혀 다른 언어로 생각하는 경우가 많다. 위의 통계는 TIOBE에서 제공하는 현재의 프로그래밍 언어의 순위이다. 부동의 1, 2위는 C와 JAVA. Javascript는 생산성때문인지 최근 굉장히 빠른속도로 치고 올라오고 있으며, Objective-C 역시나 iOS 덕분에 순위가 급상승하고 있다. 하지만 과연 프로그래밍 언어가 정말 '중요'할까? 프로그래밍 언어, 라는 단어속에 "언어"라는 말이 들어가있다. 우리가 흔히 사용하는 영어, 한글, 독일어와 같은 '언어'이다. '언어'란 문법과 적는 형식이 다를 뿐 "감사합니다" 라는 말이 어떤 의미인지 안다면 "Thank ..
당하지 말아야 할 소셜(페이스북&트위터)사기!
(금일은 IT World 의 "당하지말자!주의해야 할 소셜 사기" 기사의 일부를 발췌해서 올립니다) '좋아요(Like)'가 아닌 '싫어요(Dislike)' 버튼 페이스북 회원들은 업데이트나 사진의 '좋아요' 버튼 외에 '싫어요' 버튼이 생겼으면 하고 바랄까? 이른바 '싫어요' 버튼 사기가 매번 성공을 하는 것을 보면 그런 듯싶다. 이는 '싫어요' 버튼을 활성화 해준다고 현혹한다. 그러나 실제로는 자바스크립트를 실행시키거나 설문조사 링크로 강제 연결을 한다. 또 다른 사용자에게도 스팸을 전파한다. 419호 사기(419 Scam) 사기꾼들은 페이스북 계정을 해킹해 여행 중에 돈이 떨어져 오도가도 못하는 신세가 된 사람으로 행세한다. 일명 '419호 사기'로 불리는 이 사기 수법은 페이스북의 메신저를 이용한다..
XCode iOS MAC 구별하는 전처리문
타겟을 2개 이상 놓고 iOS(iPhone, iPad) 및 MAC 둘다 지원하는 원소스를 구현하기 위해서는 서로 간에 맞지 않는 프레임워크를 사용하기 떄문에 (이를테면 UIKit이나, UI 관련 된 iOS 프레임워크에 포함되어 있는 소스를 맥북 타겟으로 실행시키면 에러처리를 내버린다) 이를 위해서 전처리문을 통해 맥과 iOS를 구분하는 전처리문을 사용해보자. *(전처리문은 이전 글에 설명이 되어 있습니다.) 아래와 같은 코드를 사용하면, 컴파일하기 전 처리를 하게 되는 전처리문에서 다음 타겟이 맥인지 iOS인지를 구분해서 #ifdef __IPHONE_OS_VERSION_MAX_ALLOWED //iOS용 코드 #elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED) //맥용 코드 ..