Skip to content
  • Adam Comella's avatar
    BREAKING: iOS: Fix case sensitivity build warning in Xcode 8.3 · b050b690
    Adam Comella authored
    Summary:
    **Breaking Change Notes**
    
    To adapt to the breaking change, app developers that are consuming React Native through CocoaPods must update their Podfile to refer to yoga with a lowercase "y". In other words:
    
        pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
    
    Must be changed to (note the lowercase "y"):
    
        pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
    
    **Symptom**
    
    If you consume React Native as a CocoaPod and consume a third-party React Native module not as a CocoaPod, you will receive a `nonportable-include-path` warning in Xcode >= 8.3.
    
    **Details**
    
    Xcode 8.3 introduced -Wnonportable-include-path which triggers if you import a header using different casing than the path to the header on disk. This triggers when consuming React Native as a CocoaPod from a library that isn't a CocoaPod. React Native imports Yoga using paths like this:
    
        #import <yoga/Yoga.h>
    
    Which means Yoga's headers are expected to be located in a directory called "yoga" with a lowercase "y". However, when React Native is a CocoaPod the Yoga headers for non-CocoaPods end up in the directory "$(BUILT_PRODUCTS_DIR)/Yoga".
    
    To fix this such that Yoga's headers end up in "$(BUILT_PRODUCTS_DIR)/yoga" (note the lowercase "y"), I've changed Yoga's podspec name to have a lowercase "y".
    
    **Test Plan**
    
    Created a test app where React Native is consumed as a CocoaPod. Added the react-native-maps library to the project and configured it to not be consumed through CocoaPods. Verified that the app compiles properly without the `nonportable-include-path` warnings.
    
    Adam Comella
    Microsoft Corp.
    Closes https://github.com/facebook/react-native/pull/15527
    
    Differential Revision: D5706338
    
    Pulled By: javache
    
    fbshipit-source-id: 090daa2c3ebb1c66bd467e78a1e91791dbb06651
    b050b690
Analyzing file…