demand

Since Xcode8 no longer supports third-party plugins, this is bad news for most developers! I am no exception, in order to find a solution, I went out to look up a lot of information, generally speaking, there are two solutions, one is to re-sign Xcode8, the other is to use Xcode7.3.1 to run iOS10 SDK. So far, I’m using plan two.

Scheme 1: re-sign Xcode8

This program is reproduced to Vong

  1. Compile MakeXcodeGr8Again and export its product (more on MakeXcodeGr8Again below).
  2. Exit Xcode8, run MakeXcodeGr8Again which you just exported, drag Xcode8 into it, and wait for some time (3-10 minutes).
  3. When the Daisy is finished, an XcodeGr8 application will be generated in the application folder, Run the command sudo xcode – select – s/Applications/XcodeGr8. The app/Contents/Developer will point to just generate XcodeGr8 xcode development path.
  4. Now that the Xcode8 signature has been removed, you can continue to fix the broken plug-in code above. However, the script above needs to be slightly modified by changing xcode. app to Xcodegr8.app. The code is as follows:
find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add `defaults read /Applications/XcodeGr8.app/Contents/Info.plist DVTPlugInCompatibilityUUID`
Copy the code

Let’s take a look at MakeXcodeGr8Again mentioned in step 1, and its ReadMe has a corresponding introduction. Here’s an excerpt:

To avoid a recurrence of events like Xcode Ghost 👻, Xcode8 disables the plugin mechanism and opens up another form, the Source Editor Extensions, which is too limited. MakeXcodeGr8Again simply removes its signature, allowing Xcode8 to continue using the plugin as well. Since the signature has been removed, its security is back in the Xcode7 era, which means it is still vulnerable to attacks like Xcode Ghost. Therefore, it is not recommended to submit an app to the Appstore with XcodeGr8. Use at your own risk.

Possible problems

  1. After XcodeGr8 is generated, it cannot be opened. Solution: Restart.
  2. If I had used this method for other versions of Xcode-Beat and Xcode8 GM again, the APP would have kept flashing back. Solution: Uninstall the previously generated XcodeGr8 and try again. Remember to develop after unloading path back to the original path, namely the sudo xcode – select – s/Applications/xcode. App/Contents/Developer. If that doesn’t work, uninstall all versions of Xcode, then install the GM version and repeat the steps above.
  3. If you want to uninstall XcodeGr8, remember to put the redevelopment path back to its initial state.

Finally, the important thing to say three times: don’t use XcodeGr8 package to upload Appstore, better use server package, make sure server Xcode is downloaded from Appstore!! Do not use XcodeGr8 package to upload Appstore, better use server package, make sure server Xcode is downloaded by Appstore!! Do not use XcodeGr8 package to upload Appstore, better use server package, make sure server Xcode is downloaded by Appstore!!

Solution 2: use the iOS10 SDK in Xcode7.3.1

This solution comes from how-use-xcode-7-with-ios-10

Copy the iOS10 SDK for Xcode8 to Xcode7 and then create a soft link.

You need use DeveloperDiskImage from Xcode 8. For this extract Xcode 8 app and copy DeveloperDiskImage for iOS 10 to your Xcode folder.

Suppose you extract Xcode to /Applications/Xcode8.app

Cp - r/Applications/Xcode8. App/Contents/Developer/Platforms/iPhoneOS platform/DeviceSupport / 10.0 \ \ (14 a345 \) / Applications/Xcode7.3.1 app/Contents/Developer/Platforms/iPhoneOS platform/DeviceSupportCopy the code

After copy DeveloperDiskImage you should start Xcode and connect iOS device to your mac.

Edit: With a standard Xcode install one can create a soft link:

sudo ln -s\ / Applications/Xcode8 app/Contents/Developer/Platforms/iPhoneOS platform/DeviceSupport / 10.0 \ \ 14 a345 \ \ / Applications/Xcode7.3.1 app/Contents/Developer/Platforms/iPhoneOS platform/DeviceSupport / 10.0Copy the code

Thank you again for taking the time to read this article!

Weibo: @danny_ Lu Changhui blog: SuperDanny