Hi,
I have a Swift/Objective C/C++ combined iOS app (iOS 11) and I've used the -fstack-protector-all flag to guard against buffer overflows.
When I use "otool -Iv [binary]", on the binary that's in the xcarchive, I can see stack protections present.
However, when I export to an .ipa (and sign it with a distribution certificate) with bitcode enabled and I run the same otool command on the binary in the .ipa, otool does not show stack protections anymore.
I'm assuming here that the LLVM intermediate language format is different from machine language format and thus these protections are not shows.
My question: I cannot find any clear literature online about this: are stack protections still present in bitcode and/or are stack protections present after Apple recompiles the bitcode into architecture specific machine language when the app is deployed to the App Store?
Thanks in advance for the help!
Maurice