@@ -58,6 +58,22 @@ if [[ ! -d "${IOS_ONNX}" ]]; then
5858 log_error " iOS ONNX Runtime not found at: ${IOS_ONNX} "
5959fi
6060
61+ # Read ONNX Runtime version dynamically from the source xcframework's slice Info.plist.
62+ # The xcframework root Info.plist is metadata only; version lives inside each slice's framework.
63+ ONNX_VERSION_IOS=" "
64+ for slice_plist in " ${IOS_ONNX} " /* /onnxruntime.framework/Info.plist " ${IOS_ONNX} " /* /Info.plist; do
65+ [[ -f " $slice_plist " ]] || continue
66+ ver=$( /usr/libexec/PlistBuddy -c " Print :CFBundleShortVersionString" " $slice_plist " 2> /dev/null || true)
67+ if [[ -n " $ver " ]]; then
68+ ONNX_VERSION_IOS=" $ver "
69+ break
70+ fi
71+ done
72+ if [[ -z " $ONNX_VERSION_IOS " ]]; then
73+ log_error " Could not determine ONNX Runtime version from ${IOS_ONNX} "
74+ fi
75+ log_info " ONNX Runtime version: ${ONNX_VERSION_IOS} "
76+
6177# Verify macOS ONNX Runtime exists
6278if [[ ! -d " ${MACOS_ONNX} /lib" ]]; then
6379 log_error " macOS ONNX Runtime not found at: ${MACOS_ONNX} /lib\nRun: cd sdk/runanywhere-commons && ./scripts/macos/download-onnx.sh"
@@ -116,6 +132,27 @@ done
116132IOS_XCFW=" ${OUTPUT_DIR} /onnxruntime-ios.xcframework"
117133rm -rf " ${IOS_XCFW} "
118134xcodebuild -create-xcframework " ${XCFW_ARGS[@]} " -output " ${IOS_XCFW} "
135+
136+ # Inject Info.plist into each slice so Xcode uses it when embedding the framework.
137+ # Library-format xcframeworks don't carry Info.plist automatically, causing
138+ # App Store validation to fail with "missing CFBundleShortVersionString".
139+ for slice_dir in " ${IOS_XCFW} " /* /; do
140+ [[ ! -d " $slice_dir " ]] && continue
141+ cat > " ${slice_dir} Info.plist" << EOF
142+ <?xml version="1.0" encoding="UTF-8"?>
143+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
144+ <plist version="1.0">
145+ <dict>
146+ <key>CFBundleExecutable</key><string>onnxruntime</string>
147+ <key>CFBundleIdentifier</key><string>com.microsoft.onnxruntime</string>
148+ <key>CFBundlePackageType</key><string>FMWK</string>
149+ <key>CFBundleShortVersionString</key><string>${ONNX_VERSION_IOS} </string>
150+ <key>CFBundleVersion</key><string>${ONNX_VERSION_IOS} </string>
151+ <key>MinimumOSVersion</key><string>17.0</string>
152+ </dict>
153+ </plist>
154+ EOF
155+ done
119156log_info " Created onnxruntime-ios.xcframework"
120157
121158# ============================================================================
@@ -170,10 +207,10 @@ cat > "${MACOS_FW}/Versions/A/Resources/Info.plist" << 'EOF'
170207<plist version="1.0">
171208<dict>
172209 <key>CFBundleExecutable</key><string>onnxruntime</string>
173- <key>CFBundleIdentifier</key><string>ai .onnxruntime</string>
210+ <key>CFBundleIdentifier</key><string>com.microsoft .onnxruntime</string>
174211 <key>CFBundlePackageType</key><string>FMWK</string>
175- <key>CFBundleShortVersionString</key><string>1.17.1 </string>
176- <key>CFBundleVersion</key><string>1.17.1 </string>
212+ <key>CFBundleShortVersionString</key><string>${ONNX_VERSION_IOS} </string>
213+ <key>CFBundleVersion</key><string>${ONNX_VERSION_IOS} </string>
177214 <key>LSMinimumSystemVersion</key><string>14.0</string>
178215</dict>
179216</plist>
0 commit comments