Solve the problem of plug-ins not working after each upgrade of Xcode

Time:2019-10-5

Every update of Xcode has a headache, that is, plug-ins will fail. I have to say that many plug-ins are still very convenient and efficient. So how to solve this problem, as follows:

ABSTRACT: Opening Xcode after upgrading will prompt loadbundle or Skipbundle. Generally, we choose loadbudle. Xcode plug-in is still valid. If we choose Skipbundle, Xcode plug-in will fail. Some people want to install two versions of Xcode, and the Back-loaded one will also fail.

I. Causes of Xcode Plug-in Failure

It’s not that the original plug-in was deleted after upgrade or reinstallation. In fact, the plug-in is still in the directory ~/ Library/Application Support/Developer/Shared/Xcode/Plug-ins. (Note: When Xcode was installed for the first time, there was no such path, you need to download a plug-in package before compiling it to create this folder.) The reason why plug-ins fail is that each plug-in is only used by the Xcode of a specific UUID, and the UUID changes after updating, so it can not be used normally.

II. Solutions

1. View the UUID of the current Xcode

When defaults read/Applications/Xcode.app/Contents/Info DVTPlugIn Compatibility UUID is executed on the terminal, a series of UUID codes will be obtained. Maybe your Xcode is not installed by you, but directly copy the Xcode installed by others into your application, so this command can not get the UUID of Xcode.

Another way is to get the UUID of Xcode, find the Xcode in the application program, right-click on the display package content, find the Info.plist file, open it and find the corresponding value of DVT LugIn Compatibility UUID is the UUID we want.

   
Solve the problem of plug-ins not working after each upgrade of Xcode

2. Modify the plug-in’s UUID to the current Xcode’s UUID

Find the directory ~/ Library/Application Support/Developer/Shared/Xcode/Plug-ins, find the corresponding plug-in, right-click to display the package content, find the Info.plist file, open the project to find DVTPlug InCompatibility UUIDs, add an Item, the value of Value is the UUID of the previous Xcode, save.
    
3. After restarting Xcode, you will be prompted with “Load bundle” and “Skip Bundle”, where you must select “Load bundle” or the plug-in will not be available. If you accidentally click Skip Bundle, delete the line Item you just added to the plug-in plist file, restart Xcode, and then restart the steps you just took. So far, the problem has been perfectly solved. Then someone will ask: if many plug-ins fail, do not want to change one by one, there is no quick way, yes, please see the next step.

3. Command of DVTPlugIn Compatibility UUID for batch updating plug-ins (Suddeo is recommended)

The command defaults read/Applications/Xcode.app/Contents/Info DVTPlugIn Compatibility UUID cannot be used to get UUID at the terminal. This method is not applicable. The batch modification order is:

find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add `defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID`

  

Recommended Today

Oracle (PLSQL) Introduction 4

Previous chapter: introduction to Oracle III Learning video: https://www.bilibili.com/video/BV1tJ411r7EC?p=35 Oracle table connection: internal connection and external connection. The external connection is divided into left connection and right connection. In multi table query, if there is no conditional association between tables, all matching results will be found. For example, table a has 6 pieces of data, […]