Plugins don't work on xcode 6 - plugins

Yeah, we have a new xcode version - xcode 6 and all old plugins don't work.
I know there is a new DVTPlugInCompatibilityUUIDs for each Xcode version and this problem will be fixed by plugin authors.
But DVTPlugInCompatibilityUUIDs is just a text, how can we find it? How can we fix without waiting for someone
Update
xcode 6.3.2: DVTPlugInCompatibilityUUIDs = E969541F-E6F9-4D25-8158-72DC3545A6C6
XCode 6.4 (6E35b): DVTPlugInCompatibilityUUIDs = 7FDF5C7A-131F-4ABB-9EDC-8C5F8F0B8A90
XCode 7.0.b2 (7A121I): DVTPlugInCompatibilityUUIDs = AABB7188-E14E-4433-AD3B-5CD791EAD9A3

Make sure your hidden folders are shown on your MAC ,
Hold Option Key and click on Go option in finder menu.
Go to Following Location -
library/Application Support/Developer/Shared/Xcode/Plug-ins
Right click on the plug in and select show package contents
Open the info.plist file and find the DVTPlugInCompatibilityUUIDs and expand that section.
Click the + button and paste the C4A681B0-4A26-480E-93EC-1218098B9AA0 .
Save the file and restart Xcode.
No Need to repeat for all plugins that are already installed to Xcode 6.

I have Xcode 6.1.1, here's what I did and it worked.
Right click on plugin file > Show Package Contents
Find and edit the Info.plist file.
In DVTPlugInCompatibilityUUIDs add the key C4A681B0-4A26-480E-93EC-1218098B9AA0 (thanks to amavi message)
Save your Info.plist file.
Then go to /Applications/Xcode.app/Contents/PlugIns folder, and copy your plugin file there (the administrator password will be required).
You can now launch Xcode and use your plugins ;-)

