분류 전체보기 284

battle.net 2 대한민국만 본인확인?

문제의 스타크래프트 2의 오픈베타 일이다. 한번 해보자는 식으로 받아서 설치하는 중에, 계정이 필요하다고 해서 만들기로 결정했다. 허나, 왠 본인확인일까. 휴대폰이던, 인증서든 이용하란다. 국내 사이트라면 그러려니 라고 넘어갈 수도 있겠는데, 얘네는 외쿡 사이트 아닌가? 그렇다면, 궁금한 점이 생긴다. 우리나라만 본인확인을 하는건지, 아니면 다른 나라에서도 battle.net 2 계정을 만들기 위해서 이러한 본인확인 절차를 거치는지. 만일 우리나라만 이런거라면, 문제가 있는거니깐. 미쿡으로 국가를 바꾸어 재가입 시도.. 이런 xx 주소 입력 만으로 계정 생성이 완료된다. 왜 우리나라는 언제나 본안확인을 이딴식으로 하는지, 참 낙후된 인터넷 강국이네 낄낄

카테고리 없음 2010.07.27

SBFormattedPhoneNumber in iPhone OS 4.0 GM Seed

기존 버전에서는 폰의 전화번호를 가져오기 위해서 NSUserDefault 클래스에서 SBFormattedPhoneNumber로 명시된 키에 해당하는 값을 가져오면 되었다. 그런데 허허.. 없다. 혹시 인터페이스라도 생긴건가??? 하여튼 없다. ㅠㅠ 미련을 버리지 못해, 심볼을 뒤지기 시작했다. liblockdown.dylib에서 phonenumber 심볼을 찾았다. (for architecture armv6):liblockdown.dylib: 000082dc S _kLockdownPhoneNumberKey 먼 산을 바라본다. 내부 심볼인것 같다. 쥐쥐. 2010.06.17 쥐쥐는 아닌것 같다. 프로젝트 옵션에서 deployment target을 3.x대로 해두면, 다시 이 값이 나타난다. 새로운 기능을 ..

struct stat,dirent in iPhoneOS 4.0 GM

__DARWIN_64_BIT_INO_T 플래그가 설정되어 있다. 때문에 stat 구조체의 길이가 96에서 108로 변경되었다. readdir도 못 써먹게 되어있다. dirent 구조체의 길이가 264에서 1048로 변경되었다. 망할 ㅠㅠ 리빌드 말고는 대처할 방법이 생각 안난다. .2010.06.17 좀더 확인해보니 시뮬레이터만 그렇고, 디바이스에서는 예전부터 설정이 되어 있다. 즉, 사용자 입장에서는 아무상관없는거다. 그래 개발하는 사람은 고생하라는건가. ㅋㅋ

iPhone SDK 4.0 beta3에서 기존 라이브러리 링킹 실패(symbol not found)

iPhone SDK 4가 아직 완성 release버전은 아니지만, 이전의 호환성을 위해서 기존에 빌드된 라이브러리를 그대로 링킹 시도를 해보았는데. 분명히 링킹이 되었음에도, symbol not found 오류를 내뱉어낸다. ar로 모듈을 까보아도 분명히 심볼은 있음을 확인할 수 있다. 혹시나 해서 특정 object 파일을 까보기 시작했다. 자체 makefile로 빌드한 모듈 x86.o: 00000000 t +[XWHWInfo_local getDeviceID] x86.o: 000000b1 t +[XWHWInfo_local getPhoneNumber] x86.o: U .objc_class_name_NSObject x86.o: U .objc_class_name_NSUserDefaults x86.o: U .o..

Finder의 압축하기를 console에서 하기.

아이폰용 어플의 패키징을 해서 줘야하는 경우가 있다. 일반적인 nix 환경에서는 tar.gz 으로 전달해주면 끝인데, 배포용 어플을 그렇게 주면, invalid signature 등의 오류로 appstore에 등록이 안된다고 한다. 모듈을 풀어서 zip으로 다시 묶어도 말이다. 그런데 Finder에서 zip으로 묶으면 잘 된단다. 혹여나 해서 구글링을 해보니 ditto란 툴로 하면 Finder와 같은 방식으로 묶어준다고 한다. 하나 아쉽게도 옛날 자료라서 최근 버전에서는 정상작동 하지 않는다. mac osx 10.6.2에서 확인해본 결과 ditto -c -k --keepParent --sequesterRsrc [압축할 파일 목록] [압축된 파일이름] 으로 정상 압축에 성공했다. 과연.. appstore에..

dismissModalViewController 후 removeFromSuperview

