好吧,我完全理解如何在同一個Swift項目中製作兩個不同的目標。我還了解如何手動切換目標,即在xcode中手動設置活動方案。但是,我不明白如何在應用程序運行後切換目標。Swift - 如何在編譯器自定義標誌後切換目標?
例如,如果我在同一個swift項目中同時擁有同一個應用程序的付費和免費版本,我如何訪問付費版本?看起來我一次只能運行一個活動方案,並且我不知道如何在應用程序運行時切換目標。也許這是不可能的或者是糟糕的編程技術,但是必須有一種方法來做類似「一旦用戶支付99美分不再顯示用戶廣告」的方式。
我已經向商店提交了應用程序,但它們只包含一個目標。
最終,我的問題是這樣的:「在應用程序處於活動狀態時,如何在目標之間切換?」
目標決定了應用程序如何編譯,而不僅僅是如何運行。我的猜測是,您的編譯器標誌和目標完全消除了您應用的免費版本中的一些代碼/資產,因此無法切換。要改變這種情況,您可以添加一個變量,用於存儲用戶是否已解鎖付費內容,並將其設置爲付費版本爲true,併爲免費版本設置爲false。 –
好吧。更好的方法似乎不是制定兩個目標,而只是一個目標的變量啓用/禁用付費內容......然而,另一個問題 - 使用您的方法,我必須制定兩個目標,因此需要兩個應用程序? –
一種方法是在構建App Store之前手動設置一個'contentUnlockedByDefault'常量。另一種方式(我認爲它不太容易出錯)是創建兩個目標,它們使用編譯器標誌或其他東西來適當地設置「contentUnlockedByDefault」常量。這樣就更容易判斷哪個版本正在構建。對於這兩個目標,也可以從付費版本中排除所有IAP代碼。 –