Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[0.74.4]ERROR: [ContentDelivery.Uploader] Asset validation failed (90360) Missing Info.plist value. A value for the key 'MinimumOSVersion' in bundle XXXX.XXXX/Frameworks/hermes.framework is required. #45823

Closed
efstathiosntonas opened this issue Jul 30, 2024 · 32 comments
Labels
📦Bundler Needs: Attention Issues where the author has responded to feedback. Needs: Repro This issue could be improved with a clear list of steps to reproduce the issue.

Comments

@efstathiosntonas
Copy link

efstathiosntonas commented Jul 30, 2024

Description

After updating from 0.74.3 to 0.74.4 I get this error when shipping to testflight:

ERROR: [ContentDelivery.Uploader] Asset validation failed (90530) Invalid MinimumOSVersion. Apps that only support 64-bit devices must specify a deployment target of 8.0 or later. MinimumOSVersion in 'XXXX.XXXX/Frameworks/hermes.framework' is ''. (ID: 30ace45d-a8c8-4863-97bc-9d5d5434822d)
ERROR: [ContentDelivery.Uploader] Asset validation failed (90360) Missing Info.plist value. A value for the key 'MinimumOSVersion' in bundle XXXX.XXXX/Frameworks/hermes.framework is required.

probably offending PR: 924fb3d

Steps to reproduce

  1. just updated from 0.74.3 to 0.74.4

React Native Version

0.74.4

Affected Platforms

Runtime - iOS

Output of npx react-native info

System:
  OS: macOS 14.6
  CPU: (20) arm64 Apple M1 Ultra
  Memory: 136.20 MB / 64.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 20.16.0
    path: ~/.nvm/versions/node/v20.16.0/bin/node
  Yarn:
    version: 4.2.2
    path: /opt/homebrew/bin/yarn
  npm:
    version: 10.8.2
    path: ~/.nvm/versions/node/v20.16.0/bin/npm
  Watchman:
    version: 2024.07.15.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.14.3
    path: /Users/stathis/.gem/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 23.5
      - iOS 17.5
      - macOS 14.5
      - tvOS 17.5
      - visionOS 1.2
      - watchOS 10.5
  Android SDK: Not Found
IDEs:
  Android Studio: 2024.1 AI-241.18034.62.2411.12071903
  Xcode:
    version: 15.4/15F31d
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.12
    path: /usr/bin/javac
  Ruby:
    version: 3.3.4
    path: /opt/homebrew/opt/ruby/bin/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.74.4
    wanted: 0.74.4
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false


### Stacktrace or Logs

