Hello,
React Native Environment Info:
System OS: macOS High Sierra 10.13.6
Binaries:
Node: 8.11.3 - /usr/local/bin/node
npm: 5.6.0 - /usr/local/bin/npm
IDEs:
Xcode: 10 Beta 3
npmPackages:
react: 16.4.1
react-native: 0.56.0
I got the following error when I try to build the simple RN 0.56 application:
warning: Skipping duplicate build file in Compile Sources build phase: <PATH_TO_PROJECT>/node_modules/react-native/React/Modules/RCTRedBoxExtraDataViewController.m (in target 'React-tvOS')
...
warning: duplicate output file '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/React/RCTResizeMode.h' on task: PBXCp <PATH_TO_PROJECT>/node_modules/react-native/Libraries/Image/RCTResizeMode.h <HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/React/RCTResizeMode.h (in target 'React')
...
error: Multiple commands produce '<PbxCp <HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/React/RCTScrollableProtocol.h>':
1) Target 'React-tvOS' has copy command from '<PATH_TO_PROJECT>/node_modules/react-native/React/Views/ScrollView/RCTScrollableProtocol.h' to '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/React/RCTScrollableProtocol.h'
2) Target 'React' has copy command from '<PATH_TO_PROJECT>/node_modules/react-native/React/Views/ScrollView/RCTScrollableProtocol.h' to '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/React/RCTScrollableProtocol.h'
error: Multiple commands produce '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/double-conversion/fast-dtoa.h':
1) Target 'double-conversion-tvOS' has copy command from '<PATH_TO_PROJECT>/node_modules/react-native/third-party/double-conversion-1.1.5/src/fast-dtoa.h' to '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/double-conversion/fast-dtoa.h'
2) Target 'double-conversion' has copy command from '<PATH_TO_PROJECT>/node_modules/react-native/third-party/double-conversion-1.1.5/src/fast-dtoa.h' to '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/double-conversion/fast-dtoa.h'
...
xcodebuild -project <PATH_TO_PROJECT>/ios/ReactNativeSimple.xcodeproj -scheme ReactNativeSimple archive -sdk iphoneos -archivePath <PATH_TO_PROJECT>/output/build/archive/ReactNativeSimple CODE_SIGN_STYLE=Automatic
I tested it on the simple RN application that was created by "react-native init" command.
When I try to build the app using Xcode 10 GUI - it builds successfully.
But I try to build it using xcodebuild command - it failed with the error above.
When we use the same command on the same application (RN 0.56) in Xcode 9.4.1 - it builds successfully
If I don't specify -sdk
param in xcodebuild command it builds successfully.
Note: _Errors may be different for the different Xcode 10 Beta versions._
Does RN 0.56 support Xcode 10 Beta?
How I can fix it?
Is there workaround to build it using Xcode 10 Beta?
You can try to change the build system to Legacy,
File > Workspace Settings > Build System > Legacy Build System.
We want to use new build system.
The new build system should be supported. We're tracking any issues people run into with Xcode 10 or the new build system in this task: https://github.com/facebook/react-native/issues/19573
At a glance, it does not seem like your issue is covered by what we've fixed so far on master. I'll add it to the list.
I also had the Multiple commands produce
error with libReact.a
& libyoga.a
.
I'm using:
0.57.0
To overcome this, I have added this to my Podfile
:
post_install do |installer|
installer.pods_project.targets.each do |target|
# The following is needed to ensure the "archive" step works in XCode.
# It removes React & Yoga from the Pods project, as it is already included in the main project.
# Without this, you'd see errors when you archive like:
# "Multiple commands produce ... libReact.a"
# "Multiple commands produce ... libyoga.a"
targets_to_ignore = %w(React yoga)
if targets_to_ignore.include? target.name
target.remove_from_project
end
end
end
Then rebuild your Pods project with:
$ pod install
Full environment details:
React Native Environment Info:
System:
OS: macOS High Sierra 10.13.6
CPU: x64 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
Memory: 4.10 GB / 32.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.9.0 - ~/.nvm/versions/node/v10.9.0/bin/node
Yarn: 1.9.4 - /usr/local/bin/yarn
npm: 6.4.1 - ~/.nvm/versions/node/v10.9.0/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.0, macOS 10.14, tvOS 12.0, watchOS 5.0
IDEs:
Xcode: 10.0/10A255 - /usr/bin/xcodebuild
npmPackages:
react: 16.5.0 => 16.5.0
react-native: 0.57.0 => 0.57.0
npmGlobalPackages:
create-react-native-app: 1.0.0
react-native-cli: 2.0.1
Confirmed @PaulMest's workaround works. Manually deleting Yoga in Xcode, from the Pods
project's Targets should work too, as I've been doing with React which has been causing duplicate targets build errors as well, before RN 0.57.
If you are using xcodebuild
, append this -UseModernBuildSystem=NO
to opt into the old legacy build system
@PaulMest Thanks, I've made my day
Hopefully my situation can help you guys fix the issue!
Here is the full output:
:-1: Multiple commands produce '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Roboto.ttf':
1) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/node_modules/native-base/Fonts/Roboto.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Roboto.ttf'
2) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/src/Resources/Fonts/Roboto.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Roboto.ttf'
:-1: Multiple commands produce '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Zocial.ttf':
1) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/node_modules/native-base/Fonts/Zocial.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Zocial.ttf'
2) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/node_modules/react-native-vector-icons/Fonts/Zocial.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Zocial.ttf'
:-1: Multiple commands produce '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Ionicons.ttf':
1) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/node_modules/native-base/Fonts/Ionicons.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Ionicons.ttf'
2) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/node_modules/react-native-vector-icons/Fonts/Ionicons.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Ionicons.ttf'
Essentially, react-native-vector-icons
and native-base
both bundle the same font files. (And for some reason we also have one of them bundled ourselves; I'll be sure to remove that one.) Before updating to Xcode 10 / Mojave, there was no issue. The only change was to update from Xcode 9 to Xcode 10.
@ntomallen I've ran into the exact same issue with duplicate fonts from react-native-vector-icons
and native-base
and what I ended up doing was removing the duplicate from my target app's Copy Resources To Bundle
section. After this, my project worked again (well, it moved to two different errors, which are described here: libfishhook.a can not be found - fix and Multiple commands produce error with libReact.a & libyoga.a. - fix
So far, my app has been running fine & I can compile using XCode 10's new build system.
_Disclaimer: I am not an experienced iOS developer and hacked these solutions together. I do not know if I have messed something up I don't know about._
That's exactly what worked for me as well! Though I'm still curious why it is suddenly an error now but not previously.
On Sep 26, 2018, 2:49 PM -0400, Niels Bokmans notifications@github.com, wrote:
@ntomallen I've ran into the exact same issue with duplicate fonts from react-native-vector-icons and native-base and what I ended up doing was removing the duplicate from my target app's Copy Resources To Bundle section. After this, my project worked again (well, it moved to two different errors, which are described here: libfishhook.a can not be found - fix and Multiple commands produce error with libReact.a & libyoga.a. - fix
So far, my app has been running fine & I can compile using XCode 10's new build system.
Disclaimer: I am not an experienced iOS developer and hacked these solutions together. I do not know if I have messed something up I don't know about.
โ
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
@ntomallen Basically it's because there is a new, "stricter" build system, and XCode 10 uses it by default whereas in XCode 9 you had to actively choose to use it rather than the "legacy" build system which we've all been using until now.
Ok. This is maddening. I switched to the legacy build system. Now, I get a different error.
/Users/michaelstelly/Documents/projects/mobile_gtm/node_modules/react-native/React/../third-party/glog-0.3.4/src/base/mutex.h:105:10: fatal error: 'config.h' file not found
#include "config.h" // to figure out pthreads support
I have no idea what this means, other than the obvious - a file is missing. But before Xcode 10, I had no build problems whatsoever.
@mjstelly are you on 0.57? Your error message mentions glog-0.3.4
but 0.57 uses glog-0.3.5
. I just want to make sure we're tracking issues on the latest release.
@PaulMest my hero! Thank you!
Hello @mjstelly
Are you facing the similar issue of with third-party.....
i'm using xcode 10
Xcode 10.1 Seems to be building fine on both systems but I can't archive on either, many build errors. What to do now?
You have to be more specific. Xcode 10 builds and archives fine for me (after solving some errors I don't remember now), on MacOS 10.12.6 and RN 0.57.0.
My Podfile post_install looked like this:
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == 'react-native-google-maps'
target.build_configurations.each do |config|
config.build_settings['CLANG_ENABLE_MODULES'] = 'No'
end
end
if target.name == "React"
target.remove_from_project
end
if target.name == 'yoga'
target.remove_from_project
target.build_configurations.each do |config|
config.build_settings['GCC_TREAT_WARNINGS_AS_ERRORS'] = 'NO'
config.build_settings['GCC_WARN_64_TO_32_BIT_CONVERSION'] = 'NO'
end
end
end
end
Following the suggestion from @PaulMest worked for me.
@njbmartin Thanks!
only your fix worked for me
-UseModernBuildSystem=NO
This works for me. Man it took me too long to find this. Thanks.
Switching to the legacy build system fixes a lot of build errors but we really need to be able to use the modern system into the future :p
Also, Happy Thanksgiving to those of you celebrating!
yes, the new version is of course nice but it is not so smooth.
Upgrade with risk.
@PaulMest Thank you. Your hack works :)
Confirmed @PaulMest's workaround works. Manually deleting Yoga in Xcode, from the
Pods
project's Targets should work too, as I've been doing with React which has been causing duplicate targets build errors as well, before RN 0.57.
How to do this exactly @fungilation ?
This is the only known blocker left in #19573. Are folks still running into this problem in 0.57.8?
I have no issue generally with Xcode since 0.57.8
@hramos Unfortunately not. For me the Xcode legacy build option is still required with 0.57.8 and also with the new 0.58.0-rc.3 (edit: also with 0.58.3).
To make this reproducible, I create a fresh new project and test it locally and with travis CI. I linked the original project below (but its just created with react-native init) and the successful and broken builds on travis. Maybe this helps? At least I could and will re-run this experiment when there is a new version available.
But with Xcode 10 the build fails.
PR which show the travis.yml diff
Build with "Multiple commands produce " error
When using Xcode 10 with the legacy build system it works again.
PR which show the travis.yml diff
Successful travis build
@hramos I am running into it when I run a build with detox, not yarn ios
. Here is my config for my iOS simulator:
{
"configurations": {
"ios.sim.debug": {
"binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/reactipay.app",
"build": "xcodebuild -project ios/reactipay.xcodeproj -scheme reactipay -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",
"type": "ios.simulator",
"name": "iPhone 6"
},
"android.emu.debug": {
"binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk",
"build": "cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ..",
"type": "android.emulator",
"name": "emulator-5554"
}
},
"test-runner": "jest"
}
Specifically, if I run this: xcodebuild -project ios/reactipay.xcodeproj -scheme reactipay -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build
it fails with the original error.
I also had the
Multiple commands produce
error withlibReact.a
&libyoga.a
.
I'm using:
- Xcode 10
- react-native
0.57.0
- CocoaPods
To overcome this, I have added this to my
Podfile
:post_install do |installer| installer.pods_project.targets.each do |target| # The following is needed to ensure the "archive" step works in XCode. # It removes React & Yoga from the Pods project, as it is already included in the main project. # Without this, you'd see errors when you archive like: # "Multiple commands produce ... libReact.a" # "Multiple commands produce ... libyoga.a" targets_to_ignore = %w(React yoga) if targets_to_ignore.include? target.name target.remove_from_project end end end
Then rebuild your Pods project with:
$ pod install
Full environment details:
thnx man!
I very confused with this error as it doesn't seem consistent. if I run build command 10 time, it could eventually start working
this is how looks mu e2e script
detox build -c ios.sim.releas ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release
where is detox build is
xcodebuild -project ios/deliverypoc.xcodeproj -scheme deliverypoc -configuration Release -sdk iphonesimulator -derivedDataPath ios/build
I can't use legacy build system as it hangs on react build, and I don't use Cocoa Pods.
What other solutions could be?
Shall I migrate my iOS to Cocoa? What implications it would bring?
@pavlof01 I am specifically looking for reports of this still occurring on versions 0.57.8 or newer.
@hramos I still have this on Xcode 10.1 on 0.57.8 and 0.58.3. I haven't tried to run using the legacy build system (is that the official fix for now?)--instead, I am using the Podfile to target.remove_from_project
when name == "React"
or name == "yoga"
. I also haven't tried Xcode 9, etc, as @jerolimov has above.
This is not a blocking issue for us, but just though I'd chime in! Lmk if I can provide any more helpful info.
Note that when I said I have no issue anymore on RN 0.57.8, I'm also using this workaround in Podfile:
post_install do |installer|
installer.pods_project.targets.each do |target|
targets_to_ignore = %w(React yoga)
if targets_to_ignore.include? target.name
target.remove_from_project
end
end
end
Forgot about it ๐
@hramos I am using 0.57.8 (same error) - let me know if you need any additional info.
I ran into this as well with detox. I fixed it by specifying a destination in xcodebuild instead of the sdk: -destination 'platform=iOS Simulator,name=iPhone 7'
Can confirm it occurs on 0.58.3 during the archive step. Adding the remove_from_project
workaround to my podfile resolves it. Output of react-native info
:
$ $(npm bin)/react-native info
React Native Environment Info:
System:
OS: macOS 10.14
CPU: (4) x64 Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz
Memory: 1.13 GB / 8.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 11.0.0 - /usr/local/bin/node
Yarn: 1.10.1 - /usr/local/bin/yarn
npm: 6.4.1 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
Android SDK:
API Levels: 19, 21, 22, 23, 24, 25, 26, 27, 28
Build Tools: 23.0.1, 25.0.0, 25.0.2, 26.0.1, 26.0.3, 27.0.3, 28.0.1, 28.0.2, 28.0.3
System Images: android-19 | Google APIs Intel x86 Atom, android-21 | Google APIs Intel x86 Atom_64, android-22 | Google APIs Intel x86 Atom_64, android-23 | Google APIs Intel x86 Atom_64, android-24 | Google APIs Intel x86 Atom_64, android-24 | Google Play Intel x86 Atom, android-25 | Google APIs Intel x86 Atom, android-25 | Google APIs Intel x86 Atom_64, android-25 | Google Play Intel x86 Atom, android-26 | Google APIs Intel x86 Atom_64, android-27 | Google APIs Intel x86 Atom, android-27 | Google Play Intel x86 Atom, android-28 | Google APIs Intel x86 Atom_64, android-28 | Google Play Intel x86 Atom_64
IDEs:
Android Studio: 3.2 AI-181.5540.7.32.5056338
Xcode: 10.1/10B61 - /usr/bin/xcodebuild
npmGlobalPackages:
react-native-cli: 2.0.1
Thanks @aaronjensen struggled many hours on this one...
I've been using the new build system since 58 with no issues.
I did have Multiple commands produce *
issues like the above but this was due to leftovers from before I switched to Pods (linking); make sure you remove all React Native related Linked Frameworks and Libraries
from your Xcode project (not the generated workspace) if you're now using Pods.
After you've cleaned it up and switched to using RN via Pods it should look something like this:
And NOT like this:
Note that the old build system ignored these duplications from trying to use RN via linking & pods together; the new build system does not; so you may have had these for some time.
If you're building with xcodebuild
e.g. for Detox make sure to apply @aaronjensen 's suggestion from above to your build command.
@salakar Ive been doing the same with no issues. One thing to note is that if you manually linked a 3rd party Libray without pods, it may have trouble finding React Native. Basically try to switch everything to Pods.
Closing as per @Salakar's comment.
@cpojer IMHO this isn't solved if the solution requires manual steps after creating a simple project with react-native init
. This is not what new users will expect. The default should just work without any changes in Xcode and without CocoaPods. (Although CocoaPods is great and works fine with RN ๐)
As explained before, I created a sample app with react-native init
and run this on Travis CI. This shows well that the build works fine with Xcode 9 and Xcode 10 with the legacy build system. And it doesn't work with the Xcode 10 new build system.
You can see the build history here on GitHub, the master is already 0.59.0-rc.1 and has still the same problem.
The build history for different branches is available on Travis CI (master is Xcode 9 and there are two branches for Xcode 10) and as GitHub Pull Request
As said. IMHO. ๐
@jerolimov your build is not specifying a destination, which appears to be essential as it otherwise attempts to build artifacts for both tvOS and iOS, which causes the issue you're seeing.
What isn't clear is if there's something that RN can be doing that could cause the new build system to know which you want implicitly or if this is actually just a bug in xcode (in which case this is the wrong repo for the issue).
Given @Salakar's comment
It appears I did not clean up linked frameworks and libraries correctly when I switched to start using Pods. Can anyone provide more detail on the correct process go about removing those links?
In Xcode, right click all of the things which reference React Native(usually under Frameworks or Libraries in the sidebar), and choose to "remove references". At the end of the process, make sure the Linked Libraries and Frameworks section doesn't have references to React Native. Note that as you do this, your other 3rd party libraries which depend on React Native should be linked through Pods as well. (Most of the major ones support it, which is nice.)
I ran into this as well with detox. I fixed it by specifying a destination in xcodebuild instead of the sdk:
-destination 'platform=iOS Simulator,name=iPhone 7'
@aaronjensen Can you please provide the full code as a sample?
"xcodebuild -project ios/AppName.xcodeproj -scheme AppName -configuration Debug -derivedDataPath ios/build -destination 'platform=iOS Simulator, name=iPhone 7'"
?
Sure, what you have looks pretty much like what we're using.
xcodebuild -project ios/AppName.xcodeproj -scheme AppName -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 7' -derivedDataPath ios/build
I also had the
Multiple commands produce
error withlibReact.a
&libyoga.a
.
I'm using:
- Xcode 10
- react-native
0.57.0
- CocoaPods
To overcome this, I have added this to my
Podfile
:post_install do |installer| installer.pods_project.targets.each do |target| # The following is needed to ensure the "archive" step works in XCode. # It removes React & Yoga from the Pods project, as it is already included in the main project. # Without this, you'd see errors when you archive like: # "Multiple commands produce ... libReact.a" # "Multiple commands produce ... libyoga.a" targets_to_ignore = %w(React yoga) if targets_to_ignore.include? target.name target.remove_from_project end end end
Then rebuild your Pods project with:
$ pod install
Full environment details:
React Native Environment Info: System: OS: macOS High Sierra 10.13.6 CPU: x64 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz Memory: 4.10 GB / 32.00 GB Shell: 3.2.57 - /bin/bash Binaries: Node: 10.9.0 - ~/.nvm/versions/node/v10.9.0/bin/node Yarn: 1.9.4 - /usr/local/bin/yarn npm: 6.4.1 - ~/.nvm/versions/node/v10.9.0/bin/npm Watchman: 4.9.0 - /usr/local/bin/watchman SDKs: iOS SDK: Platforms: iOS 12.0, macOS 10.14, tvOS 12.0, watchOS 5.0 IDEs: Xcode: 10.0/10A255 - /usr/bin/xcodebuild npmPackages: react: 16.5.0 => 16.5.0 react-native: 0.57.0 => 0.57.0 npmGlobalPackages: create-react-native-app: 1.0.0 react-native-cli: 2.0.1
great work
rm -rf Pods; pod install
worked for me
@Salakar Removing all the RCT* libraries from the Linked Frameworks and Libraries
in Xcode project builds successfully in iOS but gives the Native module cannot be null
error. And only after i add the libReact.a
and other libRCT*.a
libraries the build works. We are using Pods
to manage other dependencies.
Below is how our Podfile looks,
```source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
inhibit_all_warnings!
plugin 'cocoapods-fix-react-native'
target 'RNMobile' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Basic Pods for RNMobile
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'Core',
'CxxBridge',
'DevSupport',
# the following ones are the ones taken from "Libraries" in Xcode:
'RCTAnimation',
'RCTActionSheet',
'RCTBlob',
'RCTGeolocation',
'RCTImage',
'RCTLinkingIOS',
'RCTNetwork',
'RCTSettings',
'RCTText',
'RCTVibration',
'RCTWebSocket'
]
# the following dependencies are dependencies of React native itself.
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga/Yoga.podspec'
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/GLog.podspec'
# Extra pods for WahedMobile
pod 'AppCenter/Crashes', '~> 1.13.0'
pod 'AppCenter/Analytics', '~> 1.13.0'
pod 'AppCenterReactNativeShared', '~> 1.12.0'
pod 'RNVectorIcons', :path => '../node_modules/react-native-vector-icons'
pod 'lottie-react-native', :path => '../node_modules/lottie-react-native'
pod 'lottie-ios', :path => '../node_modules/lottie-ios'
pod 'RNAWSCognito', :path => '../node_modules/amazon-cognito-identity-js'
pod 'TouchID', :path => '../node_modules/react-native-touch-id'
pod 'BVLinearGradient', :path => '../node_modules/react-native-linear-gradient'
pod 'RNGestureHandler', :path => '../node_modules/react-native-gesture-handler'
pod 'RNSVG', :path => '../node_modules/react-native-svg'
pod 'react-native-camera', :path => '../node_modules/react-native-camera'
pod 'CodePush', :path => '../node_modules/react-native-code-push'
pod 'RNAnalytics', :path => '../node_modules/@segment/analytics-react-native'
# Firebase Libs
pod 'Firebase/Core', '~> 5.15.0'
pod 'Firebase/Messaging', '~> 5.15.0'
# Onfido Libs
pod 'Onfido', '10.3.0', :configurations => ['Debug']
pod 'Onfido-Release', '10.3.0', :configurations => ['Release']
pod 'RNKeychain', :path => '../node_modules/react-native-keychain'
end
```
Also adding the libs in the Linked Frameworks and Libraries
creates duplicate symbols errors in AppCenter.
For reference for react native users that are upgrading to 59 and have pods:
On top of @anandwahed 's solution above, I ended up 1- analyze project in XCode and 2- manually remove every target that has tvOS on it.
My Podfile post_install looked like this:
post_install do |installer| installer.pods_project.targets.each do |target| if target.name == 'react-native-google-maps' target.build_configurations.each do |config| config.build_settings['CLANG_ENABLE_MODULES'] = 'No' end end if target.name == "React" target.remove_from_project end if target.name == 'yoga' target.remove_from_project target.build_configurations.each do |config| config.build_settings['GCC_TREAT_WARNINGS_AS_ERRORS'] = 'NO' config.build_settings['GCC_WARN_64_TO_32_BIT_CONVERSION'] = 'NO' end end end end
Following the suggestion from @PaulMest worked for me.
your solution worked for me, tanks.
https://github.com/facebook/react-native/issues/20492#issuecomment-464343895
That and killing a stale instance of the metro packager helped me.
I am having this issue and I am not using cocoapods. Can't use cocoapods as I am using react-native-navigation.
@MakhouT using react-native-navigation doesn't restrict you from using cocoapods
@AngefloMusic React-native-navigation isn't using it and for the setup you need to change some native iOS files. When using cocoapods, I am assuming this will be conflicting with each other when installing pod dependencies. However I am not sure as I haven't cocoapoads too much. So please do correct me if I am wrong.
@MakhouT They do not conflict. In fact, if you have a look at the react-native-navigation
repo you'll see there is a podspec file. I'm using RNN with cocoapods in a project now.
Sorry I need to reopen this, but the most preferred solution (see Podfile below) brings me to this painful error when trying to produce the archive.
this is my podfile
# Uncomment the next line to define a global platform for your project
platform :ios, '10.1'
target 'TVTips' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
#use_frameworks!
# Pods for TVTips
pod 'Firebase/Core', '~> 5.20.1'
pod 'Firebase/Analytics', '~> 5.20.1'
pod 'Firebase/Auth'
pod 'GoogleSignIn', '~> 4.4.0'
pod 'TwitterKit', '~> 3.3.0'
pod 'React', :path => '../node_modules/react-native', :modular_headers => true
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
pod 'react-native-twitter-signin', :path => '../node_modules/react-native-twitter-signin'
target 'TVTips-tvOSTests' do
inherit! :search_paths
# Pods for testing
pod 'YouTubeSdk', :path => '../node_modules/react-native-youtube-sdk'
pod 'ReactNativeLocalization', :path => '../node_modules/react-native-localization'
pod 'RNShare', :path => '../node_modules/react-native-share'
end
target 'TVTipsTests' do
inherit! :search_paths
# Pods for testing
end
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == "React"
target.remove_from_project
end
targets_to_ignore = %w(React yoga)
if targets_to_ignore.include? target.name
target.remove_from_project
end
end
end
end
I have React imported both in Link Binary with libraries and in Linked Frameworks and libraries.
Help :)
For me work removing duplicated resources in inside
Build Phases
As example bellow, Fonts was making an error
I know this is a solved problem for people who moved RN to Pods or people who use RN > 0.60.x but if you aren't ready yet or migrating this is our temporary solution (It basically removed tvOS config from React Native pbxproj file, which seems to be causing the multiple targets).
We use it in our postinstall script
const xcode = require('xcode');
const fs = require('fs');
const path = require('path');
const reactNativeProjectPath = path.resolve(__dirname, '../node_modules/react-native/React/React.xcodeproj/project.pbxproj');
const myProj = xcode.project(reactNativeProjectPath);
myProj.parse(err => {
if (err) {
throw err;
}
const nativeTargets = myProj.hash.project.objects.PBXNativeTarget;
Object.keys(nativeTargets).forEach(nativeTargetKey => {
const target = nativeTargets[nativeTargetKey];
if (target.name && target.name.indexOf('-tvOS') !== -1) {
console.log(`Removing ${target.name}:${nativeTargetKey} in React pbxproj`);
delete nativeTargets[nativeTargetKey];
}
});
fs.writeFileSync(reactNativeProjectPath, myProj.writeSync());
console.log(`All mentioned of tvOS removed in React pbxproj`);
});
For those who use Fastlane and face this issue, @PaulMest solution works: add all required targets to targets_to_ignore and then run rm -rf ios/Pods && pod install
before running Fastlane
For me work removing duplicated resources in inside
Build Phases
As example bellow, Fonts was making an error
Adding to @aerda's answer, I removed all of the fonts (.tff files) used by react-native-vector-icons from Build Phases > Copy Bundle Resources and my project is now building.
I believe this error in my case was related to updating to XCode 11, but am not positive about that last part.
I confirm the same with fonts being duplicate, only after upgrade to Xcode 11 stable today (Mac 10.14.6). Removing fonts under the [CP] Copy Pods Resources
section of Xcode's Build Phases and build works again.
Was and is using New build system. On RN 0.60.5.
@fungilation the same with me (Xcode 11 - upgraded today, new build system and RN 0.60.5). I have to removed all font under Copy Bundle Resources
and it works.
But when I execute pod install
command next time, this entries will appear again ๐๏ธ
same here with 0.61.0-rc.3 and xcode 11 11A420a mojave 10.14.6
I have only removed react-native-vector-icons tff and it works. No need to delete all tffs
delete previous pods install pod then run update pod it will work.
this is what I added to my podfile:
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == "React"
target.remove_from_project
end
if target.name == "yoga"
target.remove_from_project
end
end
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf'
end
end
end
this is what I added to my podfile:
post_install do |installer| installer.pods_project.targets.each do |target| if target.name == "React" target.remove_from_project end if target.name == "yoga" target.remove_from_project end end installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf' end end end
I tried this command (with fastlane) but even then the errors persist. ๐ข
error: Multiple commands produce '.../UninstalledProducts/iphoneos/libRNGestureHandler.a':
I get similar errors for 4 other libraries that I have installed -
RNKeyChain, RNAsyncStorage, RNDeviceInfo and BVLinearGradient
Here's my environment -
System:
OS: macOS 10.15.1
CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Memory: 1.54 GB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 12.10.0 - /usr/local/bin/node
Yarn: 1.17.3 - /usr/local/bin/yarn
npm: 6.11.3 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
Android SDK:
API Levels: 23, 26, 27, 28, 29
Build Tools: 27.0.3, 28.0.3, 29.0.1
System Images: android-19 | Google APIs Intel x86 Atom, android-22 | Google APIs Intel x86 Atom, android-22 | Google APIs Intel x86 Atom_64, android-23 | Google APIs Intel x86 Atom, android-26 | Google APIs Intel x86 Atom, android-27 | Google Play Intel x86 Atom, android-28 | Google APIs Intel x86 Atom, android-28 | Google Play Intel x86 Atom, android-29 | Google Play Intel x86 Atom
IDEs:
Android Studio: 3.5 AI-191.8026.42.35.5977832
Xcode: 11.2/11B52 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.6 => 16.8.6
react-native: ^0.60.5 => 0.60.5
npmGlobalPackages:
react-native-cli: 2.0.1
Been trying to find a solution since morning, have found nothing working so far. ๐
Even though when I run in an emulator, it works just fine.
I confirm the same with fonts being duplicate, only after upgrade to Xcode 11 stable today (Mac 10.14.6). Removing fonts under the
[CP] Copy Pods Resources
section of Xcode's Build Phases and build works again.Was and is using New build system. On RN 0.60.5.
For newbies like me: you need to edit the file <PROJECT_FOLDER>/ios/<PROJECT_NAME>.xcodeproj/project.pbxproj
Then comment out the font lines (files ending in .ttf) like this:
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-drawer2/Pods-drawer2-resources.sh",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf",
);
name = "[CP] Copy Pods Resources";
outputPaths = (
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf",
);
And I had to redo this process every time I ran pod install
Most helpful comment
You can try to change the build system to Legacy,
File > Workspace Settings > Build System > Legacy Build System.