2013-01-03 2 views
1

나는 내가 프레임 워크라는 SpringBoardServices에 대해 들어 본 적이 URL 체계없이 특정 응용 프로그램을 볼 수있는 응용 프로그램을 구축하기 좋아하지만jailbroken되지 않은 iDevice의 아이콘을 터치하지 않고 URL 스키마없이 애플리케이션을 시작하는 방법은 무엇입니까?

는 지금까지 내가 파일 SpringBoardServices.h이 코드를 사용 링커 오류를 항상있다

SpringBoardServices.h : 여기

#define SPRINGBOARDSERVICES_H 

#if __OBJC__ 


#if __cplusplus 
extern "C" { 
#endif 
#include <CoreFoundation/CoreFoundation.h> 
#include <Availability.h> 

    mach_port_t SBSSpringBoardServerPort(); 

#pragma mark - 
#pragma mark Application launching 
    /// Launch an application given the display ID. 
    /// Equivalent to -[UIApplication launchApplicationWithIdentifier:suspended:]. 
    /// @return 0 on success, nonzero on failure. Feed the result to SBSApplicationLaunchingErrorString() to get the error string. 
    int SBSLaunchApplicationWithIdentifier(CFStringRef displayIdentifier, Boolean suspended) __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_3_0); 

    /// Launch an application for debugging. 
    /// The parameters are not known yet... 
    int SBSLaunchApplicationForDebugging(void* unknown, ...) __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_3_0); 

    /// Get the error string from error code returned by SBSLaunchApplicationWithIdentifier(). 
    CFStringRef SBSApplicationLaunchingErrorString(int error); 

#pragma mark - 
#pragma mark Watchdog assertion 

    typedef struct __SBSWatchdogAssertion* SBSWatchdogAssertionRef; 

    CFTypeID SBSWatchdogAssertionGetTypeID(); 
    void SBSWatchdogAssertionCancel(SBSWatchdogAssertionRef assertion); 
    SBSWatchdogAssertionRef SBSWatchdogAssertionCreateForPID(CFAllocatorRef allocator, pid_t pid); 
    int SBSWatchdogAssertionRenew(SBSWatchdogAssertionRef assertion); 
    CFTimeInterval SBSWatchdogAssertionGetRenewalInterval(SBSWatchdogAssertionRef assertion); 

#pragma mark - 

    CFArrayRef SBSCopyApplicationDisplayIdentifiers(Boolean onlyActive, Boolean unknown); 

    CFStringRef SBSCopyIconImagePathForDisplayIdentifier(CFStringRef dispIden); 
    CFStringRef SBSCopyLocalizedApplicationNameForDisplayIdentifier(CFStringRef dispIden); 

    /* 
    SB functions should be generated by MIG! 

#pragma mark - 
#pragma mark SB functions - Media 
    void SBSetMediaVolume(mach_port_t port, int volume) __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_3_0); 

    void SBSetDisableNowPlayingHUD(mach_port_t port, Boolean disable) __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_3_0); 
    void SBSetNowPlayingInformation(mach_port_t port, void* info); 

#pragma mark - 
#pragma mark SB functions - Accessibility 
    void SBSetZoomTouchEnabled(mach_port_t port, Boolean enable) __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_3_0); 
    void SBSetDisplayColorsInverted(mach_port_t port, Boolean inverted) __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_3_0); 

#pragma mark - 
#pragma mark SB functions - Remote 
    void SBApplicationSetSimpleRemoteRoutingPriority(mach_port_t port, int priority) __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_3_0); 

#pragma mark - 
#pragma mark SB functions - Watchdog 

    void SBCancelWatchdogAssertionForProcess(mach_port_t port, pid_t pid, void* unknown); 

    void SBReloadApplication(mach_port_t port) __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_3_0); 
    */ 


#if __cplusplus 
} 
#endif 

#endif 

및 내 ViewController.m 파일에 내 코드를 사용하고 있습니다 :

#import "SpringBoardServices.h" 


-(IBAction)AdSheed { 

    SBSLaunchApplicationWithIdentifier(CFSTR("com.apple.preferences"), false); 



} 

누구든지이 문제를 어떻게 해결할 수 있을지 알고 있습니까?

+2

'SBSLaunchApplicationWithIdentifier()'를 사용하는 방법은 [비슷한 답변을 볼 수 있습니다] (http://stackoverflow.com/a/15455831/119114) 참조하십시오. 문제는 ** 또한 ** 앱에 특별한 자격이 필요하다는 것입니다. 그리고 그렇게하려면 탈옥이 필요합니다 (적어도 본때를 추가하는 법을 모르겠다). – Nate

답변

1

개인 프레임 워크입니다. 당신은 그것을 사용하지 않아도됩니다. 당신은 계획을 사용하지 않고 이것을 할 수 없습니다.

+0

AppStore에 Weblin, iPwnStore, iClaashStore, WebBreak 등의 앱 스토어에 제출할 계획이 아닙니다. 좋은 독일어 개발자가 가능하다고 말했기 때문에 방법이 있어야합니다. –

+0

그 경우 나는 당신이 goodgermandeveloperoverflow.com에 요청하는 것이 좋습니다 –