```text
none

Reproducer

none

Screenshots and Videos

No response

@react-native-bot
Copy link
Collaborator

⚠️ Missing Reproducible Example
ℹ️ We could not detect a reproducible example in your issue report. Please provide either:
  • If your bug is UI related: a Snack
  • If your bug is build/update related: use our Reproducer Template. A reproducer needs to be in a GitHub repository under your username.

@react-native-bot react-native-bot added Needs: Author Feedback Needs: Repro This issue could be improved with a clear list of steps to reproduce the issue. labels Jul 30, 2024
@efstathiosntonas efstathiosntonas changed the title ERROR: [ContentDelivery.Uploader] Asset validation failed (90360) Missing Info.plist value. A value for the key 'MinimumOSVersion' in bundle XXXX.XXXX/Frameworks/hermes.framework is required. [0.74.4]ERROR: [ContentDelivery.Uploader] Asset validation failed (90360) Missing Info.plist value. A value for the key 'MinimumOSVersion' in bundle XXXX.XXXX/Frameworks/hermes.framework is required. Jul 30, 2024
@react-native-bot
Copy link
Collaborator

⚠️ Missing Reproducible Example
ℹ️ We could not detect a reproducible example in your issue report. Please provide either:

@efstathiosntonas
Copy link
Author

this is the info.plist of hermes:

<?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>AvailableLibraries</key>
	<array>
		<dict>
			<key>BinaryPath</key>
			<string>hermes.framework/hermes</string>
			<key>DebugSymbolsPath</key>
			<string>dSYMs</string>
			<key>LibraryIdentifier</key>
			<string>xros-arm64</string>
			<key>LibraryPath</key>
			<string>hermes.framework</string>
			<key>SupportedArchitectures</key>
			<array>
				<string>arm64</string>
			</array>
			<key>SupportedPlatform</key>
			<string>xros</string>
		</dict>
		<dict>
			<key>BinaryPath</key>
			<string>hermes.framework/hermes</string>
			<key>DebugSymbolsPath</key>
			<string>dSYMs</string>
			<key>LibraryIdentifier</key>
			<string>ios-arm64_x86_64-simulator</string>
			<key>LibraryPath</key>
			<string>hermes.framework</string>
			<key>SupportedArchitectures</key>
			<array>
				<string>arm64</string>
				<string>x86_64</string>
			</array>
			<key>SupportedPlatform</key>
			<string>ios</string>
			<key>SupportedPlatformVariant</key>
			<string>simulator</string>
		</dict>
		<dict>
			<key>BinaryPath</key>
			<string>hermes.framework/hermes</string>
			<key>DebugSymbolsPath</key>
			<string>dSYMs</string>
			<key>LibraryIdentifier</key>
			<string>xros-arm64-simulator</string>
			<key>LibraryPath</key>
			<string>hermes.framework</string>
			<key>SupportedArchitectures</key>
			<array>
				<string>arm64</string>
			</array>
			<key>SupportedPlatform</key>
			<string>xros</string>
			<key>SupportedPlatformVariant</key>
			<string>simulator</string>
		</dict>
		<dict>
			<key>BinaryPath</key>
			<string>hermes.framework/Versions/0/hermes</string>
			<key>DebugSymbolsPath</key>
			<string>dSYMs</string>
			<key>LibraryIdentifier</key>
			<string>ios-arm64_x86_64-maccatalyst</string>
			<key>LibraryPath</key>
			<string>hermes.framework</string>
			<key>SupportedArchitectures</key>
			<array>
				<string>arm64</string>
				<string>x86_64</string>
			</array>
			<key>SupportedPlatform</key>
			<string>ios</string>
			<key>SupportedPlatformVariant</key>
			<string>maccatalyst</string>
		</dict>
		<dict>
			<key>BinaryPath</key>
			<string>hermes.framework/hermes</string>
			<key>DebugSymbolsPath</key>
			<string>dSYMs</string>
			<key>LibraryIdentifier</key>
			<string>ios-arm64</string>
			<key>LibraryPath</key>
			<string>hermes.framework</string>
			<key>SupportedArchitectures</key>
			<array>
				<string>arm64</string>
			</array>
			<key>SupportedPlatform</key>
			<string>ios</string>
		</dict>
	</array>
	<key>CFBundlePackageType</key>
	<string>XFWK</string>
	<key>XCFrameworkFormatVersion</key>
	<string>1.0</string>
</dict>
</plist>

@github-actions github-actions bot added Needs: Attention Issues where the author has responded to feedback. and removed Needs: Author Feedback labels Jul 30, 2024
@huextrat
Copy link

Same error after update to 0.74.4 (previously 0.74.3)

@nicolascavallin
Copy link

nicolascavallin commented Jul 31, 2024

In my case, affecting only after the update to 0.74.4. Working well on 0.74.3

efstathiosntonas referenced this issue Jul 31, 2024
Summary:
As discussed with cipolleschi offline, this PR adds visionOS to the prebuilt Hermes binary for the CI.

## Changelog:

[IOS] [ADDED] - Prebuilt version of Hermes for visionOS

Pull Request resolved: #44691

Test Plan: Check if CI builds xcframework for visionOS.

Reviewed By: cortinico

Differential Revision: D58189271

Pulled By: cipolleschi

fbshipit-source-id: dc76746b2c1e22670bef4c21411a598e43dad577
@efstathiosntonas
Copy link
Author

@cipolleschi Hi, just a cc 😄

@okwasniewski
Copy link
Contributor

Hey, thanks for tagging me. I'll take a look today and try to come up with a fix cc: @cipolleschi

@okwasniewski
Copy link
Contributor

This PR should adress this issue: #45840

@parthkanani93
Copy link

Getting the same issue Please help anyone to fix this
Screenshot 2024-08-01 at 11 30 27 AM

@efstathiosntonas
Copy link
Author

@parthkanani93 there are 2 PRs linked in the issue and one comment linking to the PR that fixes it. Just wait for Meta team to merge and release a new version

@akilamist
Copy link

Guys any update on this ? My expo build is failing due to this

@parthkanani93
Copy link

parthkanani93 commented Aug 2, 2024

Finally after 18 to 20 hrs Finally I have been able to solve using this you need add this key value pair on this infoplist of herems pods

<key>MinimumOSVersion</key>
<string>14.0</string>
Screenshot 2024-08-02 at 12 49 28 PM

@Cyberbolt
Copy link

Finally after 18 to 20 hrs Finally I have been able to solve using this you need add this key value pair on this infoplist of herems pods最后,在 18 到 20 小时后,我终于能够使用这个解决问题了,您需要在herems pods的infoplist上添加这个键值对

<key>MinimumOSVersion</key>
<string>14.0</string>
Screenshot 2024-08-02 at 12 49 28 PM

But this is dynamically linked in by RN. It’s not good to manually change the info.plist here, right?

@huextrat
Copy link

huextrat commented Aug 6, 2024

Version 0.74.5 fixes this bug

@JackJBlundell
Copy link

0.74.5

Nope, it does not!

@JackJBlundell
Copy link

Even with 0.74.5 this is still happening for me, not sure how to fix!

@okwasniewski
Copy link
Contributor

Even with 0.74.5 this is still happening for me, not sure how to fix!

Could you let me know if you removed the previously cached version of Hermes? After updating please run:

git clean -xdf ios

To clean unchecked files. Running pod install again will download a new Hermes binary.

@JackJBlundell
Copy link

This unfortunately has not changed anything, I still get this when trying to archive and distribute:

Screenshot 2024-08-06 at 12 34 26

@lorenc-tomasz
Copy link

@JackJBlundell Check Podfile.lock if it has new hermes. Sometime pod install doesn't update that one pod. No idea why, but it happens.

@okwasniewski Just check 0.74.5 locally and on CI. Works as expected to me :) Thank you :)

@igorlamos
Copy link

Version 0.74.5 fixes this bug

Works like a charm. Thank you!

@JackJBlundell
Copy link

@JackJBlundell Check Podfile.lock if it has new hermes. Sometime pod install doesn't update that one pod. No idea why, but it happens.

@okwasniewski Just check 0.74.5 locally and on CI. Works as expected to me :) Thank you :)

Thanks! This worked for me - It's rare to get help so quickly - I sincerely appreciate it.

@alexander0205
Copy link

alexander0205 commented Aug 6, 2024

Solution for me.

  1. Update React native to 0.74.5
  2. Remove your Podfile.lock
  3. Install again

@efstathiosntonas
Copy link
Author

efstathiosntonas commented Aug 6, 2024

hey guys, a simple pod update will do the trick.

If a Pod get's updated and you can't or don't want to update then pin it on Podfile, eg:

pod 'SDWebImage', '=' + "5.19.2"

or use pod deintegrate followed by pod install

@afXIII
Copy link

afXIII commented Aug 8, 2024

Check Podfile.lock if it has new hermes. Sometime pod install doesn't update that one pod. No idea why, but it happens.

@lorenc-tomasz this fixed it for me. Interesting that 'pod install' updates all pods with the exception of just one pod in this case: hermes-engine.

very curious why this happens

@JacobDel
Copy link

JacobDel commented Aug 16, 2024

Finally after 18 to 20 hrs Finally I have been able to solve using this you need add this key value pair on this infoplist of herems pods

<key>MinimumOSVersion</key>
<string>14.0</string>
Screenshot 2024-08-02 at 12 49 28 PM

0.74.5 introduced a different bug that is only fixed in 0.75.x (d53cc2b).
Assuming 0.75.1 is unstable (and not compatible yet with some packages), this might still be the best hardcoded solution.
However, the MR fix (10e9669) suggests version 13.4 rather than 14

@cipolleschi
Copy link
Contributor

@JacobDel I'm sorry you encounter this problem. 0.74.5 is working correctly. We checked that all the plots inside the frameworks contain the right key-values.

Have you tried to run bundle exec pod deintegrate && bundle exec pod install to force Cocoapods to redownload the artifacts?
I think that it was using a malformed cached version of the tarball

@JacobDel
Copy link

@JacobDel I'm sorry you encounter this problem. 0.74.5 is working correctly. We checked that all the plots inside the frameworks contain the right key-values.

Have you tried to run bundle exec pod deintegrate && bundle exec pod install to force Cocoapods to redownload the artifacts? I think that it was using a malformed cached version of the tarball

Apologies for the confusion, I just wanted to give a heads up to others who were thinking of upgrading to 0.74.5 or higher.
0.74.5 indeed resolves the issue described in this thread.

@MateuszBukowski93
Copy link

downgrade to 0.74.3 fixed issue

@cipolleschi
Copy link
Contributor

@MateuszBukowski93 0.74.5 fixes it, please do not downgrade but rather upgrade to the version with the fix.
if you are still encountering the issue, run pod deintegrate to cleanup the pods and reinstall the pods.

@marcos-cunha-gringo
Copy link

marcos-cunha-gringo commented Sep 16, 2024

Finally after 18 to 20 hrs Finally I have been able to solve using this you need add this key value pair on this infoplist of herems pods

<key>MinimumOSVersion</key>
<string>14.0</string>
Screenshot 2024-08-02 at 12 49 28 PM

This solution worked for me!
P.S: We are using RN 0.74.4.

@DZamataev
Copy link

DZamataev commented Oct 11, 2024

My approach after still having this issue on 0.74.5 was to add the lines in a podfile post install script.

  post_install do |installer|
    # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
    react_native_post_install(
      installer,
      config[:reactNativePath],
      :mac_catalyst_enabled => false,
      # :ccache_enabled => true
    )
    # fix rn 0.74 issue https://github.com/facebook/react-native/issues/45823
    hermes_engine_path = File.join('Pods', 'hermes-engine', 'destroot', 'Library', 'Frameworks', 'universal', 'hermes.xcframework', 'ios-arm64')
    puts "[Fix rn 0.74 issue] Navigating to directory: #{hermes_engine_path}"

    # Find all Info.plist files in any subfolders
    Dir.glob(File.join(hermes_engine_path, '**', 'Info.plist')).each do |plist_path|
      puts "[Fix rn 0.74 issue] Processing Info.plist file: #{plist_path}"
      
      # Read the plist file
      plist_content = File.read(plist_path)
      puts "[Fix rn 0.74 issue] Read content from Info.plist file: #{plist_path}"
      
      # Check if the lines are already present
      if plist_content.include?('<key>MinimumOSVersion</key>') && plist_content.include?('<string>14.0</string>')
        puts "[Fix rn 0.74 issue] Lines already present in Info.plist file: #{plist_path}"
      else
        puts "[Fix rn 0.74 issue] Lines not present in Info.plist file: #{plist_path}"
        # Append the lines to the plist content
        updated_plist_content = plist_content.sub('</dict>', <<-PLIST
    <key>MinimumOSVersion</key>
    <string>14.0</string>
    </dict>
    PLIST
        )
        puts "[Fix rn 0.74 issue] Updated content for Info.plist file: #{plist_path}"
        # Write the updated content back to the plist file
        File.write(plist_path, updated_plist_content)
        puts "[Fix rn 0.74 issue] Wrote updated content to Info.plist file: #{plist_path}"
      end
    end
  end

@cipolleschi
Copy link
Contributor

this is fixed. If you still have the issue, you have a cached version of hermes.
Please run bundle exec pod deintegrate and then reinstall pods with bundle exec pod install

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📦Bundler Needs: Attention Issues where the author has responded to feedback. Needs: Repro This issue could be improved with a clear list of steps to reproduce the issue.
Projects
None yet
Development

No branches or pull requests