uni-app Undefined symbol: _OBJC_CLASS_$_GTMAppAuthFetcherAuthorization

发布于 1周前 作者 songsunli 来自 Uni-App

uni-app Undefined symbol: OBJC_CLASS$_GTMAppAuthFetcherAuthorization

Undefined symbol: OBJC_CLASS$_GTMAppAuthFetcherAuthorization
Undefined symbol: OBJC_CLASS$_GTMKeychain
Undefined symbol: OBJC_CLASS$_GTMOAuth2KeychainCompatibility
Undefined symbol: OBJC_METACLASS$_GTMAppAuthFetcherAuthorization

iOS 离线打包升级了最新的sdk 报错了


1 回复

在开发使用uni-app并结合iOS原生模块时,遇到“Undefined symbol: OBJC_CLASS$_GTMAppAuthFetcherAuthorization”这类错误通常意味着Xcode在链接阶段找不到某个类的定义。这种情况经常发生在引入第三方库时,库没有被正确链接或者库的某些文件没有被正确编译。

GTMAppAuthFetcherAuthorization是Google的GTMAppAuth库中的一个类,用于处理OAuth 2.0授权。如果你在uni-app项目中通过原生插件或自定义原生模块的方式集成了GTMAppAuth,并且遇到了这个链接错误,下面是一些可能的解决方案,主要通过Objective-C代码和Xcode项目配置来展示。

1. 确保GTMAppAuth库被正确添加到项目中

首先,确保GTMAppAuth库已经被正确添加到你的Xcode项目中。如果你是通过CocoaPods管理的依赖,检查Podfile文件是否包含了GTMAppAuth,并运行pod installpod update来安装或更新依赖。

# Podfile
pod 'GTMAppAuth'

2. 检查Xcode的Build Phases

在Xcode中,选择你的项目目标,进入“Build Phases”标签页,检查“Link Binary with Libraries”部分是否包含了GTMAppAuth相关的framework或库。如果你是手动添加的源代码,确保所有相关的.m文件都被包括在编译源文件中。

3. 导入头文件

在你的Objective-C文件中,确保你已经正确导入了GTMAppAuth的头文件。

#import <GTMAppAuth/GTMAppAuth.h>

4. 使用GTMAppAuthFetcherAuthorization

假设你已经正确设置了所有依赖,下面是一个简单的使用GTMAppAuthFetcherAuthorization的例子:

#import <GTMAppAuth/GTMAppAuth.h>

// 假设你已经有了正确的configuration和fetcherAuthorization
GTMAppAuthFetcherAuthorization *authorization = [[GTMAppAuthFetcherAuthorization alloc] initWithClientID:clientID
                                                                                               clientSecret:clientSecret
                                                                                                 fetcherService:fetcherService
                                                                                                        tokenURL:tokenURL
                                                                                                redirectURI:redirectURI
                                                                                                additionalParameters:nil];

// 使用authorization进行网络请求等操作

结论

如果以上步骤都正确无误,但问题依旧存在,可能需要检查Xcode的清理和重建项目(Clean and Build),或者检查是否有其他库或框架与GTMAppAuth存在冲突。在某些情况下,Xcode的缓存和索引问题也可能导致此类链接错误,尝试重启Xcode或清理Derived Data可能有助于解决问题。

回到顶部