xcode - Xcode/React-native:未定义符号:_swift_getFunctionReplacement
问题描述
我有一个 react-native 项目,在安装了一些与 mapbox 相关的 pod 后,我的 xcode 构建中开始出现以下错误。
ld: warning: building for iOS, but linking in dylib file (/Users/nitinsharma/Library/Developer/Xcode/DerivedData/app-bpqejjqomhurrldtyubqevqtdqzc/Build/Products/Debug-iphoneos/MapboxAccounts.framework/MapboxAccounts) built for Mac Catalyst
Undefined symbols for architecture arm64:
"_swift_getFunctionReplacement", referenced from:
_swift_getFunctionReplacement50 in libswiftCompatibilityDynamicReplacements.a(DynamicReplaceable.cpp.o)
(maybe you meant: _swift_getFunctionReplacement50)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
现在,如果我按照这些步骤操作,错误就会消失
1. Go to project>build settings> library search path
2. remove "$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"
但是,之后我无法安装该应用程序,因为当 xcode 尝试在我的设备上安装该应用程序时出现以下错误。我什至尝试删除DerivedData
文件夹但没有运气
Details
Unable to install "app"
Domain: com.apple.dt.MobileDeviceErrorDomain
Code: -402653103
--
Could not inspect the application package.
Domain: com.apple.dt.MobileDeviceErrorDomain
Code: -402653103
User Info: {
DVTRadarComponentKey = 282703;
MobileDeviceErrorCode = "(0xE8000051)";
"com.apple.dtdevicekit.stacktrace" = (
0 DTDeviceKitBase 0x0000000124ca7c8f DTDKCreateNSErrorFromAMDErrorCode + 220
1 DTDeviceKitBase 0x0000000124ce6241 __90-[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:]_block_invoke + 155
2 DVTFoundation 0x000000010950764b DVTInvokeWithStrongOwnership + 71
3 DTDeviceKitBase 0x0000000124ce5f82 -[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:] + 1440
4 IDEiOSSupportCore 0x0000000124b56a10 __118-[DVTiOSDevice(DVTiPhoneApplicationInstallation) processAppInstallSet:appUninstallSet:installOptions:completionBlock:]_block_invoke.292 + 3513
5 DVTFoundation 0x000000010963617e __DVT_CALLING_CLIENT_BLOCK__ + 7
6 DVTFoundation 0x0000000109637da0 __DVTDispatchAsync_block_invoke + 1191
7 libdispatch.dylib 0x00007fff7182e6c4 _dispatch_call_block_and_release + 12
8 libdispatch.dylib 0x00007fff7182f658 _dispatch_client_callout + 8
9 libdispatch.dylib 0x00007fff71834c44 _dispatch_lane_serial_drain + 597
10 libdispatch.dylib 0x00007fff718355d6 _dispatch_lane_invoke + 363
11 libdispatch.dylib 0x00007fff7183ec09 _dispatch_workloop_worker_thread + 596
12 libsystem_pthread.dylib 0x00007fff71a89a3d _pthread_wqthread + 290
13 libsystem_pthread.dylib 0x00007fff71a88b77 start_wqthread + 15
);
}
--
System Information
macOS Version 10.15.6 (Build 19G2021)
Xcode 12.4 (17801) (Build 12D4e)
我正在使用react native v0.63.0
并且Xcode 12.4
我的设备正在运行iOS 14.4
Mapbox related pods that are installed
mapbox related pods from my podfile.lock
- Mapbox-iOS-SDK (6.3.0):
- MapboxMobileEvents (~> 0.10.4)
- MapboxAccounts (2.3.1)
- MapboxCommon (9.2.0)
- MapboxCoreNavigation (1.2.1):
- MapboxAccounts (~> 2.3.0)
- MapboxDirections (~> 1.2.0)
- MapboxMobileEvents (~> 0.10.2)
- MapboxNavigationNative (~> 30.0)
- Turf (~> 1.0)
- MapboxDirections (1.2.0):
- Polyline (~> 5.0)
- Turf (~> 1.0)
- MapboxMobileEvents (0.10.7)
- MapboxNavigation (1.2.1):
- Mapbox-iOS-SDK (~> 6.0)
- MapboxCoreNavigation (= 1.2.1)
- MapboxMobileEvents (~> 0.10.2)
- MapboxSpeech (~> 1.0)
- Solar (~> 2.1)
- MapboxNavigationNative (30.0.0):
- MapboxCommon (= 9.2.0)
- MapboxSpeech (1.0.0)
解决方案
我的项目中有同样的错误。在这里尝试了所有内容: https ://github.com/react-native-community/upgrade-support/issues/25
最终解决的问题是同时更改Don't Dead-strip Inits and Terms
为Yes
Project 和 Target。
推荐阅读
- django - 对多对多字段的 Django-Rest-Framework POST 请求
- java - 如何使用 JSoup 从 HTML 元素中选择具有特定文本的元素
- typescript - 严格的打字稿,同时以方便的方式使用 sinon
- c# - 如何在 c# 代码中分配 DisplayMemberBinding 转换器
- python - Python正则表达式在两个字符串之间查找字符串
- python-3.x - 如何在 Python3 的此代码块中插入无限循环?
- python - 如何在 Texinput 字段中只接受两个数字?
- windows - 如何从 WSL (Ubuntu) 中启动 Windows 上本机安装的 Atom 或 VSCode?
- javascript - 使用 React 功能组件处理事件 - 接收未定义的错误
- json - 使用 Grails 视图漂亮地打印 JSON