Skip to content

Cannot ignore auto linking of un-supported library #414

@ospfranco

Description

@ospfranco

Environment

System:
OS: macOS 10.15.4
CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
Memory: 3.15 GB / 32.00 GB
Shell: 5.7.1 - /bin/zsh
Binaries:
Node: 14.2.0 - ~/.volta/tools/image/node/14.2.0/6.14.4/bin/node
Yarn: 1.22.0 - ~/.volta/tools/image/yarn/1.22.0/bin/yarn
npm: 6.14.4 - ~/.volta/tools/image/node/14.2.0/6.14.4/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
Managers:
CocoaPods: 1.9.1 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: iOS 13.5, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2
Android SDK:
API Levels: 27, 28, 29
Build Tools: 27.0.3, 28.0.3, 29.0.0
System Images: android-28 | Google Play Intel x86 Atom, android-R | Google APIs Intel x86 Atom
Android NDK: Not Found
IDEs:
Android Studio: 3.4 AI-183.6156.11.34.5522156
Xcode: 11.5/11E608c - /usr/bin/xcodebuild
Languages:
Java: 1.8.0_212 - /usr/bin/javac
Python: 2.7.16 - /usr/bin/python
npmPackages:
@react-native-community/cli: Not Found
react: 16.11.0 => 16.11.0
react-native: 0.62.2 => 0.62.2
npmGlobalPackages:
react-native: Not Found

Issue

I'm first integrated react-native-vector-icons by some manuals steps, since the autolinking is not supported for the macOS platform yet, however, now I'm trying to integrate react-native-navigation and that does require that I do a pod install in the macos directory, but since RNVectorIcons is not supported the entire linking fails.

I tried adding a ignore entry in the react-native.config.js file:

/**
 * This cli config is needed for development purposes, e.g. for running
 * integration tests during local development or on CI services.
 */

const path = require(`path`);
const blacklist = require(`metro-config/src/defaults/blacklist`);

const rnmPath = path.resolve(__dirname, `node_modules/react-native-macos`);

module.exports = {
  resolver: {
    extraNodeModules: {
      'react-native': rnmPath,
    },
    platforms: [`macos`, `ios`, `android`],
    blacklistRE: blacklist([/node_modules\/react-native\/.*/]),
  },
  dependencies: {
    'react-native-vector-icons': {
      platforms: {
        macOS: null,
      },
    },
  },
};

Steps to Reproduce

  1. Modify react-native.config.js like I did above, that is, to ignore vector-icons package
  2. Add react-native-vector-icons via npm or yarn
  3. cd into macOS
  4. do pod install

Expected Behavior

The incompatible package is ignored and the other packages can be linked like normal

Actual Behavior

The pod installation fails and nothing gets installed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions