0

我在Mac App Store中有一個應用程序。我試圖支持用戶回到雪豹,但這變得越來越困難。OSX Sandbox:根據操作系統版本啓動不同的可執行文件

由於iTunesLibrary.framework,最近我遇到了一個障礙,這個框架必須鏈接到主要的可執行文件,但這樣做總是會在Sno​​w Leopard中運行時觸發負載崩潰。

爲了解決這個問題,我想編譯我的應用程序的一個版本,它不使用新版OSX中的功能和框架。問題是,我如何自動啓動兼容性版本?

我正在考慮嘗試使主要可執行文件指向shell腳本,但我不太喜歡這個想法。我也想到了主要的可執行文件是幫助程序,它只是啓動完整的應用程序,然後退出。我預計這會奏效,但我擔心它會得到Apple的批准。最後,我想知道應用程序包格式本身是否可以支持這種設置,也許可以通過我不知道的CFBundleExecutable的高級使用。

有沒有人走過這條路,你會有什麼建議?

回答

0

嘗試使用弱連接框架,關於Weak Linking and Apple Frameworks here的更多信息。然後檢查您的代碼是否有任何NSObject的操作系統版本或- (BOOL)respondsToSelector:(SEL)aSelector,以確定您可以調用哪些,哪些不可以。

要將Snow Leopard作爲基礎SDK,您需要一箇舊的Xcode,並且會遇到提交給Mac App Store的麻煩。

+0

弱連接無濟於事。如果框架不存在,那麼我很好,但如果存在,那麼即使我不想使用它,框架也會加載,導致崩潰。 – Tim

相關問題