0

Mac App Store에 응용 프로그램이 있습니다. Snow Leopard로 돌아가는 사용자를 지원하려고하지만 점점 어려워지고 있습니다.OSX 샌드 박스 : OS 버전에 따라 다른 실행 파일 실행

최근 iTunesLibrary.framework로 인해로드 블록이 발생했습니다.이 프레임 워크는 기본 실행 파일에 연결되어야하며 Snow Leopard에서 실행될 때 항상로드시 충돌을 유발합니다.

이 문제를 해결하려면 최신 버전의 OSX에서 제공되는 기능과 프레임 워크를 사용하지 않는 버전의 응용 프로그램을 컴파일하고 싶습니다. 문제는 어떻게 호환성 빌드를 자동으로 시작할 수 있습니까?

셸 스크립트의 주 실행 가능 지점을 만들려고 고려 중이지만 그 생각은 마음에 들지 않습니다. 또한 주요 실행 파일을 전체 앱을 시작한 다음 종료하는 도우미로 생각했습니다. 나는 이것이 효과가있을 것으로 기대하지만, 애플이 승인하는 것에 대해 걱정한다. 마지막으로, 나는 앱 번들 포맷 자체가 이런 종류의 설정을 지원할 수 있는지 궁금합니다. 아마도 내가 모르는 CFBundleExecutable의 고급 사용을 통해 가능할 것입니다.

누구나이 길을 건너 왔습니까?

답변

0

약식 프레임 워크 연결을 시도해보십시오. 자세한 정보는 Weak Linking and Apple Frameworks here입니다. 그런 다음 운영 체제 버전 또는 - (BOOL)respondsToSelector:(SEL)aSelectorNSObject 인 코드를 확인하여 호출 할 수있는 대상과없는 대상을 결정하십시오.

Snow Leopard를 Base SDK로 사용하려면 이전 Xcode가 필요하며 Mac App Store에 제출하는 데 문제가 있습니다.

+0

약한 연결은 도움이되지 않습니다. 프레임 워크가 존재하지 않는다면 괜찮습니다.하지만 프레임 워크가 존재하지 않는다고해도 프레임 워크가로드되어 크래시가 발생합니다. – Tim