Hello,
I am trying to integrate Everyplay to my iOS game, and I am having some integration issue. I emailed Everyplay regarding the issue, but I have yet to receive a reply, so I decided to try the Unity Answers.
The main problem seems to be summarized by the following error:
ArgumentException: An element with the same key already exists in the dictionary.
System.Collections.Generic.Dictionary`2[TKey,TValue].Add (.TKey key, .TValue value) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:404)
Everyplay.XCodeEditor.PBXParser.ParseDictionary () (at Assets/Editor/Everyplay/XCodeEditor/PBXParser.cs:184)
Everyplay.XCodeEditor.PBXParser.ParseValue () (at Assets/Editor/Everyplay/XCodeEditor/PBXParser.cs:144)
Everyplay.XCodeEditor.PBXParser.ParseDictionary () (at Assets/Editor/Everyplay/XCodeEditor/PBXParser.cs:182)
Everyplay.XCodeEditor.PBXParser.ParseValue () (at Assets/Editor/Everyplay/XCodeEditor/PBXParser.cs:144)
Everyplay.XCodeEditor.PBXParser.Decode (System.String data) (at Assets/Editor/Everyplay/XCodeEditor/PBXParser.cs:49)
Everyplay.XCodeEditor.XCProject…ctor (System.String filePath) (at Assets/Editor/Everyplay/XCodeEditor/XCProject.cs:81)
EveryplayPostprocessor.ProcessXCodeProject (System.String path) (at Assets/Editor/Everyplay/Scripts/EveryplayPostprocessor.cs:123)
EveryplayPostprocessor.PostProcessBuild_iOS (System.String path, System.String clientId) (at Assets/Editor/Everyplay/Scripts/EveryplayPostprocessor.cs:75)
EveryplayPostprocessor.OnPostProcessBuild (BuildTarget target, System.String path) (at Assets/Editor/Everyplay/Scripts/EveryplayPostprocessor.cs:24)
UnityEditor.HostView:OnGUI()
which results in the Everyplay folder to not appear on the XCode navigator, and, as a result, makes XCode throw the error “EveryplayGlesSupport.h file not found.”
Now, the former error is thrown from the following lines of code in PBXParser class:
case DICTIONARY_ASSIGN_TOKEN:
valueObject = ParseValue();
dictionary.Add( keyString, valueObject );
break;
Now, I know nothing about iOS development, so I’ve done what little experimentations that I could, which were to change the code to several variations of the following:
case DICTIONARY_ASSIGN_TOKEN:
valueObject = ParseValue();
if (!dictionary.ContainsKey (keyString))
{
dictionary.Add( keyString, valueObject );
}
else
{
dictionary[keyString] = valueObject;
Debug.Log ("#### DUPLICATE ####");
Debug.Log (keyString);
}
break;
Unfortunately, this results in XCode not being about to open the build folder with the following pop-up error message:
[My Project] cannot be opened because the project file cannot be parsed.
I am currently using Google Play Game Services for Unity (GitHub - playgameservices/play-games-plugin-for-unity: Google Play Games plugin for Unity), AdColony, and Everyplay - and am certain that this has something to do with the problem I am facing.
What are some things I can do to (a) zero-in on what the problem is, and/or (b) fix this issue?
Thanks!
EDIT:
So, on further investigation, I noticed that lines on porject.pbxproj seem… out of order(?) when I edit PBXParser class with the line above.
[31570-screen+shot+2014-08-26+at+11.34.35+am.png|31570]
Does this cause XCode to not be able to open the project?