You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native iOS集成Lottie启动屏AppDelegate.m未声明标识符错误如何解决

错误原因

这两个报错的核心是Dynamic类未被正确定义和暴露给Objective-C:Dynamic是用于桥接Lottie Swift接口与OC代码的自定义类,Xcode找不到这个类的定义,自然会判定Dynamic和它的实例t都是未声明标识符。

解决步骤
  • 在Xcode项目中新建Swift文件,命名为Dynamic.swift,创建时按照Xcode提示同意生成桥接头文件
  • 在Dynamic.swift中写入以下代码,必须添加@objc修饰符才能让Objective-C识别到类和方法:
import UIKit
import Lottie

@objc class Dynamic: NSObject {
  @objc func createAnimationViewWithRootView(_ rootView: UIView, lottieName: String) -> UIView {
    let animationView = LottieAnimationView(name: lottieName)
    animationView.frame = rootView.bounds
    animationView.center = rootView.center
    animationView.contentMode = .scaleAspectFit
    return animationView
  }

  @objc func playWithAnimationView(_ animationView: LottieAnimationView) {
    animationView.play { _ in
      RNSplashScreen.hide()
    }
  }
}
  • 确认你现有代码中导入的#import "EmpathoApp-Swift.h"是正确的项目Swift桥接头,这个文件是Xcode自动生成的,会自动把所有标记了@objc的Swift类暴露给OC层
  • 检查你的splashscreen.json动画文件已经添加到Xcode项目资源目录,且勾选了对应项目的target
  • 执行Xcode清理缓存操作(快捷键Command + Shift + K)后重新编译即可
额外注意

如果你使用的是低于3.0版本的Lottie iOS库,需要把代码中的LottieAnimationView替换为旧版本的类名AnimationView。

内容的提问来源于stack exchange,提问作者Daniel Döbereiner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 05:24:05