PreferenceLoader.

간혹 앱스토어 앱 중에 설정 앱 안에 해당 앱의 설정이 생기는 것을 봤을 것이다.

앱스토어 앱 중에 설정 앱 안에 해당 앱의 설정이 생기는 것을 봤을 것이다.

앱스토어 앱 중에 설정 안에 앱의 설정이 생기는 것을 봤을 것이다.
PreferenceLoader(이하 PL) 는 Cydia 의 앱, 트윅들이 이와 마찬가지로 설정 앱 안에 설정을 만드는 것을 도와준다.
간단한 plist 방식부터 원하는 대로 만들기 위한 bundle 형태까지 지원한다.
PL 자체는 설정 앱을 후킹해서 설정앱이 plist 파일을 읽어들이게 할 뿐이니 만약 호환성 문제가 생긴다면 그건 PL 문제가 아니니 문제가 있다면 버젼마다 테스트를 해보자.

우선 plist 로만 이루어진 설정이든, bundle 이 따로 있든 
/Library/PreferenceLoader/Preferences/ 에 관련 파일이 있어야 한다. 하위 폴더를 생성해도 상관 없다.

일단 이 글에서는 간단한 plist 만을 이용한 설정 제작을 소개할 예정이다.

우선 가장 유용했던 URL을 소개한다. 그나마 제일 자세히 설명된 페이지. 당연히 영문!


모든 포맷(아마도) 이 설명된 곳은 여기 밖에 못본듯..


또 다른 주소를 찾았다. 어떤 앱의 설정 파일인데 예시로 들어져 있는 것을 보니 상당히 많은 종류가 있는 것 같다.


맥이며 XCode3 가 설치되어 있다면 Property List Editor 가 설치되어 있으니 이것 기준으로 설명하겠다.
XCode4 에서는 XCode 자체에 Property List 편집기가 포함되어 있으니 알아서 사용.


대강 기초 틀은 이렇다. (Type에 유의하자.)

(밑에서 설명하려 했는데 밑으로 내려가니 그림이 안보이네. items 하위 항목에 대한 설명은 펼치기!)



우선 루트 하위에 title, entry, items 값이 있게 되는데 이중 title, entry 부분 부터 봐주시길..



entry부분이 모두 여기에 보이게 된다. 여기서는 아이콘을 내가 넣지 않았으니 안뜨는데, 아이콘에는 경로를 써주면 된다. 다른 경로라도 상관없고 plist 와 같은 폴더에 있다면 그냥 이름만 써주면 된다.
cell값은 건드릴것 없고 label은 바꿔주면 된다.



root/title 에 있는 값이 여기에 들어 오게 된다.


items 하위 설명은 위에 첫번째 그림 밑에 펼치기를 누르도록.

잘 모르겠으면 예시파일을 하나 만들어서 아이폰에 넣어서 테스트 해보자.
리스프링이 필요없으며 그냥 설정앱을 다시 열어주면 된다.





items 설명하면서도 말하였지만, 값의 저장경로는
/var/mobile/Library/Preferences/ 하위에  defaults에 지정한 이름으로 저장이 된다.
보통 앱 id와 같게 한다.


이제 중요한 것은 앱에서 설정을 불러오는 방법!


방식은 여러가지가 될 수 있다.
위의 소스는 예전에 내가 그냥 SwitcherMod 소스에서 퍼온것이고, 나의 경우 필요에 따라 만들어진 전처리 매크로를 통해 간편히 사용하고 있다..ㅎ
예를 들면 아래와 같이...



설정이 바뀌었을때 노티를 받는 방법도 있다.

설명하긴 귀찮으니   https://github.com/rpetrich/SwitcherMod 보고 참고 하도록 하자....

Bundle 로 만들어서 값을 바꿀때에는 notify_post 등으로 직접 노티를 쏴주면 크게 차이없이 동일하게 사용가능 하다.

'개발개발 > Mac, iOS' 카테고리의 다른 글

BundleIdentifier로 앱 정보 구하기  (4) 2011.02.23
앱 설치 여부 구하기  (0) 2011.02.22
DEBIAN PACKAGING (deb) 만들기 (수정)  (1) 2011.01.30
MobileSubstrate Extension with XCode  (0) 2011.01.07
cydia 앱, MobileSubstrate  (0) 2011.01.07
형이 군대가기 전부터 우리가 필요로 했던 아이폰 외장 배터리..

이때까지는 iBob+ 양쪽 휴대폰 잭으로 바꾼 케이블 + 쓰던 핸드폰 배터리 조합으로 외장배터리를 사용했었는데
용량이 너무 적었다.ㅠㅠ

마침 거의 새 제품이 좀 저렴하게 올라왔길래 바로 구입!
태양열을 이용한 외장배터리..(물론 케이블로도 충전가능)


구성품으로는 파우치(라고 하나..?), SC700U 본체, 충전 케이블, 젠더 3가지(24핀, 30핀(아이팟/폰),뭔진 모르겠지만 내 블루투스 헤드셋에 쓰이는 듯한 잭)..


(태양열로 충전중에는 위에 저렇게 불이 들어온다)


태양열로 충전을 하려면 풀충전은 거의 20시간이나 해야된다고는 하지만...
애초에 태양열로 충전할 일 없고 아이폰 2번이상 완충(용량은 거의 3배 가까이지만 손실율이 있기에..)에 급처인지 저렴한 가격이면서도 깨끗한 본체!

아직 한번도 사용해보지 않았지만 마음에 든다!ㅎㅎ

단점이라면 조금 큰 크기와(아이폰3Gs 보다 크다) 예쁘지 못한 디자인. 그리고 쓸일없는 플래쉬라이트 기능..(아니, 언젠간 쓸일 있으려나..?)


아 요즘 돈 없어 죽겠는데 자꾸 뭘 질러;;;ㅋ
$25 나 해서 구입 못하고 있었는데..
어제 학원에서 날라온 appshopper 의 푸쉬 "iTeleport 가격 다운!"
맨날 업데이트 푸쉬만 받았었는데!!ㅠㅠ

쨌든 $10 로 할인하였길래 한 3초 고민하고 구입!ㅋ

+ Recent posts