Hello, all.
I recently have problems related play-games-plugin in xCode.
It used to work in last week but it suddenly causes following problems and fails to complile.
Here are my project stauts.
xCode version 8
Unity version 5.3.4p5
Google play game unity for Unity version 0.9.31
Cocoapods applied for xCode project with following settings.
platform :ios, '7.0'
target 'Unity-iPhone' do
pod 'GooglePlayGames', '~> 5.0'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
1st, if I try to build, xCode complains with following message
...../XXX_iOS/Pods/GTMOAuth2/Source/Touch/GTMOAuth2ViewControllerTouch.m:331:41: Use of undeclared identifier 'GTMOAuth2ErrorTokenUnavailable'; did you mean 'kGTMOAuth2ErrorTokenUnavailable'?
I choose to auto fix in xCode which changes GTMOAuth2ErrorTokenUnavailable to kGTMOAuth2ErrorTokenUnavailable in GooglePlusOneSource.....
2nd, after I finish the auto fix for 1st, then I got following error at the end of compilation.
Undefined symbols for architecture arm64:
"OBJC_CLASS$GSDK_GTMSessionFetcher", referenced from:
objc-class-ref in gpg(GPGClearcutLogger.o)
"_OBJC_CLASS$_GSDK_GTMSessionFetcherService", referenced from:
objc-class-ref in gpg(GIPNetworkImage.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
To fix this, I tried many other ways such as add GoogleOpenSource.framework, add Google sign in, and etc, but no lucks so far.
Any other ideas will be very helpful!!
Same here.
Also, I just updated my GooglePlayServices. Now when i do a Unity build for iOS. Unity builds a folder with an XCode project. It used to build an XCode workspace.
Am I missing something?
Hello
i have this problem too. But after updated GooglePlayServices to v0.9.35, error with "GTMOAuth2ErrorTokenUnavailable" be fixed.
But I got following error
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_GTMSessionFetcherService", referenced from:
objc-class-ref in GoogleSignIn(GIDSignIn.o)
"_OBJC_CLASS_$_GTMSessionFetcher", referenced from:
objc-class-ref in GoogleSignIn(GIDRuntimeConfigFetcher.o)
objc-class-ref in GoogleSignIn(GIDSignIn.o)
"_OBJC_CLASS_$_GSDK_GTMSessionFetcher", referenced from:
objc-class-ref in gpg(GPGClearcutLogger.o)
"_OBJC_CLASS_$_GSDK_GTMSessionFetcherService", referenced from:
objc-class-ref in gpg(GIPNetworkImage.o)
I'm download and install the sample project "CubicPilot", using step-by-step.
(When I got compilation error "undefined symbols" too)
xCode version 7.3.1
Build "ios" target = 7.0
Unity version 5.3.3p1
Google play game unity 0.9.35
same here
xcode 8
play services 0.9.35
ios target 8
pod 1.1.1
Using GTMOAuth2 (1.1.4)
Using GTMSessionFetcher (1.1.7)
Using GoogleAppUtilities (1.1.2)
Using GooglePlayGames (5.1.1)
Using GooglePlusOpenSource (1.7.1)
Using GoogleSignIn (4.0.1)
Using GoogleSymbolUtilities (1.1.2)
Using GoogleToolboxForMac (2.1.0)
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_GTMSessionFetcherService", referenced from:
objc-class-ref in GoogleSignIn(GIDSignIn.o)
"_OBJC_CLASS_$_GTMSessionFetcher", referenced from:
objc-class-ref in GoogleSignIn(GIDRuntimeConfigFetcher.o)
objc-class-ref in GoogleSignIn(GIDSignIn.o)
"_OBJC_CLASS_$_GSDK_GTMSessionFetcher", referenced from:
objc-class-ref in gpg(GPGClearcutLogger.o)
"_OBJC_CLASS_$_GSDK_GTMSessionFetcherService", referenced from:
objc-class-ref in gpg(GIPNetworkImage.o)
ld: symbol(s) not found for architecture arm64
any reply from google play service developers?
Our next release is waiting for it... :(
Finally I Solved this issue by changing the pod file to this
platform :ios, ‘8.0’
target 'Unity-iPhone' do
pod 'GooglePlayGames', ‘5.1’
pod 'Google'
end
target 'Unity-iPhone Tests' do
pod 'GooglePlayGames', ‘5.1 ’
pod 'Google'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
then install the pod file and its done no error
@asadmehmoodlogicon Does your Unity build an Xcode workspace? When i do a build, it's only building an Xcode project.
I tried same steps, but I still ended up with few errors :( I am a bit sad I cannot implement google play services in my iOS games. Could have been great. :(

@Ugobyte Yes for workspace you should install the pod then the workspace file will apear
@kukoss its the only solution working around over the internet for now
please check the pod file its the only issue
Hi @asadmehmoodlogicon , please, could you just check my screenshots if everything looks ok to you?
1 - I set my unity build like this

2 - Then I open cocoapods 1.0.0 and run the pod file above and install


3 - I open xcworkspace file, in iphone project set provisioning account

and hit cmd+B to build it
4 - I get the error above while linking
Please, do you think I am missing anything??
this solution does not works for me.
Showing All Messages
"_OBJC_CLASS_$_GTMSessionFetcherService", referenced from:
objc-class-ref in GoogleSignIn(GIDSignIn.o)
"_OBJC_CLASS_$_GTMSessionFetcher", referenced from:
objc-class-ref in GoogleSignIn(GIDRuntimeConfigFetcher.o)
objc-class-ref in GoogleSignIn(GIDSignIn.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
1 week to try build the project without success. My unique solution is remove play services from my projects. I cannot release new versions in production products and create new projects.
Ok
After update xcode to v8.1, and Unity to 5.4.0p1. Build "test-project" be success.
Now i try migrate main project to the new Unity version.
@MishaPh let us know if updating unity helps to build it with google play services
in my last breath, made it work.
my steps:
1 - complete remove cocoapods from system
gem list --local | grep cocoapods
and so
gem uninstall cocoapods ... one by one of listed
2 - install cocoapods again
sudo gem install cocoapods
3- remove all pods from project, folder and Podfile.lock
4 - use this Podfile
platform :ios, '8.0'
target 'Unity-iPhone' do
pod 'GooglePlayGames', '5.1'
end
5 - pod install
6 - remove google sigin from build phases library ( either this framework is not present in pods anymore, but it it still logging and working )
7 - in Capabiliites from project in xcode enable Associated Domains and Game Center
tested project with multiplayer realtime connection between android and ios.
xcode 8
unity 5.4.1f1
@leandro-zanardi Thanks, its works for me. I think step 6 is the key.
thank you :) removing the google sign in lib really helped!
@kukoss In xCode in Build Phases in Libraries find and remove GoogleSign.framework
thank you all. step number 6 is crucial. i did not change anything else except I only removed the google sign in lib in Build Phases
Hi guys,
after i removed google sign in framework from the linked libs, I compiled everything and tested it out. Sign in, scores, leaderboards, everything work. However, when I created IPA to be published in the app store, I received this error when trying to submit the app.

What I had to do was to go to the xcode project folder, search GoogleSignIn.bundle and delete the file through Finder. Then I cleaned the app again, compiled and everything worked + I was able to submit IPA to the app store.
good luck :)
Hi, @kukoss
While submitting I had the same error, then I removed GoogleSignIn.bundle from project. But in that case my XCode give error of its non availability.
Could you share your pod file?
Or Any suggestion for me?
Hi @gnchishti , I had to find it as a file somewhere in the project and delete it from the disk. Then I cleaned the solution and it worked.
Second time, I was building new version of my app, my solution for some reason did not work :) So I found all references to googlesignin bundle and commented them out and suddenly it worked. I do not know the exact file name because I don't have my Mac, but that was the key. Basically there were two references for this library in ONE file somewhere in bundles folder in Xcode
I just deleted info.plist in GoogleSignIn.bundle, it worked for me.
:) I just uploaded my build
That's it. Plist:):) congratulations:)
So I finally got it to work by removing the GoogleSignIn references. However know I am getting this:
It seems that I have to have the SignIn stuff or am I wrong?
I have the "disallowed_useragent" error too when my IOS game try to login in Google :-(
Please, anyone knows what's the solution for that??
@santiandrade same problem =(
Unfortunately, GPGS has been deprecated on iOS: https://android-developers.googleblog.com/2017/04/focusing-our-google-play-games-services.html
Most helpful comment
@kukoss In xCode in Build Phases in Libraries find and remove GoogleSign.framework