multiple commands produce 'xcode/../../../deriveddata/debug-iphonesimulator/freerasp-react-native/freerasp_react_native.framework/headers/talsecruntime-swift.h'
jaitruworth opened this issue · comments
Describe the bug
multiple commands produce 'xcode/deriveddata/debug-iphonesimulator/freerasp-react-native/freerasp_react_native.framework/headers/talsecruntime-swift.h'
To Reproduce
just add npm add library and pod install in ios folder
Expected behavior
build to be successful
Please complete the following information:
- Device: iPhone 14 pro [simulator]
- OS version: 14.6
- Version of freeRASP: 3.1.0
also followed steps to add code to app and add binary to app and getting same issue
Hi @jaitruworth,
Unfortunately I wasn't able to reproduce the error. Please, share the whole stack trace of the error if possible.
For now, I would suggest reinstalling pods, maybe that could solve the problem:
In ios folder, run these commands:
pod deintegrate
pod cache clean --all
pod install
Let us know if this helps.
Best,
Tomas, Talsec developer
- added library to npm (npm install)
- cd ios
- pod deintegrate
- pod cache clean --all
- pod install --verbose
- then run from Xcode and fails
there are 15 similar "Multiple commands produce" errors 2 of them are shown below
Multiple commands produce '/Users/../Library/Developer/Xcode/DerivedData/appname-ewsgfwgfwsjwrbcdprlujuzitvvy/Build/Products/Debug-iphonesimulator/freerasp-react-native/freerasp_react_native.framework/Headers/CryptoBridgingHeader.h'
Multiple commands produce '/Users/../Library/Developer/Xcode/DerivedData/..-ewsgfwgfwsjwrbcdprlujuzitvvy/Build/Products/Debug-iphonesimulator/freerasp-react-native/freerasp_react_native.framework/Headers/CurlWrapper.h'
Multiple commands produce '/Users/../Library/Developer/Xcode/DerivedData/..-ewsgfwgfwsjwrbcdprlujuzitvvy/Build/Products/Debug-iphonesimulator/freerasp-react-native/freerasp_react_native.framework/Headers/TalsecRuntime-Swift.h'
Hi @jaitruworth,
we'll do our best to fix the issue.
These folders are not duplicates and are not reason of the error. They include binary code for multiple architectures, allowing it to run on different devices and simulators.
We still didn't reproduce the issue. Can you please answer following questions?
- Is this a new installation of freeRASP, or are you upgrading from a previous version?
- What version of XCode are you using?
- Do you run app with Rosetta?
- In your app's target in XCode, go to General -> Frameworks, Libraries and Embedded Content. Do you see TalsecRuntime.xcframework listed there?
- Do you see TalsecRuntime.xcframework in Build Phases -> Link Binary With Libraries?
Also, please look inside "Build Phases" tab for any build phase (e.g., "Copy Headers," "Copy Files," "Compile Sources") that may be generating conflicting files and causing the conflict. If you find multiple build phases generating these files, delete one of them.
hii @tompsota Any update on this ??
Hello @jaitruworth,
Could you please respond to the questions in my previous message? You can find them in this link: #26 (comment).
We performed a clean install of freeRASP and did not encounter any errors, therefore your answers will be valuable in identifying the issue.
- New installation
- Xcode 14.1
- Rosetta? - no
- Frameworks, Libraries and Embedded Content. - can't see framework here
- Link Binary With Libraries? - can't see framework here
- Copy Headers," "Copy Files," "Compile Sources" - no duplicate found
added library to Frameworks, Libraries and Embedded Content and Link Binary With Libraries? and got same issue
Found library in Embed Frameworks in Build phases
also removed from there and checked, still got same issue
Hi @jaitruworth,
we just released new version, let's see if the problem still persists. Try to remove everything related to freeRASP first and try to do a clean install:
npm uninstall freerasp-react-native
(or delete node_modules and remove freerasp from package.json)cd ios
pod deintegrate
pod cache clean --all
cd ..
npm install freerasp-react-native
cd ios
pod install
Ensure that freerasp 3.3.0 is installed. Try to run the app and let us know if this helped.
Still same issue
Version 3.3.0 is installed
Followed all steps you mentioned
Hi and sorry for late reply,
thanks @gansu18 for pointing this out!
@jaitruworth, can you check if you have use_frameworks!
in your Podfile and eventually remove it?
freeRASP is shipped as a static library, therefore dynamic linking with use_frameworks! will lead to duplicate class error.
Hi and sorry for late reply, thanks @gansu18 for pointing this out!
@jaitruworth, can you check if you have
use_frameworks!
in your Podfile and eventually remove it? freeRASP is shipped as a static library, therefore dynamic linking with use_frameworks! will lead to duplicate class error.
I only have this line use_frameworks! :linkage => :static
in my Podfile and i don't think it's a good idea to remove it.
yes removing use_frameworks
breaks other library that we are using
Hi @jaitruworth, @Suliman-A, @gansu18,
Indeed, if some other package require use_frameworks!, then you cannot remove it. However, I finally reproduced the problem and found a way to fix it.
Fix:
- Go to node_modules/freerasp-react-native/freerasp-react-native.podspec
- After a line that starts with 's.source_files' (line 17), add this code that removes the duplicate headers:
s.exclude_files = 'ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/*.h', 'ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/*.h'
- Run
pod install
.
After that, the project should build successfully.
Hope this helps.
We'll have to do some more testing until we are able to release this globally, to ensure compatibility with projects that do not use the use_frameworks! directive. However, in your case, everything will work as expected.
Hi @jaitruworth @Suliman-A ,
We just released v3.3.1, which fixes the issue.
Best,
Tomas, Talsec developer