首页 > 解决方案 > 由于缺少所需的架构 armv7,无法构建 DJI 示例应用程序

问题描述

我正在尝试将我的应用程序的 DJI SDK 更新到最新版本(即v4.10DJISDK/UXSDK 和v1.5DJIWidget),以使其与 Matrice 200 V2 系列兼容。我遇到了一个错误,我也可以使用DJI Mobile-UXSDK-iOS repo中的示例应用程序重现该错误。

基本上,当我尝试归档应用程序时,会出现以下错误:

ld: warning: directory not found for option '-F/Users/nachocarnicero/git/Mobile-UXSDK-iOS/Sample Code/ObjcSampleCode/Frameworks'
ld: warning: directory not found for option '-F/Users/nachocarnicero/git/Mobile-UXSDK-iOS/Sample Code/ObjcSampleCode/../DJIWidget'
ld: warning: ignoring file /Users/nachocarnicero/git/Mobile-UXSDK-iOS/Sample Code/ObjcSampleCode/Pods/DJI-UXSDK-iOS/iOS_UXSDK/DJIUXSDK.framework/DJIUXSDK, missing required architecture armv7 in file /Users/nachocarnicero/git/Mobile-UXSDK-iOS/Sample Code/ObjcSampleCode/Pods/DJI-UXSDK-iOS/iOS_UXSDK/DJIUXSDK.framework/DJIUXSDK (2 slices)
ld: warning: ignoring file /Users/nachocarnicero/git/Mobile-UXSDK-iOS/Sample Code/ObjcSampleCode/Pods/DJI-SDK-iOS/iOS_Mobile_SDK/DJISDK.framework/DJISDK, missing required architecture armv7 in file /Users/nachocarnicero/git/Mobile-UXSDK-iOS/Sample Code/ObjcSampleCode/Pods/DJI-SDK-iOS/iOS_Mobile_SDK/DJISDK.framework/DJISDK (2 slices)
Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_DUXBatteryWidget", referenced from:
      _OBJC_CLASS_$_MyBatteryWidget in MyBatteryWidget.o
      objc-class-ref in PanelsCollectionsViewController.o
  "_OBJC_METACLASS_$_DUXDefaultLayoutViewController", referenced from:
      _OBJC_METACLASS_$_DefaultLayoutViewController in DefaultLayoutViewController.o
  "_OBJC_METACLASS_$_DUXBatteryWidget", referenced from:
      _OBJC_METACLASS_$_MyBatteryWidget in MyBatteryWidget.o
  "_OBJC_CLASS_$_DUXStatusBarViewController", referenced from:
      objc-class-ref in PanelsCollectionsViewController.o
  "_OBJC_CLASS_$_DUXDefaultLayoutViewController", referenced from:
      _OBJC_CLASS_$_DefaultLayoutViewController in DefaultLayoutViewController.o
  "_OBJC_CLASS_$_DJISDKManager", referenced from:
      objc-class-ref in MainViewController.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

在这个版本之前一切正常,所以我猜这是最新的 DJI SDK 版本的问题。

我正在使用 ObjectiveC 示例代码,该应用程序在 iPad Pro 上运行的调试模式下运行良好。

标签: dji-sdk

解决方案


万一有人遇到这个问题,似乎新的 DJI SDK 与 armv7 架构不兼容,所以这里的解决方案是转到项目的 XCode Build Settings 选项卡,并armv7按照本次提交Valid Architectures所做的那样删除DJI Mobile-SDK-iOS 存储库。


推荐阅读