페이지

2012년 2월 11일 토요일

iOSOpenDev와 PreferenceBundles

iOSOpenDev 라는 Theos 보다 Xcode 친화적인 개발환경이 나왔다.
길다란 네이밍으로 자동완성 없으면 코딩하기 ㅈㄹ불편한 iOS SDK에 단비 같은 것임에 틀림이 없다!
그런데, PrivateFramework 와 PreferenceBundles 가 아직 들어있지 않다. 제작자는 곧 넣을거라는데, 당연히 못 기다린다.
iOSOpenDev 만으로는 안되고 Theos 와 같이 사용하면 편하게 세팅할 수 있다.


Substrate Tweak 과 PreferenceBundle 이 같이 들어있는 패키지 만들기
  1. 일단 Substrate Tweak 프로젝트 SampleTweak 를 만들고, Cocoa Touch Library 타겟 SampleTweakSettings 을 추가한다.
  2. SampleTweak 의 Build Phases / Target Dependencies 에 SampleTweakSettings 를 추가한다.
  3. SampleTweakSettings 의 Build Settings 에 다음의 설정값들을 추가하거나 변경한다.
    FRAMEWORK_SEARCH_PATHS      "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks"
    HEADER_SEARCH_PATHS         /opt/theos/include
    INSTALL_PATH                /Library/PreferenceBundles/SampleTweakSettings.bundle
    
  4. SampleTweak/Package/ 의 내용을 아래와 같이 맞춰준다. 필요한 파일들은 추가
    Theos 에서 Preferences 프로젝트를 만들고 Resources/ 아래의 파일들을 옮긴다.
    DEBIAN/
            control
    Library/
            MobileSubstrate/
                    SampleTweak.dylib
                    SampleTweak.plist
            PreferenceBundles/
                    SampleTweakSettings.bundle/
                            SampleTweakSettings.plist
                            en.lproj/
                                    SampleTweakSettings.strings
                            Icon-Small.png
                            Icon-Small@2x.png
                            Info.plist
                            ko.lproj/
                                    SampleTweakSettings.strings
            PreferenceLoader/
                    Preferences/
                            SampleTweakSettings.plist
    
  5. Frameworks 에 Preferences.framework 를 추가하고, SampleTweakSettings 타겟의 Build Phases 에도 추가한다.
    /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/PrivateFrameworks/Preferences.framework
    
  6. Frameworks 가 제대로 링크가 안되면, HEADER_SEARCH_PATHS에서 /opt/theos/include 를 빼고, /opt/iOSOpenDev/include 에 몇몇 링크를 만든다.
    cd /opt/iOSOpenDev/include
    sudo ln -s ../../theos/include/Preferences .
    sudo ln -s ../../theos/include/GraphicsServices .
    sudo ln -s ../../theos/include/UIKit .
    sudo ln -s ../../theos/include/WebCore .
    sudo ln -s ../../theos/include/Availability2.h .
    sudo mkdir QuartzCore
    sudo ln -s ../../theos/include/QuartzCore/QuartzCore2.h QuartzCore/
    

댓글 없음:

댓글 쓰기