2014년 12월 11일 목요일

유료 개발자 계정 없이 OS X Pre-release 업데이트 하는 방법

아래 두가지 중에 필요한 것 골라서 터미널에서 실행한 뒤  AppStore에서 업데이트 탭을 가보면 업데이트가 뜬다.

퍼블릭 베타 (like the “YosemiteBetaAccessUtility”):
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate CatalogURL https://swscan.apple.com/content/catalogs/others/index-10.10beta-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog.gz
개발자에게만 제공되는 seed:
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate CatalogURL https://swscan.apple.com/content/catalogs/others/index-10.10seed-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog.gz

2014년 11월 27일 목요일

맥에서 특수문자 입력하는 가장 간단한 방법

⌃⌘ + Space
blogger.com 에서 글 편집창 내부 등 일부 Web 편집기 안에서는 동작 안하는 경우가 있다.

끝.

Xcode 에는 Delete Line 기능이 없다?

Windows에서 programming 하다 Mac에서 처음 Xcode로 programming을 할 때 굉장히 당혹스러웠던 것 중 하나가 있었다. 바로 Delete Line, 행 삭제 단축키가 없는 것이었다! 단축키는 없지만 기능은 있겠지 하고 Key Bindings 를 뒤져 봤는데 웬걸~ 없었다. Google search gogo~
역시 조금 복잡하지만 해답은 있었다.

1. Xcode를 종료하고 아래 File 을 연다. (혹시 Xcode의 위치가 다르면 Xcode 설치한 곳에서 아래 위치를 찾아가자)
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

2. Deletions 부분에 아래 항목을 추가한다.
        <key>Delete Line</key>
        <string>selectLine:, delete:</string> 

3. 이제 Xcode를 실행하고 설정의 Key Bindings 에서 Delete Line을 검색해보면 항목이 생긴 것을 볼 수 있다. 단축키를 지정하자.(난 원래 있던 Duplicate Line을 지우고 ⌘+D로 지정했다.)

4. 끝~! ⌘+D 마구마구 누르면 마구마구 지워진다.

그런데 Apple 은 왜 이걸 안넣어 놓은 거지? 걔네는 행 삭제 안하나?

※ 글쓰는 현 시점에 Xcode 6.1 에서 잘 동작한다. 

2014년 11월 24일 월요일

iOS 8에서 framework 사용시 dyld: Library not loaded: ... Reason: image not found 문제

천신만고 끝에 framework 을 app에 집어 넣어서 빌드가 됐다.
하지만 이게 웬걸 바로 crash~

구글링 하는데 이 방법 저 방법이 난무했다. 크게 build setting에서 bundle에 집어넣는 것과 framework build시 installation directory를 '@executable_path/../Frameworks'로 바꿔주는 것 두가지가 있었는데 전자는 소용없었고 후자는 이미 하라는 데로 되어 있었다.
삽질하다 app package 내용을 살펴봤는데 뭔가 묘한 느낌이 나서 저기 저 사이에 '..'을 없애 보았다.

잘 되네.

부라보~ 와 이런~ 썩을 것들! 을 동시에 외치며 stackoverflow에 다시 가서 글 좀 싸지르려고 하는데 reputation 부족으로 댓글은 못쓰고 유심히 보니 apple developer forum link가 달려있네. 가서 보니 내가 삽질하다 알아낸 얻어걸린 이 방법으로 다들 해결했다고 써 있구만.

그 문제의 stackoverflow link

대답은 위에서 말한 bundle에 집어넣는 방법을 써놓고 두번째 방법에 대한 언급 없이 link는 이걸 달아놓다니..

간단히 요약하면

(1) framework build 할땐 Build setting 에서 Installation directory 를 '@loader_path/Frameworks' (path와 Frameworks 사이에 ..이 없는것에 주의) 로 해주고
(2) General setting에서 Embedded binaries에 framework 넣어주면 끝.

p.s 처음 세팅이 loader_path 였고 구글링 결과는 executable_path 였는데 둘다 잘됨. 차이는 각자 연구해보시라.
loader_path 와 executable_path에 대한 reference

2014년 7월 17일 목요일

undefined reference to `std::__throw_bad_alloc()'

undefined reference to `std::__throw_bad_alloc()'
위와 같은 링크 에러가 날 때가 있다. 보통 하나만 나지 않고 저것을 비롯한 여러 표준 C++ 라이브러리 관련 링크 에러가 같이 난다.
원인은 표준 C++ 라이브러리가 링크 안되서이다. g++로 컴파일 하는 경우 몇몇 이 같은 링크를 자동으로 해줘서 링크 안해도 몰랐다가 gcc를 사용하거나 해서 자동으로 안되면서 에러가 발생하는 것이다.
해결은 간단하게 -lstdc++ 옵션을 추가해 주는 것이다.

알게 된 출처: Stack Overflow 링크

2014년 5월 10일 토요일

Xcode Plugin

1. Home키가 현재 라인의 첫 글자로 이동하도록 변경 (Xcode_beginning_of_line)
  해당 플러그인 Github에서 소스 다운로드 한 다음 Xcode에서 열고 빌드 하면 자동으로 설치.
  이후 Xcode 재시작.

2014년 4월 25일 금요일

GCC 4.8 + GDB 7.4 환경에서 QtCreator Debug 모드의 변수 값이 보이지 않을 때 해결방법

해결책 : cmake 인자에 다음을 추가하여 컴파일시 디버깅 정보 포멧을 dwarf-3를 사용하도록 설정 

-DCMAKE_CXX_FLAGS="-gdwarf-3" 

원인 : gcc 4.8 에서 사용하는 디버깅 정보 포멧과 gdb 7.4 이하에서 사용하는 포멧이 달라서 디버깅 정보를 인식하지 못함. gdb를 7.5 이상으로 쓰는 것도 하나의 방법임.

2014년 3월 14일 금요일

Parallels 에서 ctrl + alt 로 고정된 keyboard & mouse 입력 해제 단축키 바꾸기


How to change ctrl + alt key in Parallels 8, 9

시스템 환경설정 - 키보드 - 단축키 - App Shortcuts 로 간다.
"Parallels Desktop" 아래에 "입력 해제" 항목의 단축키를 바꿔주면 된다.

이 항목이 없을 경우 "+" 버튼을 누른 뒤,
응용 프로그램을 Parallels Desktop 선택하고
메뉴 제목에 "입력 해제" (영문일 경우 "Release Input") 를 넣고 항목을 만든 다음 키를 바꾸면 된다.

구글링 했다가 이 방법을 보고 한글인데 영문으로 메뉴 제목 입력했다가 얼마나 삽질을 해댔던지..