Warning
The following guide need to disable SIP to work.
Please confirm the risk of disabling the SIP by yourself.
Another solution which does not require disabling SIP is currently under investigation.
Reboot into Recovery OS + Disable SIP
csrutil disable
# Remove IDEModelAccessOnDeviceAvailabilityOverride if you have watched my tweet before
defaults delete com.apple.dt.Xcode IDEModelAccessOnDeviceAvailabilityOverride
# Clear old eligibilityd cache
sudo rm -rf /private/var/db/eligibilityd
# Lauch Xcode to tirgger a new record
/Applications/Xcode-16.0.0-Beta.app/Contents/MacOS/Xcode
Use vim in terminal or VSCode to change eligibility.plist (Need root permission)
sudo vim /private/var/db/os_eligibility/eligibility.plist
# Go to OS_ELIGIBILITY_DOMAIN_XCODE_LLM field
# The normal value are 1, 2, 3, 2
# You need to change them to 1, 4, 3, 3
For the meaning of the numbers, you can check out https://x.com/KyleSwifter/status/1802405373133099475 or eligibilityd repo which I will open source later.
Lock the eligibility.plist
file to prevent eligibilityd
changing it again.
cd /private/var/db/eligibilityd && open .
- ⌘+I on
eligibility.plist
file - In
Sharing & Permissions
section, unlock and then set system's privilege to "Read only" too.
Reboot and open Xcode. That's all. Done.
Click the "Predictive code completion" on Xcode and then it will tirgger a popup to download the LLM model.
If this is not work for you, you can also give a look at unixzii's solution