The app references non-public symbols in Payload/<app>: _FIPS_mode
Attempting to upload a Release Archive from Xcode is failing due to usage of non-public symbol: FIPS_mode().
I'm getting the same error
@keithluchtel @otech47 I have the same problem.
ITMS-90338: Non-public API usage - The app references non-public symbols in sharekey dev: _FIPS_mode.
The build is rejected by Apple and does not appear in TestFlight:|
I can not find _FIPS_mode or FIPS_mode() in the projects pods and node modules. However different symbols which include _FIPS_mode in their names are present in OpenSSL-Universal framework.
Frustratingly, I've had OpenSSL-Universal framework in my project before adding react-native-quick-crypto lib and the checksum of OpenSSL-Universal in Podfile.lock has not changed, so I don't think that problem is with OpenSSL-Universal framework itself...
So I have no ideas for now where to dig:(
By adding Openssl as an embedded framework as mentioned in my edited comment https://github.com/margelo/react-native-quick-crypto/issues/121#issuecomment-1500592485 I was able to both build for release AND upload to testflight.
So still a workaround on both fronts but at least the build can be shipped
By adding Openssl as an embedded framework as mentioned in my edited comment #121 (comment) I was able to both build for release AND upload to testflight.
So still a workaround on both fronts but at least the build can be shipped
What version of OpenSSL do you have? The references to FIPS_mode() are only in the code for versions < 3. Embedding does not work to solve this issue for since I have an older version of OpenSSL Universal in my project.
@keithluchtel @otech47 I have the same problem.
ITMS-90338: Non-public API usage - The app references non-public symbols in sharekey dev: _FIPS_mode.
The build is rejected by Apple and does not appear in TestFlight:|
I can not find
_FIPS_modeorFIPS_mode()in the projects pods and node modules. However different symbols which include_FIPS_modein their names are present inOpenSSL-Universalframework. Frustratingly, I've hadOpenSSL-Universalframework in my project before addingreact-native-quick-cryptolib and the checksum ofOpenSSL-UniversalinPodfile.lockhas not changed, so I don't think that problem is withOpenSSL-Universalframework itself...So I have no ideas for now where to dig:(
I believe the symbol within quick-crypto is actually FIPS_mode(), you'll find a couple references to it if you search without the leading _. Commenting those out does fix the issue in a test I did.
By adding Openssl as an embedded framework as mentioned in my edited comment #121 (comment) I was able to both build for release AND upload to testflight. So still a workaround on both fronts but at least the build can be shipped
What version of OpenSSL do you have? The references to
FIPS_mode()are only in the code for versions< 3. Embedding does not work to solve this issue for since I have an older version of OpenSSL Universal in my project.
Indeed, I've found FIPS_mode() in OpenSSL-Universal framework today.
I have 1.1.1100 version of OpenSSL.
Also, for https://github.com/krzyzanowskim/OpenSSL latest version is 1.1.2000, so can you, please, tell me where did you got version >= 3 from?
By adding Openssl as an embedded framework as mentioned in my edited comment #121 (comment) I was able to both build for release AND upload to testflight.
So still a workaround on both fronts but at least the build can be shipped
As I understand, the OpenSSL-Universal framework is already being embedded by CocoaPods, so when I make it embedded in the main project the error Multiple commands produce '.../Frameworks/OpenSSL.framework' occurs:/
@BlackCat1397 do you have Flipper enabled? I was getting this error as well due to Flipper also including OpenSSL.
Have you found a solution to this? I am getting the _FIPS_mode error when attempting to distribute app.
This helped me solve the issue: https://github.com/margelo/react-native-quick-crypto/issues/121#issuecomment-1537576444