ios 从源代码管理下载的Swift应用程序无法在我的计算机上运行,只能在同事上运行

vatpfxk5  于 2023-02-17  发布在  iOS
关注(0)|答案(1)|浏览(114)
    • 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部署目标更改为我的播客文件中的最高部署目标。
  • 将应用程序构建设置上的体系结构更改为i386x86_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
rkue9o1l

rkue9o1l1#

我怀疑这个问题与pod无关。
原因是,如果您启动一个新的iOS Xcode项目(名为emptyproj),然后在Xcode中关闭iOS项目,则可以转到该项目目录,并将Podfile放入该目录,其中包含上述内容,但名称projectname替换为emptyproj,然后可以执行以下操作

pod install

然后一旦它创建了emptyproj.xcworksapce,就在Xcode中打开它。
你会注意到没有一个符号叫做AnimationView,只有LottieAnimationView
因此,缺少的符号必须在GitLab上的实际应用程序中,而不是pod依赖项中。
我的建议是查看项目构建中的任何构建阶段,以查看是否运行了任何特定于体系结构的脚本。
另一种调试策略是让你的同事到你的机器上,自己在你的机器上进行设置,这可能成功(一个没有提到的步骤)或失败(更有力的证据表明这是一个机器或体系结构相关的问题)。

相关问题