<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">After rebuilding a lot of port libs until I obtained the LC_VERSION_MIN_MACOSX, I ran into this new Apple rejection reason:<div class=""><br class=""></div><div class=""><h3 style="caret-color: rgb(102, 102, 102); color: rgb(102, 102, 102); font-family: Helvetica, "Lucida Grande", Arial, sans-serif; text-align: justify;" class="">Guideline 2.5.1 - Performance</h3><div class="">Your app links against the following non-public framework(s):</div></div><div class=""><br class=""></div><div class=""><div class="">• Contents/Frameworks/libcrypto.1.1.dylib/___sprintf_chk</div><div class="">• Contents/Frameworks/libp11-kit.0.dylib/___sprintf_chk</div><div class="">• Contents/Frameworks/libmpfr.6.dylib/___sprintf_chk</div><div class="">• Contents/Frameworks/libgnutls.30.dylib/___sprintf_chk</div><div class="">• Contents/Frameworks/libgnutls.30.dylib/_p11_kit_space_strdup</div><div class="">• Contents/Frameworks/libgnutls.30.dylib/_p11_kit_space_strlen</div><div class="">• Contents/Frameworks/libidn2.0.dylib/_sprintf</div><div class="">• Contents/Frameworks/libx264.157.dylib/___sprintf_chk</div><div class="">• Contents/Frameworks/libssl.1.1.dylib/___sprintf_chk</div><div class="">• Contents/Frameworks/libxml2.2.dylib/___sprintf_chk</div><div class=""><br class=""></div><div class=""><b style="caret-color: rgb(102, 102, 102); color: rgb(102, 102, 102); font-family: Helvetica, "Lucida Grande", Arial, sans-serif; font-size: 14px; text-align: justify;" class="">Next Steps</b></div><div class=""><br style="caret-color: rgb(102, 102, 102); color: rgb(102, 102, 102); font-family: Helvetica, "Lucida Grande", Arial, sans-serif; font-size: 14px; text-align: justify;" class=""><span style="caret-color: rgb(102, 102, 102); color: rgb(102, 102, 102); font-family: Helvetica, "Lucida Grande", Arial, sans-serif; font-size: 14px; text-align: justify; background-color: rgb(255, 255, 255);" class="">The use of non-public APIs is not permitted on the App Store as it can lead to a poor user experience should these APIs change.</span></div><div class=""><span style="caret-color: rgb(102, 102, 102); color: rgb(102, 102, 102); font-family: Helvetica, "Lucida Grande", Arial, sans-serif; font-size: 14px; text-align: justify; background-color: rgb(255, 255, 255);" class=""><br class=""></span></div><div class="">Is it possible to rebuild those libs without those symbols?</div><div class=""><br class=""></div><div class="">I found this link which may be relevant (I am not a C developer)</div><div class=""><br class=""></div><div class=""><a href="https://stackoverflow.com/questions/12201625/disable-using-sprintf-chk#12203365" class="">https://stackoverflow.com/questions/12201625/disable-using-sprintf-chk#12203365</a></div><div class=""><br class=""></div><div class="">Regards,</div><div class="">Adrian</div><div class=""><br class=""></div><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 2 Mar 2021, at 07:14, Ryan Schmidt <<a href="mailto:ryandesign@macports.org" class="">ryandesign@macports.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">On Mar 1, 2021, at 17:16, Adrian Georgescu wrote:</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">I am just a new user so bear with me.<br class=""><br class="">It seems that now Apple rejects any library part of a notarised application (and Mac App Store) if it does not comply with certain rules.<br class=""><br class="">One of this rules is that each binary or library must indicate the minimum OS version is suppose to run on.<br class=""><br class="">This can be checked with otool like in this example:<br class=""><br class="">otool -l libvpx.dylib |grep -A 2 -B 3 LC_VERSION_MIN_MACOSX<br class="">cmdsize 24<br class=""> uuid 1EDC0CF1-9D58-30B4-AF67-A0DEEAF3BAF4<br class="">Load command 8<br class=""> cmd LC_VERSION_MIN_MACOSX<br class="">cmdsize 16<br class="">version 10.11<br class=""><br class="">If your app depends on 3rd party libs you can install them using Mac Ports. But the default built binaries do not always work.<br class=""><br class="">The only way to obtain this flag set while using port is to install from source using -s parameter<span class="Apple-converted-space"> </span><br class=""><br class="">But for some libraries even this is not enough (libvpx and libsdl are some examples I ran into).<br class=""><br class="">The option for generating this flag is at linking stage and the option for creating this flag must be passed to the linker for this and this is not always possible by just using port install -s command.<br class=""><br class="">For example installing libvpx library (and many others) was not possible using -s because the library was not ready to use this flag.<br class=""><br class="">I have to edit the Makefiles and pass this flag to the linking stage:<br class=""><br class="">-mmacosx-version-min=10.11<br class=""><br class="">10.11 or whatever minimum version the lib or app is suppose to run on.<br class=""><br class="">May I suggest that this must be documented somehow in the port recipes.<br class=""></blockquote><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">I am not aware of Apple's increasingly inconvenient requirements in this regard.</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">MacPorts adopted the strategy of setting the MACOSX_DEPLOYMENT_TARGET environment variable in all phases. It was our understanding that this was equivalent to setting -mmacosx-version-min, therefore we make no effort to set -mmacosx-version-min and have not had any qualms in removing conflicting -mmacosx-version-min directives when we encounter them.</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">If this is not longer satisfactory to Apple, then we will need to change how MacPorts works and fix all ports (a huge undertaking, of course).</span></div></blockquote></div><br class=""></div></div></body></html>