react-native-quick-crypto icon indicating copy to clipboard operation
react-native-quick-crypto copied to clipboard

The app references non-public symbols in Payload/<app>: _FIPS_mode

Open keithluchtel opened this issue 1 year ago • 10 comments

Attempting to upload a Release Archive from Xcode is failing due to usage of non-public symbol: FIPS_mode().

keithluchtel avatar Apr 06 '23 21:04 keithluchtel

I'm getting the same error

otech47 avatar Apr 10 '23 21:04 otech47

@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:(

BlackCat1397 avatar Apr 15 '23 11:04 BlackCat1397

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

otech47 avatar Apr 15 '23 11:04 otech47

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 avatar Apr 15 '23 13:04 keithluchtel

@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:(

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.

keithluchtel avatar Apr 15 '23 13:04 keithluchtel

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?

BlackCat1397 avatar Apr 17 '23 10:04 BlackCat1397

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 avatar Apr 17 '23 10:04 BlackCat1397

@BlackCat1397 do you have Flipper enabled? I was getting this error as well due to Flipper also including OpenSSL.

keithluchtel avatar Apr 17 '23 21:04 keithluchtel

Have you found a solution to this? I am getting the _FIPS_mode error when attempting to distribute app.

jlm0 avatar Jun 11 '23 20:06 jlm0

This helped me solve the issue: https://github.com/margelo/react-native-quick-crypto/issues/121#issuecomment-1537576444

ignaciosantise avatar Aug 07 '23 15:08 ignaciosantise