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

Osc*_*cia 0 xcode ios cocoapods swift

我和一位同事正在接管 GitLab 上托管的 iOS 应用程序。该应用程序使用 cocoapods,并且 Pods 目录包含在存储库中。我的理解是我们应该能够毫无问题地提取存储库并在 Xcode 上运行它。

我的同事能够从源代码管理下载该应用程序并在他的计算机上运行。我的出现错误,例如“在范围内找不到类型‘AnimationView’”。他运行的是 M1 MacBook,我运行的是基于 Intel 的 MacBook Air。我正在打开由 CocoaPods 而不是 xcodepro 生成的工作区文件。

这是我尝试过的事情的列表:

  • 通过命令行重新生成 Pod,方法是运行pod reintegrate,然后运行pod update​​,打开 Xcode 并清理构建文件夹,然后再次运行。
  • 将 Xcode 上的最低 iOS 部署目标更改为 podfile 中 pod 的最高部署目标。
  • 将应用程序构建设置上的架构更改为默认架构i386x86_64
  • 当 Pod 发出警告时单击“更新到推荐设置”。

这些似乎都不起作用,我现在很茫然。由于它在我同事的机器上运行,我假设我的应用程序检测库的方式或编译方式一定有问题。

这是我的 Podfile:

# 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
Run Code Online (Sandbox Code Playgroud)

Fai*_*mon 5

我怀疑这个问题与 pod 无关。

这样做的原因是,如果您启动一个名为 的新 iOS Xcode 项目,emptyproj然后在 Xcode 中关闭该 iOS 项目,您可以转到该项目目录并将Podfile上述内容放入该目录中,但名称projectname替换为emptyproj,然后你可以做

pod install
Run Code Online (Sandbox Code Playgroud)

创建完成后,emptyproj.xcworksapce在 Xcode 中将其打开。

您会注意到没有名为 的符号AnimationView。只有LottieAnimationView

因此,缺少的符号必须位于 GitLab 上的实际应用程序中,而不是 pod 依赖项中。

我的建议是查看项目构建中的任何构建阶段,以查看是否有特定于体系结构的脚本运行。

另一种调试策略是让您的同事进入您的计算机并自己在您的计算机上进行设置,这可能会成功(未提及的步骤)或失败(更有力的证据表明它是与机器或体系结构相关的问题)。