fix(scanner): stamp opencv2 with a released SDK - #635
Merged
Conversation
The 4.12.0 rebuild in #630 was made with the only Xcode on the build machine, a 27.0 beta, so both framework slices carry LC_BUILD_VERSION sdk 27.0. The App Store rejects any binary stamped above the newest released SDK (ITMS-90512), which took out 2026.8.3 build 500 — and would take out every release until fixed, since this sits on main. Restamp both slices to 26.1, the sdk the shipping 2026.8.2 framework carried, with vtool. Nothing else in the binary changes and the frameworks are unsigned, so there is nothing to re-sign. Also refuse to build the framework at all under a too-new SDK. This script's output is committed and shipped as-is, so a beta Xcode here surfaces as a failed submission weeks later, long after whoever ran it has moved on.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The OpenCV 4.12.0 rebuild in #630 was made on a machine whose only Xcode is a
27.0 beta, so both slices of the committed
opencv2.xcframeworkcarryLC_BUILD_VERSION sdk 27.0. The App Store rejects any binary stamped above thenewest released SDK:
That took out 2026.8.3 build 500 (
INVALID_BINARY), and because the frameworklives on
mainit would take out every subsequent release too.What this does
vtool— the same sdk the shipping2026.8.2 framework carried. Only the
LC_BUILD_VERSIONload command changes;architectures are preserved (arm64 / x86_64+arm64) and the frameworks are
unsigned, so nothing needed re-signing.
check_sdk_versionguard toCodeScanner/Scripts/build_opencv.shthat refuses to build under an SDK above
MAX_ALLOWED_SDK(26.5). Thescript's output is committed and shipped as-is, so a beta Xcode at build time
otherwise only surfaces as a failed submission weeks later.
Raise
MAX_ALLOWED_SDKwhen Apple starts accepting a newer one.Follow-up
The patch corrects the stamp, not the toolchain the code was compiled with.
Once a release Xcode 26.x is installed the framework should be rebuilt from
source against it; tracked separately.