创建iOS框架时未定义符号OBJC_CLASS_$

2024-03-06

我正在尝试构建一个 iOS 框架,为此,我使用了一些依赖项,并且单独构建框架项目时没有出现错误,当我在演示应用程序中使用 CocoaPods 安装时,出现以下错误Undefined symbol: _OBJC_CLASS_$_DFPRequest.

这就是我在框架中的内容:

Podfile

platform :ios, '10.0'

use_frameworks!

target 'mylib' do  
  pod 'PrebidMobile'
  pod 'Google-Mobile-Ads-SDK'
  pod 'mopub-ios-sdk'
  pod 'GoogleAds-IMA-iOS-SDK'
end

MyLib.podspec

Pod::Spec.new do |s|

    ...

    s.platform      = :ios, "10.0"
    s.swift_version = '5.0'
    
    s.xcconfig = {
        :LIBRARY_SEARCH_PATHS => '$(inherited)',
        :OTHER_CFLAGS => '$(inherited)',
        :OTHER_LDFLAGS => '$(inherited)',
        :HEADER_SEARCH_PATHS => '$(inherited)',
        :FRAMEWORK_SEARCH_PATHS => '$(inherited)'
    }

    s.framework = [
      'CoreTelephony',
      'SystemConfiguration',
      'UIKit',
      'Foundation'
    ]
  
    s.subspec 'core' do |core|
      core.source_files = 'Source/**/*.{h,m,swift}'
    end

    s.dependency 'PrebidMobile'
    s.dependency 'Google-Mobile-Ads-SDK'
    s.dependency 'mopub-ios-sdk'
    s.dependency 'GoogleAds-IMA-iOS-SDK'

  end

横幅.swift

import UIKit
import PrebidMobile
import GoogleMobileAds
import MoPub

enum BannerFormat: Int {
    case html
    case vast
}

class BannerController: UIViewController, GADBannerViewDelegate, MPAdViewDelegate {

   @IBOutlet var appBannerView: UIView!

    @IBOutlet var adServerLabel: UILabel!

    var bannerFormat: BannerFormat = .html
    var adServerName: String = ""

    private var adUnit: AdUnit!
    
    private let amRequest = DFPRequest()
    private var amBanner: DFPBannerView!
    
    private var mpBanner: MPAdView!

    override func viewDidLoad() {
        super.viewDidLoad()
        adServerLabel.text = adServerName
    }

    override func viewDidDisappear(_ animated: Bool) {
        adUnit?.stopAutoRefresh()
    }

    func viewControllerForPresentingModalView() -> UIViewController! {
        return self
    }

}

现在在应用程序演示中,我有

Podfile

platform :ios, '10.0'
use_frameworks!
target 'appdemo (iOS)' do
  pod 'MyLib', :git => 'https://...mylib.git'
end

所以,只需运行pod install && pod update并构建应用程序演示我已经收到错误。

既然单独运行框架是有效的,那么我在这里做错了什么,安装框架不起作用?

