我目前有一些我需要構建的iPhone應用程序的特殊「風味」。理想情況下,我想爲每個「風味」設計一個方案,每個方案都會定義(或設置)一個或多個預處理器定義,我可以使用它們在代碼中進行分支,甚至可以預處理我的info.plist文件。這顯然可以通過多個目標完成,但由於我可以有很多不同的應用程序「風格」,如果使用計劃來保持目標計數不變,那將是非常好的。我目前的想法是在預執行腳本期間添加這些預處理器定義,但是我不能在我的生活中找到更新GCC_PREPROCESSOR_DEFINITIONS的方法。由於它是一個環境變量,我不應該有權訪問GCC_PREPROCESSOR_DEFINITIONS?通過Xcode方案添加預處理器定義
回答
爲了滿足我允許方案設置預處理器定義的要求,我提出的最佳解決方案是讓方案預執行和操作後腳本修改xcconfig文件。該文件反過來更新構建配置,設置預處理器定義,甚至允許我定義預處理器定義以有條件地修改info.plist。如果有其他人不遵守這條路線,請確保您考慮如何通過源代碼管理來處理此文件。
本文的問題和相關答案是有幫助的對我說:How to append values in xcconfig variables?
嗨克里斯托弗,你可以擴展這個嗎?你如何修改xcconfig文件? – jasongregori
更糟糕的情況下,您可以爲該方案執行預生成腳本。你必須包括但每一個方案的腳本:
我更願意將其連接到配置:
然後你就可以輕鬆地添加預處理宏的各種配置,像我有這裏調試:
的<項目名> _Prefix.pch文件是把宏,實際上,整個程序的好地方,就像我在這裏:
在我的例子中,我們在非調試模式下有效地關閉了控制檯輸出,提供了一點速度提升。
如何在特定於目標的構建選項中定義多個目標並定義預處理器宏?那麼你只需要一個方案,並且你可以一次構建所有目標,所有目標都有自己特定的構建配置。
感謝您的建議對於某些人來說,這可能是一個很好的解決方案對於這個特定的項目,由於「口味的規模和數量「我將需要,這將很難維護。 –
如果我明白你的問題正確,你正在尋找一些用戶定義的預處理器宏添加到您的源代碼,有一種方法將它們加入到在您的目標使用Xcode。 (如GCC_PREPROCESSOR_DEFINITIONS = USE_TAPJOY)
步驟1)決定馬爾科名稱,如USE_TAPJOY 步驟2)進入靶>選擇選項卡「構建設置」(確保已啓用所有選項卡) 步驟3)在搜索框中搜索「預處理宏」) 步驟4)檢查調試/發佈部分 步驟5)輸入您的馬可有
步驟6)在源代碼中使用這個宏如下
For conditional include
#ifdef USE_TAPJOY
#import <Tapjoy/Tapjoy.h>
#endif
For conditional source code
#ifdef USE_TAPJOY // Tapjoy Connect Notifications
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tjcConnectSuccess:)
name:TJC_CONNECT_SUCCESS
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tjcConnectFail:)
name:TJC_CONNECT_FAILED
object:nil];
#endif
祝你好運
這不是問題。問題是能夠爲每個方案設置一個不同的宏,同時只保留一個目標。 –
- 1. 通過cmake定義預處理器宏
- 2. 定義在Xcode目標預處理宏
- 3. C++定義預處理器
- 4. C++預處理器定義
- 5. 如何通過預處理器定義獲得函數簽名?
- 6. 如何通過自定義預處理器覆蓋CommonAnnotationBeanPostProcessor
- 7. 將預處理器定義添加到cmake外部項目
- 8. 如何在Code Composer Studio 4中添加預處理器定義?
- 9. 如何將預處理定義(宏)添加到qt創建器?
- 10. 如何在全局android中添加預處理器定義
- 11. Xcode 8預處理器宏?
- 12. Xcode預處理器比較
- 13. Xcode預處理器輸出
- 14. Xcode中的預處理器
- 15. 用自定義過程替換Xcode的預處理程序
- 16. 預處理#定義
- 17. Xcode 4:如何添加預處理器宏。 Maddered
- 18. Xcode中的預處理器忽略目標預處理器宏
- 19. 如何在Xcode 4中定義預處理器宏?
- 20. Xcode預處理器定義(不是每個項目)
- 21. CMake:如何通過預處理器宏
- 22. C預處理器定義/宏
- 23. 預處理器指令:#elif未定義?
- 24. 預處理器在Typescript中定義
- 25. 自定義gcc預處理器
- 26. 預處理器定義 - 提示構建?
- 27. OpenCL編譯器預處理定義?
- 28. GCC轉儲預處理器定義
- 29. Visual C++預處理器定義
- 30. GNU彙編預處理器定義
你可能想看看這個答案:http:// stackoverflow。com/a/26433618/1055722 –