📅  最后修改于: 2023-12-03 15:03:25.668000             🧑  作者: Mango
If you're a macOS developer, you may have come across the "OS X 64-bit with Unsupported Runtime (93)" message while trying to run an application that uses an outdated version of a runtime environment, such as Java, Python, or Ruby. This message appears due to Apple's efforts to enforce good security practices and protect users from vulnerabilities that outdated runtimes may have.
As a developer, you have several options to deal with this issue, such as upgrading the runtime environment, migrating the code to a modern language or framework, or trying to bypass the security checks. In this article, we will explore these options and provide some guidance on how to proceed.
The most straightforward way to solve the "Unsupported Runtime (93)" issue is to upgrade the runtime environment to a supported version. For example, if your application uses Java 6 or older, you can migrate to Java 8 or later, which are fully supported in macOS. Similarly, if your code relies on an outdated version of Ruby or Python, you can upgrade to a more recent version.
To check which version of a runtime environment is installed on your macOS machine, you can use the which
command in the Terminal:
$ which ruby
/usr/bin/ruby
This command will show you the path of the currently installed Ruby interpreter. You can use the same command for Python or Java, replacing ruby
with python
or java
, respectively.
Once you know which version you have, you can search for a newer version online or use a package manager such as Homebrew (for MacPorts or Fink). Homebrew is a popular package manager that allows you to install and manage various software packages, including programming languages and frameworks.
For example, to install the latest version of Python 3 with Homebrew, you can run the following command:
$ brew install python
You can replace python
with ruby
or java
to install the respective runtime environment.
If upgrading the runtime environment is not feasible or desirable, you can consider migrating your code to a modern language or framework that is supported in macOS. This may require some effort and may not be possible in all cases, but it can be a good long-term solution that will make your code more maintainable and future-proof.
For example, if your application is written in Java 6 and relies on the Swing UI framework, you can consider migrating to JavaFX, which is a more modern and robust UI framework that is included with Java 8 and later. JavaFX offers better performance, more advanced features, and a more flexible architecture than Swing.
Similarly, if your code uses an outdated version of Ruby on Rails, you can consider migrating to a newer version that is supported in macOS and offers better performance and security.
If upgrading the runtime environment or migrating to a new language or framework is not an option, you can try to bypass the security checks that cause the "Unsupported Runtime (93)" error. However, this is not recommended, as it may expose your machine to security vulnerabilities and compromise the integrity of your code.
To bypass the security checks, you can use the codesign
command to sign your application with a self-signed certificate. This will convince macOS that your application is safe to run, even if it uses an outdated runtime environment. However, this workaround requires some technical knowledge and can be risky if not done properly.
You can find more information on how to sign your application with codesign
in the Apple Developer documentation:
Create and Use Signing Certificates
The "OS X 64-bit with Unsupported Runtime (93)" error can be a frustrating issue for macOS developers whose code relies on outdated runtime environments. However, there are several options available to solve this issue, such as upgrading the runtime environment, migrating to a modern language or framework, or bypassing the security checks. Each option has its pros and cons, and the best solution depends on your specific needs and constraints. As always, make sure to follow good security practices and keep your code up to date to avoid future issues.