UIKit의 구조는 참으로 적응이 쉽지 않았다. 이래저래 삽질하면서 겨우겨우 돌아가게 만들고 있었다. 어느정도 익숙해지고, 안정되었다고 생각할 때쯤, 초반에 사용하던 구조에 문제가 있음을 확인했다. 너무나도 C/C++ 같은 구조에 박혀 살다가 그런건지는 몰라도, 어떤 ViewController가 닫히기 전에 자체적으로 dismiss 한 후에, superview에서 빼줘야하는 일이 생겼다. 문제는 animated:YES 애니메이션이 다른 스레드로 돌아가고 있는 중에 superview에서 제거하면, UI가 꼬이는 현상이 발생한다. 물론 애니메이션을 끄거나, 또 다른 스레드가 감시하여 애니메이션이 끝난 후에 제거하면 괜찮다. 그러나 이 짓을하자고 스레드들 생성하는 것도 웃기고, 애니메이션을 끄자니 사용자들 시..

어이 상실한 alloc init

최근 쉬지 않고 iPhone 앱을 개발 중이다. 계속 추가 요구사항이 들어와 어쩔 수 없는 일이다. 그나마 잠잠해지나 했더니, 4.0 등장 소식과 OS 3.2 업데이트. 하하, 혹시나 모를 위험에 대비하려 설치를 해보았는데, 이게 왠일 대부분 잘 작동하는데, 엄한 곳에서 죽는 일이 발생했다. 위치는 백그라운드 스레드에서 AutoReleasePool을 생성했는데, 생성하다가 죽는단다. 잘 돌아가던 코드였는데 참으로 이상하다 이상하다 이상하다 이상하다 이상하다 다섯번을 외치고 나서야 겨우 깨달았다. 멍청하게도 init 후 alloc을 해버린 것을. 그런데 기존에는 어째서 돌아갔을까? =_= 이 글을 보는 사람은 이런 실수 안하시기를 ^^;

iphone duplicate symbol

후.. 외부 모듈 둘을 이용해야하는 상황 근데 그 외부 모듈 둘이 기반을 동일한 녀석을 사용하고 있다. 해서 동일한 심돌이 두 모듈에 있는데, 어쩌지 일단 gcc 옵션을 시도!! -multiply_defined $ > /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/powerpc-apple-darwin9-gcc-4.2.1 --help -multiply_defined powerpc-apple-darwin9-gcc-4.2.1: argument to '-Zmultiply_defined' is missing $ > 아주 이 옵션을 빼고 빌드했나보네.. 그럼 해결 방안은? 뭐 찾아봐야지..

카테고리 없음 2010.03.25

VM 으로 네트워크 이용할 때.

어쩌다가 보니 맥북 프로에 VM을 설치하여, 다른 운영체제를 돌리고 있다. 워낙에 안정적인 어플이다보니 무리없이 잘 사용하고 있는데, 최근 치명적인 문제를 겪고 말았다. 무엇이냐 하면, VM안에서 네트워크 전송속도가 10MB/s를 넘어가면서 VM에 행이 걸리는 현상이 발생하는 것이다. 처음에는 linux desktop과 연계시켜둔 synergy의 움직임이 멈추길레 단순 네트워크 장애인가 했는데, 이것이 VM에서 네트워크 자원을 다 가져가면서 synergy가 사용할 대역폭 부족으로 인한 렉이였는데, 거기게 VM이 먹통이 되면서, mac osx 시스템이 사실상 다운 되었다. 이 문제를 피하려 VM에 대역폭 제한을 걸어 8MB/s로 줄였는데, 소용 없다. 그냥 osx에서 네트워크 자원을 이용해야겠다. ㅠㅠ

IT한 것/OSX 2010.01.13

시뮬레이터에서 어플이 실행되지 않을 때

Xcode 오류 메시지를 보면 failed to launch simulated application: unknown error 라고 뜨며 시뮬레이터에서 어플이 실행이 실패한다. 보통 위의 메시지로 구글링을 해보면, Xcode 캐쉬 지우고, 시뮬레이터 캐쉬 지우고 시뮬레이터 닫고, Xcode닫고, 시몰레이터 디렉토리 지우고, OSX를 리부트 하라는 등의 답변이 많이 달려있다. 그러나 내 경우 위의 해결책으로는 해결되지 않음을 확인했다. 오히려 더 간단했다. 원인은 plist 파일에 등록된 실행파일 이름과 타겟 옵션에 설정되어진 제품 이름 필드인 Packaging/Product Name 항목이 서로 일치(not match)하지 않는 것이 였다. 아마도 제품 빌드를 A라는 이름으로 했는데, 시뮬레이터는 B라는..