The bundle 'Payload/{app name}/Frameworks/AppleCoreNative.framework' is missing plist key. The Info.plist file is missing the required key: CFBundleShortVersionString.

When I distribute a app that includes Apple Unity plugin, I got an error of asset validation failed.

The bundle 'Payload/{app name}/Frameworks/AppleCoreNative.framework' is missing plist key. The Info.plist file is missing the required key: CFBundleShortVersionString.

Does anyone get this?

  • I have the same problem. Did you find a solution for it?

Add a Comment

Replies

No idea if I did something wrong initially, but I fixed it with these steps:

  1. Download repo from https://github.com/apple/unityplugins/tree/main

  2. Start building the libraries

    python3 build.py -p Core GameKit -m iOS macOS
    
    1. Let script codesign the libraries

    2. During the build process copy the line the shell script outputs to codesign (similar to this):

      codesign --force --sign ABCDEFGHIJKLMN1234567890 --timestamp=none --preserve-metadata=identifier,entitlements,flags --generate-entitlement-der /path/to/bundle
      
  3. After the build script finished, you can find the tarball at /unityplugins-main/Build/com.apple.unityplugin.core-3.1.1.tgz

    1. Unzip the tgz and modify the Info.plist in the unziped folder /package/NativeLibraries~/Release/iOS/AppleCoreNative.framework/Info.plist

      1. You should add the missing CFBundleShortVersionString like this:
      <key>CFBundleShortVersionString</key>
      	<string>1.0</string>
      
    2. Afterwards, codesign the bundle again with the prompt copied at 2.2. Use this path from the unziped folder /package/NativeLibraries~/Release/iOS/AppleCoreNative.framework/AppleCoreNative

    3. Now export the folder back to a tarball using

      tar -czvf com.apple.unityplugin.core-3.1.1.tgz package
      
  4. Simply import the tarball from Unity Package Manager and restart archiving iOS build