Run below command in Terminal. It will auto add Xcode's compatible UUID to all plugins:
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.plist DVTPlugInCompatibilityUUID`

From https://gist.github.com/neonichu/9487584 use the following to get the DVTPlugInCompatibilityUUID of your Xcode version
/usr/libexec/PlistBuddy -c 'Print DVTPlugInCompatibilityUUID' "$(xcode-select -p)/../Info.plist"
For Xcode 6.2 add A16FF353-8441-459E-A50C-B071F53F51B7 to DVTPlugInCompatibilityUUIDs

xCode 6.3.2 was E969541F-E6F9-4D25-8158-72DC3545A6C6
I just check the plugins from /Applications/Xcode.app/Contents/PlugIns (Any plugin and use what they use for DVTPlugInCompatibilityUUID) and it works.
Adding more info:
The Path is to xCode app itself and within it go to Contents/PlugIns folder and you will see a bunch of plugins for xCode. Open any plugin package and go to Contents of it and open Info.plist, which will have the property DVTPlugInCompatibilityUUIDs. I did compare a couple of them and they seem to have the same so i copied that and used it which worked just fine.

XCode 6.4 (6E35b): DVTPlugInCompatibilityUUIDs = 7FDF5C7A-131F-4ABB-9EDC-8C5F8F0B8A90
XCode 7.0.b2 (7A121I): DVTPlugInCompatibilityUUIDs = AABB7188-E14E-4433-AD3B-5CD791EAD9A3

Related

How to open flutter plugins at Xcode?

I want make some changes in plugin. For android part everything is clear. But how can I open iOs part of plugin? There are no Xcode project just several .h and .m files.
How to open iOs plugin at Xcode?
https://github.com/flutter/plugins/tree/master/packages/video_player/video_player/ios
First, be sure to run the example app at least once.
$ cd example
$ flutter run
Then open the project in Xcode. The Xcode project is in example/ios. The swift (or obj-c) code that implements the iOS end of the method channel is found in (replace the italic strings with the actual plugin name):
Pods/Development
Pods/plugin_name/../../example/ios/.symlinks/plugins/plugin_name/ios/Classes
which you can find by opening the tree in the left pane.
go to root of package then.
cd example
flutter build ios --no-codesign
Launch Xcode.
Select File > Open, and select the hello/example/ios/Runner.xcworkspace file.
The iOS platform code for your plugin is located in Pods/Development Pods/hello/../../example/ios/.symlinks/plugins/hello/ios/Classes in the Project Navigator.
The quickest way to open Xcode is xed ios when you are in the root project directory.
The plugins are put in $project_dir/ios/Pods
The plugins are actually installed by running pod install. flutter run will call pod install for you while also building the app. If you want to save time, just run cd ios; pod install and don't build your app.

The plugin didn't work on xcode 5.1

I've updated xcode to version 5.1.
And all my plugins didn't work.
I didn't see any error log when I install them again.
How can I detect result of installing processing?
I'm using
Alcatraz.xcplugin
CocoaPods.xcplugin
KSImageNamed.xcplugin
XAlign.xcplugin
I think there's some problem with xcode 5.1 because all my plugins still work on xcode 5.0.1
Based on what Tuan Do said (THANK YOU!):
navigate to your plugins folder (library/Application Support/Developer/Shared/Xcode/Plug-ins)
Right click on the plug in and select show package contents
Open the info.plist file and find the DVTPlugInCompatibilityUUIDs and expand that section.
Click the + button and paste the UUID from above.
Save the file and restart Xcode.
Your plugins will appear again.
Repeat for any plug ins.
Xcode 6 UUID
C4A681B0-4A26-480E-93EC-1218098B9AA0
Xcode 6.2 UUID
A16FF353-8441-459E-A50C-B071F53F51B7
Xcode 6.3 UUID
9F75337B-21B4-4ADC-B558-F9CADF7073A7
Xcode 6.3.2 UUID
E969541F-E6F9-4D25-8158-72DC3545A6C6
Xcode 7.3 UUID
ACA8656B-FEA8-4B6D-8E4A-93F4C95C362C
How to find the UUID?
Open Terminal and paste the following:
defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
I edited Info.plist file like this:
Add A2E4D43F-41F4-4FB9-BB94-7177011C9AED into key DVTPlugInCompatibilityUUIDs
It works for CocoaPods, Dash plugin. I'm trying with others.
Hope it works for you!
Source:
https://github.com/omz/Dash-Plugin-for-Xcode/commit/989b3aad46f5a30efacd7c23432ce7343d84cc58
You should add current UUID of XCode into plugin's DVTPlugInCompatibilityUUIDs to make plugin work, use this command:
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.plist DVTPlugInCompatibilityUUID`
find every plugin's Info.plist
default read current UUID of XCode
default write current UUID of XCode into plugin's DVTPlugInCompatibilityUUIDs
I created a simple shell script that adds supplied UUID to all installed plugins:
#!/bin/bash
cd "${HOME}/Library/Application Support/Developer/Shared/Xcode/Plug-ins"
for plugin in *.xcplugin; do
/usr/libexec/PlistBuddy -c "Add :DVTPlugInCompatibilityUUIDs: string $1" "${plugin}/Contents/Info.plist"
done
I've written an editor extension to solve this problem. Now you can fix this error by a simple click.
Download link: Dropbox
When that happens, quit XCode, open the Terminal and type:
tail -f /var/log/system.log
then open XCode again. If there is a compatibility problem with any plugin, you'll see a log like this one:
[MT] PluginLoading: Required plug-in compatibility UUID C4A681B0-4A26-480E-93EC-1218098B9AA0 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/Lin.xcplugin' not present in DVTPlugInCompatibilityUUIDs
So, what you have to do to fix compatibility problems is just add the logged UUIDs to broken plugins' Info.plist files, grouped at key DVTPlugInCompatibilityUUIDs (in the example above, C4A681B0-4A26-480E-93EC-1218098B9AA0)
You'll probably be doing this at every new XCode version since Apple does not support plugins officially.

Framework not found GoogleMaps sdk in iOS