LD /Users/user/Library/Developer/Xcode/DerivedData/appdemo-gmoqpiaozrywmeguhfldbwybeebb/Build/Products/Debug-iphonesimulator/mylib/mylib.framework/mylib 正常(在项目“Pods”的目标“mylib”中) cd /用户/用户/appdemo/Pods /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -target x86_64-apple-ios10.0-simulator -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk -L/Users/user/Library/Developer/Xcode/DerivedData/appdemo-gmoqpiaozrywmeguhfldbwybeebb/Build/Products/Debug-iphonesimulator/mylib -F/Users/user/Library/Developer/Xcode/DerivedData/appdemo-gmoqpiaozrywmeguhfldbwybeebb/Build/Products/Debug-iphonesimulator/mylib -F/Users/user/Library/Developer/Xcode/DerivedData/appdemo-gmoqpiaozrywmeguhfldbwybeebb/Build/Products/Debug-iphonesimulator/GoogleUtilities -F/Users/user/Library/Developer/Xcode/DerivedData/appdemo-gmoqpiaozrywmeguhfldbwybeebb/Build/Products/Debug-iphonesimulator/PrebidMobile -F/Users/user/Library/Developer/Xcode/DerivedData/appdemo-gmoqpiaozrywmeguhfldbwybeebb/Build/Products/Debug-iphonesimulator/PromisesObjC -F/Users/user/Library/Developer/Xcode/DerivedData/appdemo-gmoqpiaozrywmeguhfldbwybeebb/Build/Products/Debug-iphonesimulator/mopub-ios-sdk -F/Users/user/Library/Developer/Xcode/DerivedData/appdemo-gmoqpiaozrywmeguhfldbwybeebb/Build/Products/Debug-iphonesimulator/nanopb -F/Users/user/appdemo/Pods/Google-Mobile-Ads-SDK/Frameworks/GoogleMobileAdsFramework-Current -F/Users/user/appdemo/Pods/Google-Mobile-Ads-SDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.xcframework/ios-arm64_armv7 -F/Users/user/appdemo/Pods/Google-Mobile-Ads-SDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.xcframework/ios-arm64_i386_x86_64-simulator -F/Users/user/appdemo/Pods/GoogleAds-IMA-iOS-SDK -F/Users/user/appdemo/Pods/GoogleAppMeasurement/Frameworks -F/Users/user/appdemo/Pods/GoogleUserMessagingPlatform/Frameworks/Release -F/Users/user/appdemo/Pods/GoogleUserMessagingPlatform/Frameworks/Release/UserMessagingPlatform.xcframework/ios-arm64_armv7 -F/Users/user/appdemo/Pods/GoogleUserMessagingPlatform/Frameworks/Release/UserMessagingPlatform.xcframework/ios-arm64_i386_x86_64-simulator -filelist /Users/user/Library/Developer/Xcode/DerivedData/appdemo-gmoqpiaozrywmeguhfldbwybeebb/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/mylib.build/Objects-normal/x86_64/mylib.LinkFileList -install_name @rpath/mylib.framework/mylib -Xlinker -rpath -Xlinker /usr/lib/swift -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -dead_strip -Xlinker -object_path_lto -Xlinker /Users/user/Library/Developer/Xcode/DerivedData/appdemo-gmoqpiaozrywmeguhfldbwybeebb/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/mylib .build/Objects-normal/x86_64/mylib_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/ iPhone模拟器 -L/usr/lib/swift -Xlinker -add_ast_path -Xlinker /Users/user/Library/Developer/Xcode/DerivedData/appdemo-gmoqpiaozrywmeguhfldbwybeebb/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/mylib.build/Objects -正常/x86_64/mylib.swiftmodule -framework AVFoundation -framework AdSupport -framework AudioToolbox -framework CFNetwork -framework CoreFoundation -framework CoreGraphics -framework CoreMedia -framework CoreTelephony -framework CoreVideo -framework Foundation -framework GoogleInteractiveMediaAds -framework MediaPlayer -framework MessageUI -framework MobileCoreServices -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -framework UIKit -framework WebKit -weak_framework AdSupport -weak_framework JavaScriptCore -weak_framework SafariServices -weak_framework StoreKit -weak_framework WebKit -framework CoreTelephony -framework Foundation -framework MoPub -framework PrebidMobile -framework SystemConfiguration -framework UIKit-Xlinker-no_adhoc_codesign -compatibility_version 1 -current_version 1 -Xlinker -dependency_info -Xlinker /Users/user/Library/Developer/Xcode/DerivedData/appdemo-gmoqpiaozrywmeguhfldbwybeebb/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/mylib.build/Objects-normal /x86_64/mylib_dependency_info.dat -o /Users/user/Library/Developer/Xcode/DerivedData/appdemo-gmoqpiaozrywmeguhfldbwybeebb/Build/Products/Debug-iphonesimulator/mylib/mylib.framework/mylib

体系结构 x86_64 的未定义符号:
"OBJC_CLASS$_DFPRequest”,引用自: Banner.o ld 中的 objc-class-ref:未找到架构 x86_64 clang 的符号:错误:链接器命令失败并退出代码 1(使用-v查看调用)


由于单独运行框架是有效的

我不确定我是否理解这一点;你不能单独“运行”一个框架。如果你的意思是框架构建,那并不奇怪;缺少的符号来自不同的库,并且在您的框架最终链接到应用程序之前不必解决这个问题。

我在这里做错了什么,安装框架不起作用?

很难肯定地说,但我敢打赌这可能与您应用程序的 Podfile 有关:

