2013-06-04 47 views
0

我有一個應用程序,它使用TestFlight SDK和其他調試框架,我想自動刪除App Store發佈版本。如何從App Store發佈版本中刪除某些框架和代碼?

我創建了一個新的「App Store」構建配置,但我該如何教Xcode我想包含在這個構建中的框架?我怎樣才能使這些框架的代碼有條件的,所以它被排除在App Store發佈版本之外?

+0

相關:http://twobitlabs.com/2012/01/excluding-files-from-production-xcode-builds/這篇文章告訴你如何從某些構建配置明確排除源文件 – jrturton

回答

2

您有三個有利於工作的組件,可以刪除無關的代碼。

首先,你有預處理器。如果你使用#if DEBUG聲明包裝你的TestFlight導入和代碼,那麼你將會很好。 #if語句的設計使預處理器將刪除不需要的額外語句。它不會讓它到編譯器。

其次,編譯器在你身邊。編譯器很聰明,可以從發佈版本中剝離死代碼。如果您編寫代碼並且不使用它,即使它通過了預處理器,它也不會將它變成最終的二進制文件。第三,如果你確實擔心這些框架將其納入到你的發佈版本中,你可以在Xcode中創建一個額外的目標,並更改該目標的鏈接器選項。這不是必要的,但如果您願意,可以選擇。這是最接近你的「明確排除」。

誠然,相信你的編譯器和鏈接器,除非他們給你不要理由。

+0

「應該」是什麼給我失眠的夜晚。有沒有辦法明確排除它? – openfrog

+0

我編輯了這個。 – Moshe

+1

當運行時它不可能知道它們未被使用時,編譯器如何剝離未使用的方法?那麼從字符串等創建的動態選擇器呢? – openfrog

相關問題