Hello,
I have integrated LZMA2 compression into my iOS app, Hogs, and successfully implemented compression. However, when attempting to upload the app for TestFlight, I encountered an error:
"The app references non-public symbols in Payload/Hogs.app/Hogs: _lzma_code, _lzma_end."
These functions are part of the LZMA compression library (specifically LZMA2). Here's a detailed description of the issue:
What I Have Done:
LZMA2 Integration: I integrated LZMA2 compression into the app and created a wrapper around the LZMA functions (_lzma_code, _lzma_end) to prevent direct references.
App Build Configuration:
I ensured the LZMA2 library is linked correctly with the -lzma flag in the linker settings.
I wrapped the LZMA functions in custom functions (my_lzma_code, my_lzma_end) in an attempt to avoid using the non-public symbols directly.
Error Message:
During the app submission process, I received the following error:
"The app references non-public symbols in Payload/Hogs.app/Hogs: _lzma_code, _lzma_end."
Steps Taken to Resolve:
Checked if any LZMA functions were exposed incorrectly.
Ensured that all non-public symbols were properly encapsulated in a wrapper.
Verified linker settings to ensure the proper inclusion of the LZMA2 library.
Request:
Could anyone provide suggestions or best practices to resolve this issue and avoid references to non-public symbols? Should I use a different method for linking LZMA2 or encapsulating these symbols?
Thank You:
I appreciate your help in resolving this issue so I can move forward with submitting the app for TestFlight.
Topic:
Programming Languages
SubTopic:
Swift
Tags:
Swift Packages
Apple Archive
Compression
TestFlight