iOS: Error on uploading build to App Store
I am able to build the project fine and upload to my iPhone locally, but on uploading to App Store I'm getting an error:
Validation failed (409) Invalid Bundle. The bundle Spooky Express.app/Frameworks/libGodotFmod.ios.template_debug.universal.framework does not support the minimum OS Version specified in the Info.plist. (ID: 5b0a31e4-0f38-43b9-b801-21fe1edeb74b)
I saw this now-closed issue where someone was having the same thing occuring and it was suggested to edit the Info.plist, but I'm not clear on what would need changing: https://github.com/utopia-rise/fmod-gdextension/issues/247
Hello ! Which godot version are you using ?
Hey, thanks for the quick reponse. It's Godot 4.4.1. I'm using the libraries from https://github.com/utopia-rise/fmod-gdextension/releases/tag/5.0.6-4.4.0 and Xcode 16.2
Can you share the iOS version set in info plist in generated Xcode project by the export ? I think we maybe need to update Godot cpp
I can't see anything in the Info plist, but the Xcode project is set to target iOS 14.0
I think I got it.
In godot-cpp sconstruct minimum ios version is 12: https://github.com/godotengine/godot-cpp/blob/c943beb4f40dd0d8e2c55d346a11b4dc57dee1ca/tools/ios.py#L16
Can you try to change min ios version to 12 in your export to confirm it ?
Unfortunately it failed with the same error. I have double-checked and it does say it's now targetting iOS 12.0 in Xcode.
I did a little more digging on this. I found a suggestion from an Apple engineer on how to find out the minimum OS version required for a framework: https://developer.apple.com/forums/thread/705297?answerId=711975022#711975022
Following the steps, I got the following results:
cmd LC_BUILD_VERSION
cmdsize 32
platform IOS
minos 17.5
sdk 17.5
ntools 1
tool LD
version 1053.12
Load command 10
cmd LC_SOURCE_VERSION
cmdsize 16
version 0.0
So it seems like the addon requires a minimum target of 17.5. I tried changing my Xcode project to target 17.5, but had the same error. Thought I'd pass it along in case it helps somehow.
Is there any more info I can pass along to help with this?
So how did you change the Xcode target project ? Unfortunately none of the maintainers have an apple developer account, so hard to tests this :|
So I first tried setting the Min iOS Version option in Godot's Export settings, then also this option in the General tab in Xcode, but didn't seem to have any affect:
Aha, so, I have managed to get a build uploaded. Digging around in the Xcode project files generated by Godot, I found another Info.plist that has a MinimumOSVersion line set to 12.0. Changing this to 17.5 allowed the build to upload successfully.
In the build, the file lives at [Project Name]/dylibs/addons/fmod/libs/ios/libGodotFmod.ios.template_release.xcframework/ios-arm64/libGodotFmod.ios.template_release.universal.framework/Info.plist. I can't find this file in the project otherwise so it seems to be generated when Godot makes the Xcode project.
I was on the same path, the built dylib does not have the right version and version is not set in generated info.plist If you look into published addon folder you can see the generated plist, which does not have any minimum version
Once CI of the PR pass, can you test with generated artifacts ?
Once CI of the PR pass, can you test with generated artifacts ?
I deleted and regenerated the Xcode project after grabbing the new libs and it uploaded just fine. Seems to work!