media-kit / libmpv-darwin-build

libmpv for macOS & iOS.
Other
32 stars 11 forks source link

`Info.plist` misses the required `CFBundleShortVersionString` key #11

Closed SleepySquash closed 1 year ago

SleepySquash commented 1 year ago

The problem

I'm not sure what caused the problem, however recently I've updated to the latest Xcode 15.0 beta 5 and when I'm trying to upload my application to the App Store or TestFlight, the following errors are thrown:

Снимок экрана 2023-08-03 в 14 01 42

Errors are linked to the media_kit_libs_ios_video, since all the frameworks specified come from it. Manually adding the CFBundleShortVersionString to the Info.plist files to every framework in the media_kit_libs_ios_video-1.0.5/ios/Frameworks directory fixes the issue, the upload is successful:

Снимок экрана 2023-08-03 в 16 24 48

Here's an example of Info.plist file modified in the media_kit_libs_ios_video-1.0.5/ios/Frameworks/Ass.xcframework/ios-arm64/Ass.framework directory:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleExecutable</key>
    <string>Ass</string>
    <key>CFBundleIdentifier</key>
    <string>com.github.media-kit.Ass</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleVersion</key>
    <string>1.0</string>
    <key>MinimumOSVersion</key>
    <string>9.0</string>
</dict>
</plist>

Investigating further, I've found out that CFBundleShortVersionString is required by Apple since 2013/2014. Yet I was able to successfully upload the application when I was using Xcode 14.

Possible solutions

Info.plist is added in a create_frameworks.sh script, thus one might just add the CFBundleShortVersionString to the file in order for Apple to submit the application uploaded.

The problem occured might be related to something local with my setup, however I think it won't hurt to add the CFBundleShortVersionString to the Info.plist file.

birros commented 1 year ago

Thanks for this perfect issue, I'll add it in the next release! Since CFBundleShortVersionString is also usable with macOS, I'll add it for both OS.


Sorry for the annoyance, I manage iOS and macOS builds without uploading them to the App Store myself.