The Problem

I defined the preprocessor macro USING_REVENUE_CAT=1 in my project target’s Build Settings under Preprocessor Macros.

However, when I tried to use it in my Swift file with the following code, I received an error indicating that the module SwiftyStoreKit could not be found. This was puzzling because I expected the macro to work similarly to how it does in Objective-C.

Preprocessor-Macros in Xcode

The Solution

Asked both ChatGPT and Cursor for help, and they gave me similar answers as following:

Swift does not recognize preprocessor macros defined in the Build Settings the same way Objective-C does. Instead, you need to define custom flags specifically for Swift.

Steps to Define a Preprocessor Macro for Swift

  1. Navigate to Build Settings: Open your project in Xcode and select your target. Then, go to the Build Settings tab.

  2. Find Swift Compiler - Custom Flags: Scroll down to the Swift Compiler - Custom Flags section.

  3. Add the Custom Flag: In the Other Swift Flags field, add the following:

    USING_REVENUE_CAT
    

This tells the Swift compiler to define the USING_REVENUE_CAT flag, allowing you to use it in your Swift code.

Updated Swift Code

After adding the custom flag, your Swift code should work as intended:

Swift-Compiler_Customer-Flags