在iOS上使用Google Play游戏服务出现错误。
在iOS上使用Google Play游戏服务出现错误。
我遇到了这个错误:
错误:GPGSAppController.mm GIDSignIn.h 文件未找到错误
我正在使用Unity的Google Play游戏服务插件进行排行榜和成就功能,一切在安卓上都正常工作,但当我构建到iOS并尝试在iOS设备上运行时,我一直遇到这个错误,并且多个小时了仍然找不到解决方法。
我尝试删除了与Google Play服务相关的所有内容(当然在创建备份之后),应用程序安装并正常工作,只是有点卡顿,但那是另一个问题。所以我确定问题来自于Google Play服务,但我不知道该如何解决。我再次强调我对Xcode和iOS开发都很新手,甚至对Mac也是如此。
在Unity中构建项目后,我还收到以下消息:
完成配置导出的Xcode项目
- 添加这些框架:
AddressBook.framework
AssetsLibrary.framework
CoreData.framework
CoreTelephony.framework
CoreText.framework
Security.framework
libc++.dylib
libz.dylib
- 从Google Plus和Google Play Games C++ SDK添加以下包和框架。可以从
https://developers.google.com/games/services下载。
GoogleOpenSource.framework
GoogleSignId.bundle
GoogleSignId.framework
gpg.bundle
gpg.framework
注意:确保这些包被复制到应用程序中。可以在Build Phases/Copy Bundle Resources下进行验证。
- 添加“-ObjC”链接器标志。为此,选择顶级项目
对象,选择“Unity-iPhone”构建目标,然后转到
Build Settings选项卡。搜索Other Linker Flags并将
“-ObjC”标志添加到列表中。
** 注意:要在模拟器中运行,请使用Unity 4.6.8或更高版本。
但是我不知道如何执行上述任何操作,因为我对iOS开发不熟悉。非常感谢任何帮助。
(Error with Google Play Game Service on iOS)的问题出现的原因是缺少一些必要的文件,解决方法是通过CocoaPods和podfile安装所需文件。
根据指南,需要添加以下文件:
- AddressBook.framework
- AssetsLibrary.framework
- CoreData.framework
- CoreTelephony.framework
- CoreText.framework
- Security.framework
- libc++.dylib
- libz.dylib
这些文件可以直接在链接框架时找到。如果找不到libc++.dylib
和libz.dylib
,可以重新生成Xcode项目以添加这两个文件。
此外,还需要添加以下文件:
- GoogleOpenSource.framework,可以在https://developers.google.com/+/mobile/ios/getting-started#step_1_creating_the_console_name_project找到。
- GoogleSignId.bundle和GoogleSignId.framework,可以在https://developers.google.com/identity/sign-in/ios/sdk/找到。
- gpg.bundle和gpg.framework,可以在https://developers.google.com/games/services/downloads/sdks找到。
另外,重要的一点是确保将这些bundle文件复制到应用程序中。将bundle文件复制到项目的根目录并不能解决问题。
解决方法是通过CocoaPods和podfile来安装所需文件。首先安装CocoaPods(sudo gem install cocoapods
),然后更新库(pod repo update
),安装依赖(pod install
),最后打开Unity-iPhone.xcworkspace。相比手动复制文件到各处,这种方法更简便。
注意:如果出现与GoogleOpenSource
相关的链接器错误,需要禁用bitecode
,并在Xcode设置中启用ENABLE_BITCODE
。
希望上述方法能够解决问题,祝您成功开发出精彩的游戏!