pod 'MyLib', :git => 'https://...mylib.git'

podspec 为MyLib应该位于该存储库的根目录中,因此请检查 URL 是否指向您认为的位置,即MyLib.podspec位于该存储库的根目录中,并且 podspec 是正确的。

Run pod install进而pod update(在进行故障排除时,单独运行它们是一个好主意,这样您就可以确定哪一个产生了任何错误或其他输出)。打开应用程序的工作区并找到定义DFPRequest班级。如果找不到它,则需要更深入地研究 Pod 设置以找出问题所在。如果你do找到该文件,那么你的 pod 设置可能没问题;相反,请检查您的项目配置并确保该文件实际上包含在您尝试构建的目标中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建iOS框架时未定义符号OBJC_CLASS_$ 的相关文章

  • iOS 确定视频中的帧数

    如果我有一个 Swift 中的 MPMoviePlayerController MPMoviePlayerController mp MPMoviePlayerController contentURL url 有没有办法获取视频中的帧数u
  • Swift Siesta 访问响应原始数据

    我的 API 中有一个返回 PDF 文件内容的方法 如何在成功回调中获取响应的原始数据 所有午睡响应均以原始数据开始 以基础类型的形式Data 然后运行变压器管道 http bustoutsolutions github io siesta
  • 在 Swift 中的 For 循环中更改对象的属性

    我创建了一个名为 ShoppingList 的简单结构 struct ShoppingList var shoppingListId NSNumber var title String var groceryItems GroceryIte
  • Swift 中计算只读属性与函数

    在 Swift WWDC 简介会话中 只读属性description被证明 class Vehicle var numberOfWheels 0 var description String return numberOfWheels wh
  • 无法在 xcode 8 beta 6 上编译 AWS CustomIdentityProvider

    我在 iOS 应用程序中使用 Amazon Cognito 和 Facebook 登录 直到 beta 5 为止此代码从这个SO线程 https stackoverflow com questions 37597388 aws cognit
  • Interface Builder 更改文本颜色错误?

    这让我发疯了 如果我在界面生成器中选择一个 UITextField 并通过手动输入 R G B 值来更改文本颜色 它将更改整个框架和背景的颜色 但是 如果我使用滑块更改它 它只会按照我想要的方式更改文本颜色 让我认为这是一个错误 其他人也会
  • Swift 中通过可选绑定进行安全(边界检查)数组查找?

    如果我在 Swift 中有一个数组 并尝试访问超出范围的索引 则会出现一个不足为奇的运行时错误 var str Apple Banana Coconut str 0 Apple str 3 EXC BAD INSTRUCTION 但是 我会
  • Swift 单元测试 - 如何断言 CGColor 是它应该的样子?

    使用 Xcode V7 2 尝试进行单元测试 需要验证是否已设置正确的颜色 并收到以下消息 Cannot invoke XCTAssertEqual with an argument list of type CGColor CGColor
  • Swift - 保存在 TableView 中选择的复选标记

    我对 Swift 相当陌生 并且在 TableView 多重选择方面遇到问题 我有多个选择 可以用复选标记进行检查 类似于待办事项列表 当我检查项目时 我希望能够返回 ListView 并保存我的选择 我假设将其保持在已保存状态的代码将位于
  • 如何安全地重命名 iOS 分发配置文件?

    我几个小时前刚刚提交了我的第一个应用程序 现在处于 等待审核 状态 但我犯了一个错误 我已经命名了我的分配配置文件My Company Distribution Profile 我应该做的事情被命名为我的发行版配置文件My GAME Dis
  • TestFlight 安装的应用程序因 Swift 包管理器依赖项而崩溃

    我们已经迁移了一些 CocoaPod 依赖项 以便在 Xcode 11 中使用 Swift Package Manager 进行构建和链接 但是 每当我们将应用程序提交到 AppStore Connect 并使用 TestFlight 进行
  • 从 URL 解析 JSON 最终出现错误 - Swift 5

    我正在尝试用 swift 编写一个函数 从 URL JSON 获取数据 并将其分配给 swift 中的变量 这是函数 func getBikeData guard let url URL string https api citybik e
  • 在 Swift UI 中为文本添加动画

    怎么可能动画化Text or TextField来自 Swiftui 的意见 我所说的动画是指 当文本发生变化时 它会 计数 例如 给定一些标签 如何创建一个动画 当我将标签文本设置为 100 时 它会从 0 上升到 100 我知道这在 U
  • Xcode 4.3:IBOutlet 的重复连接

    我正在使用 Xcode 4 3 3 学习斯坦福 CS193p 课程 我认为下面的屏幕截图非常不言自明 但无论如何我都会用文字描述这个问题 我按住 Control 键将 UILabel 从 Storyboard 拖到相应的实现文件中 以使 I
  • SwiftUI - SwiftUI 中有等效的 popViewController 吗?

    我正在使用 SwiftUI 希望在点击按钮时能够返回到之前的视图 与我们使用的相同popViewController里面一个UINavigationController 到目前为止有提供的方法吗 我也尝试过使用NavigationDesti
  • 使用 flutter 构建 iOS 项目时出现的问题

    升级 Xcode 15 beta 5 后 无法构建项目 显示错误 Firebase 1 问题 DT TOOLCHAIN DIR 不能用于评估 LIBRARY SEARCH PATHS 请改用 TOOLCHAIN DIR FirebaseAn
  • 当 tableview 滚动时 UISegment 值发生变化

    我正在使用 UISegmentControl 在表格视图中显示客观类型问题 但是 如果我在任一单元格中选择一个段 那么如果我滚动 某些段值就会发生更改 我不知道如何解决这个问题 请指导我 细胞尺寸 160px 段色调颜色 蓝色 Coding
  • Swift 客户端和根 SSL 证书身份验证

    积分得到token api of QLIK server with ssl证书 但执行任务后我收到这样的错误 完成时出现错误 代码 999 Your hostname and endpoint let hostname YOUR HOST
  • 可以转换为 Swift 5

    我在 Xcode 10 2 中收到此警告 可以转换为 Swift 5 当我单击此错误时 它会打开此窗口 当我们点击Next会发生什么 swift 的当前版本是 swift5 仅在 Xcode 10 2 中受支持 而您在 Xcode 10 2
  • 如何更改标签栏图标颜色从默认蓝色?

    我有四个标签 我能够将选项卡图标颜色从默认的蓝色更改为红色 或可能任何颜色 并且效果非常好 问题是它仅适用于三个选项卡项目 最后一个选项卡默认为蓝色 下面是代码 我正在编码这个rootviewcontrollerAppDelegate m您

