Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cant link xCode project - Undefined symbols for architecture arm64: "_UnpauseUnityPlayer" #968

Closed
MildaGenius opened this issue Feb 11, 2016 · 6 comments

Comments

@MildaGenius
Copy link

Hello,
Iam trying to build iOS test example with GPG without CocoaPods in Unity 5.3.0f4 and plugin 0.9.30.

After exporting xCode project:
1.Added frameworks

  • AddressBook.framework
  • AssetsLibrary.framework
  • CoreData.framework
  • CoreTelephony.framework
  • CoreText.framework
  • Security.framework
  • libc++.dylib
  • libz.dylib
  • StoreKit.framework

2.Added Google frameworks

3.Added -objC linker flag

4.Changed header path to
`#import <GoogleSignIn/GIDSignIn.h>

import <GoogleSignIn/GIDGoogleUser.h>

import <GoogleSignIn/GIDAuthentication.h>

import <GoogleSignIn/GIDProfileData.h>

`

5.Removed GPGSAppController.mm from Build phase -> Compile Sources to fix path to
`#import <gpg/ios_support.h>

import <gpg/GPGEnums.h>

`

After this I am able to compile project, but while linking I got this errors.

Undefined symbols for architecture arm64: "_UnpauseUnityPlayer", referenced from: _NativeClient_HandleAuthTransition_m6_1144 in Bulk_Assembly-CSharp_2.o _NativeClient_UnpauseUnityPlayer_m6_1145 in Bulk_Assembly-CSharp_2.o (maybe you meant: _NativeClient_UnpauseUnityPlayer_m6_1145)
And the same error for other symbols (_TurnBasedMultiplayerManager_PlayerSelectUIResponse_GetMinimumAutomatchingPlayers, _TurnBasedMultiplayerManager_PlayerSelectUIResponse_GetPlayerIds_GetElement, _TurnBasedMultiplayerManager_PlayerSelectUIResponse_GetPlayerIds_Length ...)

I try to reimport plugin package into Unity project, but the result is the same.

Can somebody help me with the linker error?
Where should be library with mentioned symbols?

@claywilkinson
Copy link

_UnpauseUnityPlayer is part of the GPGS plugin. The plugin source code gets added to the Xcode project.

_TurnBasedMultiplayerManager_PlayerSelectUIResponse_GetMinimumAutomatchingPlayers is part of gpg

Just out of curiosity, why not use Cocoapods?

@MildaGenius
Copy link
Author

I found the problem. Its from step 5. Removed GPGSAppController.mm and not inserted back.

So I replaced downloaded gpg.framework with framework downloaded from Cocoapods which has header files in different structure, so now ios_support.h is explorable.

Linker errors changed to:
(null): "_OBJC_CLASS_$_GTLCollectionObject", referenced from: (null): "_OBJC_CLASS_$_GTLObject", referenced from: (null): "_OBJC_CLASS_$_OpenInChromeController", referenced from: (null): "_OBJC_METACLASS_$_GTLServiceTicket", referenced from:

Reasons for dont use Cocoapods:
1.additional system for Unity postprocess
2.no actually used library version under control
3.each Mac user in team must install and use Cocoapods
4.request to rework remote build process for use workspace

@claywilkinson
Copy link

Google Open source is part of Signin, but I think there are a couple symbols that are not? Can you try linking in that framework in as well?
https://developers.google.com/+/mobile/ios/sdk/google-plus-ios-sdk-1.7.1.zip

Thanks for the explanation of Cocoapods!

@mrThinBone
Copy link

Hi, did you fix it?

@MildaGenius
Copy link
Author

No,
I didnt fix it.

I started use Cocoapods :(.

@claywilkinson
Copy link

OK to close this issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants