You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a project use monorepo with yarn workspace feature.
it's fail when I cd ios && pod install.
Detected React Native module pods for RNRippleView, react-native-video, and react-native-webview
Analyzing dependencies
Fetching podspec for`DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
Fetching podspec for`Folly` from `../node_modules/react-native/third-party-podspecs/Folly.podspec`
Fetching podspec for`RNRippleView` from `../`
[!] No podspec found for`RNRippleView`in`../`
then I run react-native config
Details
{
"root": "/Users/flyboy/.dee/yozman/yoboto-app",
"reactNativePath": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native",
"dependencies": {
"react-native-touchable-ripple": {
"root": "/Users/flyboy/.dee/yozman/yoboto-app/packages/react-native-touchable-ripple",
"name": "react-native-touchable-ripple",
"platforms": {
"ios": {
"sourceDir": "/Users/flyboy/.dee/yozman/yoboto-app/packages/react-native-touchable-ripple/ios",
"folder": "/Users/flyboy/.dee/yozman/yoboto-app/packages/react-native-touchable-ripple",
"pbxprojPath": "/Users/flyboy/.dee/yozman/yoboto-app/packages/react-native-touchable-ripple/ios/RNRippleView.xcodeproj/project.pbxproj",
"podfile": null,
"podspecPath": "/Users/flyboy/.dee/yozman/yoboto-app/packages/react-native-touchable-ripple/RNRippleView.podspec",
"projectPath": "/Users/flyboy/.dee/yozman/yoboto-app/packages/react-native-touchable-ripple/ios/RNRippleView.xcodeproj",
"projectName": "RNRippleView.xcodeproj",
"libraryFolder": "Libraries",
"sharedLibraries": [],
"plist": []
},
"android": null
},
"assets": [],
"hooks": {},
"params": []
},
"react-native-video": {
"root": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video",
"name": "react-native-video",
"platforms": {
"ios": {
"sourceDir": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video/ios",
"folder": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video",
"pbxprojPath": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video/ios/RCTVideo.xcodeproj/project.pbxproj",
"podfile": null,
"podspecPath": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video/react-native-video.podspec",
"projectPath": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video/ios/RCTVideo.xcodeproj",
"projectName": "RCTVideo.xcodeproj",
"libraryFolder": "Libraries",
"sharedLibraries": [],
"plist": []
},
"android": {
"sourceDir": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video/android-exoplayer",
"folder": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video",
"packageImportPath": "import com.brentvatne.react.ReactVideoPackage;",
"packageInstance": "new ReactVideoPackage()"
}
},
"assets": [],
"hooks": {},
"params": []
},
"react-native-webview": {
"root": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview",
"name": "react-native-webview",
"platforms": {
"ios": {
"sourceDir": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview/ios",
"folder": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview",
"pbxprojPath": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview/ios/RNCWebView.xcodeproj/project.pbxproj",
"podfile": null,
"podspecPath": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview/react-native-webview.podspec",
"projectPath": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview/ios/RNCWebView.xcodeproj",
"projectName": "RNCWebView.xcodeproj",
"libraryFolder": "Libraries",
"sharedLibraries": [],
"plist": []
},
"android": {
"sourceDir": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview/android",
"folder": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview",
"packageImportPath": "import com.reactnativecommunity.webview.RNCWebViewPackage;",
"packageInstance": "new RNCWebViewPackage()"
}
},
"assets": [],
"hooks": {},
"params": []
}
},
"commands": [
{
"name": "log-ios",
"description": "starts iOS device syslog tail"
},
{
"name": "run-ios",
"description": "builds your app and starts it on iOS simulator",
"examples": [
{
"desc": "Run on a different simulator, e.g. iPhone 5",
"cmd": "react-native run-ios --simulator \"iPhone 5\""
},
{
"desc": "Pass a non-standard location of iOS directory",
"cmd": "react-native run-ios --project-path \"./app/ios\""
},
{
"desc": "Run on a connected device, e.g. Max's iPhone",
"cmd": "react-native run-ios --device \"Max's iPhone\""
},
{
"desc": "Run on the AppleTV simulator",
"cmd": "react-native run-ios --simulator \"Apple TV\" --scheme \"helloworld-tvOS\""
}
],
"options": [
{
"name": "--simulator [string]",
"description": "Explicitly set simulator to use. Optionally include iOS version betweenparenthesis at the end to match an exact version: \"iPhone 6 (10.0)\"",
"default": "iPhone X"
},
{
"name": "--configuration [string]",
"description": "Explicitly set the scheme configuration to use",
"default": "Debug"
},
{
"name": "--scheme [string]",
"description": "Explicitly set Xcode scheme to use"
},
{
"name": "--project-path [string]",
"description": "Path relative to project root where the Xcode project (.xcodeproj) lives.",
"default": "ios"
},
{
"name": "--device [string]",
"description": "Explicitly set device to use by name. The value is not required if you have a single device connected."
},
{
"name": "--udid [string]",
"description": "Explicitly set device to use by udid"
},
{
"name": "--no-packager",
"description": "Do not launch packager while building"
},
{
"name": "--verbose",
"description": "Do not use xcpretty even if installed"
},
{
"name": "--port [number]",
"default": 8081
},
{
"name": "--terminal [string]",
"description": "Launches the Metro Bundler in a new window using the specified terminal path."
}
]
},
{
"name": "log-android",
"description": "starts logkitty"
},
{
"name": "run-android",
"description": "builds your app and starts it on a connected Android emulator or device",
"options": [
{
"name": "--root [string]",
"description": "Override the root directory for the android build (which contains the android directory)",
"default": ""
},
{
"name": "--variant [string]",
"description": "Specify your app's build variant",
"default": "debug"
},
{
"name": "--appFolder [string]",
"description": "Specify a different application folder name for the android source. If not, we assume is \"app\"",
"default": "app"
},
{
"name": "--appId [string]",
"description": "Specify an applicationId to launch after build.",
"default": ""
},
{
"name": "--appIdSuffix [string]",
"description": "Specify an applicationIdSuffix to launch after build.",
"default": ""
},
{
"name": "--main-activity [string]",
"description": "Name of the activity to start",
"default": "MainActivity"
},
{
"name": "--deviceId [string]",
"description": "builds your app and starts it on a specific device/simulator with the given device id (listed by running \"adb devices\" on the command line)."
},
{
"name": "--no-packager",
"description": "Do not launch packager while building"
},
{
"name": "--port [number]",
"default": 8081
},
{
"name": "--terminal [string]",
"description": "Launches the Metro Bundler in a new window using the specified terminal path."
},
{
"name": "--tasks [list]",
"description": "Run custom Gradle tasks. By default it's \"installDebug\""
},
{
"name": "--no-jetifier",
"description": "Do not run \"jetifier\" – the AndroidX transition tool. By default it runs before Gradle to ease working with libraries that don't support AndroidX yet. See more at: https://www.npmjs.com/package/jetifier.",
"default": false
}
]
}
],
"assets": [],
"platforms": {
"ios": {},
"android": {}
},
"haste": {
"providesModuleNodeModules": [
"react-native"
],
"platforms": [
"ios",
"android"
]
},
"project": {
"ios": {
"sourceDir": "/Users/flyboy/.dee/yozman/yoboto-app/ios",
"folder": "/Users/flyboy/.dee/yozman/yoboto-app",
"pbxprojPath": "/Users/flyboy/.dee/yozman/yoboto-app/ios/yoboto.xcodeproj/project.pbxproj",
"podfile": "/Users/flyboy/.dee/yozman/yoboto-app/ios/Podfile",
"podspecPath": null,
"projectPath": "/Users/flyboy/.dee/yozman/yoboto-app/ios/yoboto.xcodeproj",
"projectName": "yoboto.xcodeproj",
"libraryFolder": "Libraries",
"sharedLibraries": [],
"plist": []
},
"android": {
"sourceDir": "/Users/flyboy/.dee/yozman/yoboto-app/android/app",
"isFlat": false,
"folder": "/Users/flyboy/.dee/yozman/yoboto-app",
"stringsPath": "/Users/flyboy/.dee/yozman/yoboto-app/android/app/src/main/res/values/strings.xml",
"manifestPath": "/Users/flyboy/.dee/yozman/yoboto-app/android/app/src/main/AndroidManifest.xml",
"buildGradlePath": "/Users/flyboy/.dee/yozman/yoboto-app/android/app/build.gradle",
"settingsGradlePath": "/Users/flyboy/.dee/yozman/yoboto-app/android/settings.gradle",
"assetsPath": "/Users/flyboy/.dee/yozman/yoboto-app/android/app/src/main/assets",
"mainFilePath": "/Users/flyboy/.dee/yozman/yoboto-app/android/app/src/main/java/com/yoboto/MainApplication.java",
"packageName": "com.yoboto"
}
}
}
for podspec RNRippleView at #L46 absolute_podspec_path is /Users/flyboy/.dee/yozman/yoboto-app/packages/react-native-touchable-ripple/RNRippleView.podspec.
it's already relative_path and doesn't contain character node_modules.
so relative_podspec_path at #L47 will be not correct.
Environment
Description
I have a project use monorepo with yarn workspace feature.
it's fail when I
cd ios && pod install.then I run
react-native configDetails
{ "root": "/Users/flyboy/.dee/yozman/yoboto-app", "reactNativePath": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native", "dependencies": { "react-native-touchable-ripple": { "root": "/Users/flyboy/.dee/yozman/yoboto-app/packages/react-native-touchable-ripple", "name": "react-native-touchable-ripple", "platforms": { "ios": { "sourceDir": "/Users/flyboy/.dee/yozman/yoboto-app/packages/react-native-touchable-ripple/ios", "folder": "/Users/flyboy/.dee/yozman/yoboto-app/packages/react-native-touchable-ripple", "pbxprojPath": "/Users/flyboy/.dee/yozman/yoboto-app/packages/react-native-touchable-ripple/ios/RNRippleView.xcodeproj/project.pbxproj", "podfile": null, "podspecPath": "/Users/flyboy/.dee/yozman/yoboto-app/packages/react-native-touchable-ripple/RNRippleView.podspec", "projectPath": "/Users/flyboy/.dee/yozman/yoboto-app/packages/react-native-touchable-ripple/ios/RNRippleView.xcodeproj", "projectName": "RNRippleView.xcodeproj", "libraryFolder": "Libraries", "sharedLibraries": [], "plist": [] }, "android": null }, "assets": [], "hooks": {}, "params": [] }, "react-native-video": { "root": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video", "name": "react-native-video", "platforms": { "ios": { "sourceDir": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video/ios", "folder": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video", "pbxprojPath": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video/ios/RCTVideo.xcodeproj/project.pbxproj", "podfile": null, "podspecPath": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video/react-native-video.podspec", "projectPath": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video/ios/RCTVideo.xcodeproj", "projectName": "RCTVideo.xcodeproj", "libraryFolder": "Libraries", "sharedLibraries": [], "plist": [] }, "android": { "sourceDir": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video/android-exoplayer", "folder": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-video", "packageImportPath": "import com.brentvatne.react.ReactVideoPackage;", "packageInstance": "new ReactVideoPackage()" } }, "assets": [], "hooks": {}, "params": [] }, "react-native-webview": { "root": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview", "name": "react-native-webview", "platforms": { "ios": { "sourceDir": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview/ios", "folder": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview", "pbxprojPath": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview/ios/RNCWebView.xcodeproj/project.pbxproj", "podfile": null, "podspecPath": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview/react-native-webview.podspec", "projectPath": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview/ios/RNCWebView.xcodeproj", "projectName": "RNCWebView.xcodeproj", "libraryFolder": "Libraries", "sharedLibraries": [], "plist": [] }, "android": { "sourceDir": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview/android", "folder": "/Users/flyboy/.dee/yozman/yoboto-app/node_modules/react-native-webview", "packageImportPath": "import com.reactnativecommunity.webview.RNCWebViewPackage;", "packageInstance": "new RNCWebViewPackage()" } }, "assets": [], "hooks": {}, "params": [] } }, "commands": [ { "name": "log-ios", "description": "starts iOS device syslog tail" }, { "name": "run-ios", "description": "builds your app and starts it on iOS simulator", "examples": [ { "desc": "Run on a different simulator, e.g. iPhone 5", "cmd": "react-native run-ios --simulator \"iPhone 5\"" }, { "desc": "Pass a non-standard location of iOS directory", "cmd": "react-native run-ios --project-path \"./app/ios\"" }, { "desc": "Run on a connected device, e.g. Max's iPhone", "cmd": "react-native run-ios --device \"Max's iPhone\"" }, { "desc": "Run on the AppleTV simulator", "cmd": "react-native run-ios --simulator \"Apple TV\" --scheme \"helloworld-tvOS\"" } ], "options": [ { "name": "--simulator [string]", "description": "Explicitly set simulator to use. Optionally include iOS version betweenparenthesis at the end to match an exact version: \"iPhone 6 (10.0)\"", "default": "iPhone X" }, { "name": "--configuration [string]", "description": "Explicitly set the scheme configuration to use", "default": "Debug" }, { "name": "--scheme [string]", "description": "Explicitly set Xcode scheme to use" }, { "name": "--project-path [string]", "description": "Path relative to project root where the Xcode project (.xcodeproj) lives.", "default": "ios" }, { "name": "--device [string]", "description": "Explicitly set device to use by name. The value is not required if you have a single device connected." }, { "name": "--udid [string]", "description": "Explicitly set device to use by udid" }, { "name": "--no-packager", "description": "Do not launch packager while building" }, { "name": "--verbose", "description": "Do not use xcpretty even if installed" }, { "name": "--port [number]", "default": 8081 }, { "name": "--terminal [string]", "description": "Launches the Metro Bundler in a new window using the specified terminal path." } ] }, { "name": "log-android", "description": "starts logkitty" }, { "name": "run-android", "description": "builds your app and starts it on a connected Android emulator or device", "options": [ { "name": "--root [string]", "description": "Override the root directory for the android build (which contains the android directory)", "default": "" }, { "name": "--variant [string]", "description": "Specify your app's build variant", "default": "debug" }, { "name": "--appFolder [string]", "description": "Specify a different application folder name for the android source. If not, we assume is \"app\"", "default": "app" }, { "name": "--appId [string]", "description": "Specify an applicationId to launch after build.", "default": "" }, { "name": "--appIdSuffix [string]", "description": "Specify an applicationIdSuffix to launch after build.", "default": "" }, { "name": "--main-activity [string]", "description": "Name of the activity to start", "default": "MainActivity" }, { "name": "--deviceId [string]", "description": "builds your app and starts it on a specific device/simulator with the given device id (listed by running \"adb devices\" on the command line)." }, { "name": "--no-packager", "description": "Do not launch packager while building" }, { "name": "--port [number]", "default": 8081 }, { "name": "--terminal [string]", "description": "Launches the Metro Bundler in a new window using the specified terminal path." }, { "name": "--tasks [list]", "description": "Run custom Gradle tasks. By default it's \"installDebug\"" }, { "name": "--no-jetifier", "description": "Do not run \"jetifier\" – the AndroidX transition tool. By default it runs before Gradle to ease working with libraries that don't support AndroidX yet. See more at: https://www.npmjs.com/package/jetifier.", "default": false } ] } ], "assets": [], "platforms": { "ios": {}, "android": {} }, "haste": { "providesModuleNodeModules": [ "react-native" ], "platforms": [ "ios", "android" ] }, "project": { "ios": { "sourceDir": "/Users/flyboy/.dee/yozman/yoboto-app/ios", "folder": "/Users/flyboy/.dee/yozman/yoboto-app", "pbxprojPath": "/Users/flyboy/.dee/yozman/yoboto-app/ios/yoboto.xcodeproj/project.pbxproj", "podfile": "/Users/flyboy/.dee/yozman/yoboto-app/ios/Podfile", "podspecPath": null, "projectPath": "/Users/flyboy/.dee/yozman/yoboto-app/ios/yoboto.xcodeproj", "projectName": "yoboto.xcodeproj", "libraryFolder": "Libraries", "sharedLibraries": [], "plist": [] }, "android": { "sourceDir": "/Users/flyboy/.dee/yozman/yoboto-app/android/app", "isFlat": false, "folder": "/Users/flyboy/.dee/yozman/yoboto-app", "stringsPath": "/Users/flyboy/.dee/yozman/yoboto-app/android/app/src/main/res/values/strings.xml", "manifestPath": "/Users/flyboy/.dee/yozman/yoboto-app/android/app/src/main/AndroidManifest.xml", "buildGradlePath": "/Users/flyboy/.dee/yozman/yoboto-app/android/app/build.gradle", "settingsGradlePath": "/Users/flyboy/.dee/yozman/yoboto-app/android/settings.gradle", "assetsPath": "/Users/flyboy/.dee/yozman/yoboto-app/android/app/src/main/assets", "mainFilePath": "/Users/flyboy/.dee/yozman/yoboto-app/android/app/src/main/java/com/yoboto/MainApplication.java", "packageName": "com.yoboto" } } }I guess this comes with this commit c9aec25
cli/packages/platform-ios/native_modules.rb
Lines 45 to 49 in c9aec25
for podspec
RNRippleViewat #L46absolute_podspec_pathis/Users/flyboy/.dee/yozman/yoboto-app/packages/react-native-touchable-ripple/RNRippleView.podspec.it's already relative_path and doesn't contain character
node_modules.so
relative_podspec_pathat #L47 will be not correct.Reproducible Demo