- bounty将在7天后过期**。回答此问题可获得+50声望奖励。Oscar A Garcia希望引起更多人关注此问题。
我和一位同事正在接管一个托管在GitLab上的iOS应用程序。这个应用程序使用cocopods,并且在repo中包含了Pods目录。我的理解是我们应该能够拉取repo并在Xcode上运行它,而不会出现任何问题。
我的同事可以从源代码控制下载应用程序并在他的机器上运行。我的系统出现错误,如"无法在范围内找到类型" AnimationView ""。他运行的是M1 MacBook,我运行的是基于Intel的MacBook Air。我打开的是CocoaPods生成的工作区文件,而不是xcodepro。
以下是我尝试过的方法:
- 通过运行
pod reintegrate
,然后运行pod update
,打开Xcode并清理构建文件夹,然后再次运行命令行重新生成pod。 - 将Xcode上的最低iOS部署目标更改为我的播客文件中的最高部署目标。
- 将应用程序构建设置上的体系结构更改为
i386
和x86_64
,而不是默认值。 - 当Pod发出警告时,点击"更新至推荐设置"。
这些都不起作用,我现在很困惑,因为它是在我同事的机器上运行的,我想我的应用程序检测库的方式或者编译的方式一定有问题。
这是我的播客文件:
# Uncomment the next line to define a global platform for your project
platform :ios, '13.0'
target 'projectname' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for projectname
pod 'Purchases'
pod 'Firebase/Analytics'
pod 'Firebase/Core'
pod 'Firebase/Storage'
pod 'Firebase/Database'
pod 'Firebase/Firestore'
pod 'Firebase/Auth'
pod 'SwiftyJSON'
pod 'CleanyModal'
pod 'MagicTimer'
pod 'lottie-ios'
pod 'FBSDKCoreKit'
end
1条答案
按热度按时间rkue9o1l1#
我怀疑这个问题与pod无关。
原因是,如果您启动一个新的iOS Xcode项目(名为
emptyproj
),然后在Xcode中关闭iOS项目,则可以转到该项目目录,并将Podfile
放入该目录,其中包含上述内容,但名称projectname
替换为emptyproj
,然后可以执行以下操作然后一旦它创建了
emptyproj.xcworksapce
,就在Xcode中打开它。你会注意到没有一个符号叫做
AnimationView
,只有LottieAnimationView
。因此,缺少的符号必须在GitLab上的实际应用程序中,而不是pod依赖项中。
我的建议是查看项目构建中的任何构建阶段,以查看是否运行了任何特定于体系结构的脚本。
另一种调试策略是让你的同事到你的机器上,自己在你的机器上进行设置,这可能成功(一个没有提到的步骤)或失败(更有力的证据表明这是一个机器或体系结构相关的问题)。