I want to use google map to existing(not a new one) iPhone project.Now i am using Google map ios sdk and i successfully added google map framework to my project.But i got error like this
ld: framework not found GoogleMaps
clang: error: linker command failed with exit code 1 (use -v to see invocation)
How to solve this issue.I am using xcode4.5 and google map iOS sdk version is 1.5. When i am creating new project with google map iOS sdk then no error getting for me.Error only for existing iOS Project.Please help me.
I solved my issue
You need to do this
Click on your project (targets)
Click on Build Settings
Under Framework search paths (set your framework path)
Following information for getting framework search paths
Right click on your framework folder (for ex: GoogleMaps.framework)
select Get info
copy the path from General->where and paste this path in your framework search path (path should contain in single line)
Good luck
I encountered a scenario in which I had to import a project that was using Google Maps and noticed the same problem - module: "Google Maps" not found.
To solve this problem it was necessary to delete Podfile.lock and Podfile folder and re-install the pods again. Good luck !
You can also :
- remove GoogleMaps from Podfile
- pod install
- add GoogleMaps to your Podfile again
- pod install
This solution works for me, you can also check the search paths a well.
Clean your project. The shortcut is command + shift + k. This will clear information that xcode has stored that might imply that the sdk isn't included.
Also press the project icon at the top of the hierarchy of files, press the target that is your project, press build phases, open link with binary libraries, and make sure that the google maps sdk is in there. If it is not, press + and add it in.
Follow the steps :
Download GoogleMaps-iOS-1.1.0.zip from their site
Unzip the file. You now have a GoogleMaps-iOS-1.1.0 folder
In that folder you have a GoogleMaps.framework folder.
Copy or move the GoogleMaps.framework folder to inside your project folder (in Finder).
Drag the GoogleMaps.framework folder onto your Frameworks group in Xcode.
In the options sheet, uncheck "Copy items into destination group's folder". Make sure your target is checked in "Add to targets". Click OK.
(Note that you can also do this the other way, by not copying it into your project folder and checking "Copy items into destination group's folder". Xcode will copy the folder itself.)
Import using #import "GoogleMaps/GoogleMaps.h". The angle bracket usually work too, but in this case it should use quotes.
From : <GoogleMaps/GoogleMaps.h> file not found Google Maps SDK for iOS
my problem was fixed by adding in:
build settings
Framework Search Paths
clickable and add the following lines:
"${PODS_ROOT}/GoogleMaps/Base/Frameworks"
"${PODS_ROOT}/GoogleMaps/Maps/Frameworks"
If you use Pods
Left menu > Pods > Pods > choose Framework > right menu > copy path from "ios/....."
My: ios/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework
Then Project > Build Setting > Framework Search Path > Click on
$(PROJECT_DIR)/ios/Pods/GoogleMaps/Maps/Frameworks/GoogleMapsCore.framework
Sometimes it happens when you are migrating the code from one system to another so your Framework search paths look empty at this moment, so one simple solution I try is to reinstall the podfile and it works for me.
I've been struggling with this issue for hours; I'm using CocoaPods, Swift and Xcode 6.1.1. I followed all the steps for including GoogleMaps in my project carefully, tried many different things like removing symbolic links in the downloaded package or manually linking the binaries in build phases or trying #include "GoogleMaps.h", #include "GoogleMaps/GoogleMaps.h" and "#include <GoogleMaps/GoogleMaps.h> in my bridge file, none of that worked... Finally used CocoaPods instead of including the framework myself and it worked! Hope it helps someone out there:
In the Podfile:
pod 'Google-Maps-iOS-SDK', '~> 1.9.2'
And in your Bridge file:
#import "GoogleMaps.h"
Delete derived data and delete Podfile.lock file and then run pod install.
Maybe it'll be useful for anybody, next steps helped me:
1. Delete "Headers" and "GoogleMaps" folders manually (from the Finder).
2. Run 'pod install'
3. Re-build the project in Xcode.
In my case, I forgot that I need to open the workspace file with pods, not the project.

"Storyboard.storyboard" could not be opened