随机推荐

  • Three.js 使用 WebRTC 并应用 Shader

    我不知道如何将着色器应用于具有视频纹理的 Three js 对象 我一直在使用 webRTC 和 Three js 并使用标准材质成功将视频纹理映射到网格上 var material new THREE MeshBasicMaterial
  • 使用 SimpleAdapter 过滤 listView 数据

    我需要帮助才能使过滤发挥作用 ListView 显示正确 但是当我在搜索字段中输入字母时出现错误 java lang NullPointerException 并且应用程序关闭 这是我的活动中的代码片段 我认为我必须修复它 但不知道如何修复
  • Android 计费 v3 - 无签名

    我想要的是 检索所有购买的商品后 我需要在服务器上验证购买情况 我想使用从应用内付款收到的签名和签名数据来完成此操作 首先 我使用了应用内计费 v2 每次使用我的开发者帐户都会获得静态测试 sku 的正确签名和签名数据android tes
  • 如何在 Katalon Studio 中读取 Excel 工作表中的数据

    我可以知道如何从 Katalon Studio 中的 Excel 工作表中读取数据 以便从文件中读取 API 端点以检查其输出吗 如何在 java 中编写代码以使 URL 运行并验证来自 API 端点的响应 我已经创建了一个示例项目 htt
  • 是否可以使用 SSE 对此嵌套进行矢量化?

    我从来没有为 SSE 优化编写过汇编代码 如果这是一个菜鸟问题 我很抱歉 在this https felix abecassis me 2012 08 sse vectorizing conditional code 文章解释了如何向量化f
  • VBScript 函数中的变量范围

    我有一个关于 VBScript 中变量范围的问题 我知道有以下关键字 来自autoitscript com http www autoitscript com autoit3 docs keywords Dim htm Dim 本地范围 如
  • XRX 是唯一完全符合 W3C 的全栈 Web 应用程序“框架”吗?

    XRX 是指前端完全用 XML 方言编写 后端完全用 XML 方言编写的应用程序 并且数据在它们之间以 XML over REST 的形式传递 这是唯一完全由 W3C 维护的技术组成的 Web 应用程序堆栈 对吗 我认为回答这个问题的最佳方
  • UIScrollView 在 Swift 中不滚动

    我的 UIScrollView 不会向下滚动 我不知道为什么 我已经关注了有关此问题的 Apple 文档 IBOutlet weak var scroller UIScrollView override func viewDidLoad s
  • 限制样式表对父窗口小部件的影响?

    我正在设置 a 的背景颜色QWidget子类 当我使用样式表执行此操作时 其他组件的样式QWidget更改 例如 按钮的颜色及其外观发生变化 如何确保只有容器小部件的背景颜色发生变化 其余子组件保持不变 一种方法是指定 ID 选择器 确保设
  • 在 Android 应用程序中播放 Youtube 视频,无需使用 Android Youtube API

    有没有另一种方法可以在 Android 应用程序中播放 Youtube 视频而不使用 Android Youtube API 我们已经使用上述 API 实现了一个解决方案 但在某些设备上需要降级 Youtube 应用程序版本才能播放视频 我
  • 当我们运行任何rails命令时,可以采取什么措施来修复以下错误:“`require_relative':无法加载此类文件”

    任何 Rails 命令对我都不起作用 我通过rvm安装了几个版本的ruby 我尝试安装所有版本的 Rails 它们确实安装成功 但对于所有版本 每当我运行时 我都会遇到以下错误any我的项目目录中的rails命令 rails new blo
  • NSMutableSet 包含重复项

    我有一个名为的自定义类card我需要从随机大小的卡片数组中创建一组 10 张独特的卡片 另外 我需要首先包含所有列入白名单的卡 以确保它们始终包含在内 我的问题是白名单中的卡片 并且只有白名单 可能会在集合中重复 随机添加的卡片永远不会重复
  • 在哪里可以找到 4.0 的 TPL 数据流版本?

    我正在寻找 NET 4 0 版本的 TPL 数据流库 Nuget 包有一个 4 0 版本的库 但它似乎针对 NET 4 5 我发现了对 4 0 版本的各种引用 例如在这个论坛中 http social msdn microsoft com
  • 将鼠标事件从 iframe 传播到托管文档

    我有一个覆盖整个 HTML 文档的 iframe 我想将点击和悬停事件传播回托管文档 我有什么选择 几周前 我被要求针对一个项目对此进行研究 这是可以做到的 这里有一个实际的例子 http www esqsoft com javascrip
  • 授权导入范围后是否可以浏览电子表格?

    我在谷歌驱动器上创建了几个电子表格 所以我是所有这些的所有者 我有一个电子表格 主 它作为主文件将数据导出到我与顾问团队共享的其他电子表格 活动报告 中 导出的数据使他们能够使用列表作为数据验证等 这有助于主文件分析他们的活动 无需清理数据
  • java中的数字格式

    如何在java中获取这些格式 Input 1223893 180703 80967 1461 700 Output 1 223 893 180 703 80 967 1 461 700 我总是会一一转换数字 这只是为了获得更多示例 你可以阅
  • 将 Dash 与 Websocket 结合使用

    使用 Dash 和 Websockets 构建实时仪表板的最佳方式是什么 我想在每次收到消息时更新图表 但我发现的唯一的事情是每 x 秒调用一次回调 如下例所示 import dash import dash core components
  • 下载 Google 网络历史记录的脚本

    如何编写脚本来下载 Google 网络历史记录 我知道关于 https www google com history https www google com history 供稿 https www google com history
  • Façade 是否利用了开闭原则?

    The 维基百科页面 http en wikipedia org wiki Open closed principle 截至今天2013 02 27 开闭原则说它是通过继承实现的 开闭原理这个名称有两种用途 这两种方法都使用继承来解决明显的
  • 创建iOS框架时未定义符号OBJC_CLASS_$

    我正在尝试构建一个 iOS 框架 为此 我使用了一些依赖项 并且单独构建框架项目时没有出现错误 当我在演示应用程序中使用 CocoaPods 安装时 出现以下错误Undefined symbol OBJC CLASS DFPRequest