The document "Storyboard.storyboard" could not be opened. Could not
read archive.
Please use a newer version of Xcode. Consider changing the document's
Development Target to preserve compatibility.
Can't we run it on xcode 4.2 by making some changes in settings.
Open storyboard file as source code, then change the version at the beginning from 2.0 to 1.0. Open it this time as storyboard file and voila :)
got it from: http://www.xappsoftware.com/wordpress/2012/09/17/how-to-open-a-storyboard-created-with-xcode-4-3-or-4-4-with-xcode-4-2-workaround/
Select 'Storyboard.storyboard' in the project navigator. Go to the utilities area and open File Inspector. In the Document versioning section, change the 'Development' to Xcode 4.2

Why am I getting this "libxml/tree.h file not found" error?

I just installed Xcode version 4.3.1 and I get this error:
libxml / tree.h file not found
I have also installed Xcode 4.2, and with the same project I get the same error.
I have configured the header search paths with /usr/include/libxml2
I also tried $(SDKROOT) / usr/include/libxml2 and it didn't work.
I have also put Other Linker Flag with lxml2
Include the following in your header search path and you should be immune to any weirdness Apple does with their Xcode updates:
$(SDKROOT)/usr/include/libxml2
In your question, you have a space between the / and usr. Perhaps this is a typo, but the path is:
/usr/include/libxml2
Just confirm that is the path in the target build settings:
You can also verify that the path exists on your file system.
LibXML2 library solved
SOLUTION!
if you have xcode 4.3.x in /Application
need ONLY add: "/usr/include/libxml2" without quote in Application TARGET -> Header search path.
for this -> double click on the line -> on little window click plus sign an write /usr/include/libxml2
nb - need also add libxml2.dylib to the framework. I use 2.2.7.3
hope help you
I solved the problem by setting the Header Search Path to:
${SDK_DIR}/usr/include/libxml2
and Always Search User Paths to NO (which is strongly suggested anyway)
This just in the target.
It appears in 4.3.1, you need to include the Header Search Paths in the Targets as well as the project. I'm not sure if this was an issue with moving from 4.2 to 4.3.1, but I just update to Lion and ran into the same issue.
I ran into this again today, I would recommend you wrap the path in quotes:
"$(SDKROOT)/usr/include/libxml2"
I wasted half an hour on this due to having spaces in my path.
The correct path is (for 'Header Search Path'):
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/include/libxml2/**
I have the same problem.
I try set path( 'Header Search Path') to /usr/include/libxml2 ,build error!
I try set path( 'Header Search Path') to $(SDKROOT)/usr/include/libxml2 ,build error!
but I set path to
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/include/libxml2
build succeeded!
Xcode 6:
Do the following:
1.0)Select "mainApp" Target : Go to settings ->In "Header Search Path"
1.1)Add this:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2.
2.0)Select "TestApp" Target : Go to settings ->In "Header Search Path"
2.1)Add this:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2.
2 solutions:
header search path should be updated with SDK root as such: $(SDKROOT)/usr/include/libxml2
Install command line tools for XCode 5 from terminal by entering: xcode-select --install
XCode 4 should have the command line tools install option in preferences>downloads section.
I'd personally go with the second one.
I had to configure the other Linker Flags like this:
for Debug and Release do Add Build Settings (lower right corner) and Add Conditional Settings. Then, select Any iOS Simulator SDK and insert the Setting -lxml2
In my case, the main difficulty was that the app is composed of two projects, with the second one having several targets. It took me a while to realise that the error was occurring in one of those targets and not in the target of the main project. Then I just had to add the (in)famous $(SDKROOT)/usr/include/libxml2 in the Header Search Paths of that particular target.
I am using Xcode Version 5.0.1
I already had the header search path and frame work but was getting this error. Forcefully quitting xcode and then restarting it worked for me (I was using xcode 7.2)
In debug/release add the search path to Any Architecture | Any SDK
That is click the + button near debug and add ${SDKROOT}/usr/include/libxml2
Similarly do the above for release also