正在通过Swift Package Manager安装Stripe iOS SDK,但由于“未加载库”而崩溃

问题描述

我正在使用Xcode 12,iOS 14,所有东西都可以正确构建,但是当我安装在设备上并要运行时,我收到一条消息,提示“ dylib:库未加载:”

dyld: Library not loaded: @rpath/Stripe.framework/Stripe
  Referenced from: /private/var/containers/Bundle/Application/31B00354-2E1E-4385-8317-5518588873F7/MyApp.app/MyApp
  Reason: image not found
dyld: launch,loading dependent libraries
DYLD_LIBRARY_PATH=/usr/lib/system/introspection
DYLD_INSERT_LIBRARIES=/Developer/usr/lib/libBacktraceRecording.dylib:/Developer/usr/lib/libmainThreadChecker.dylib:/Developer/Library/PrivateFrameworks/DTDdisupport.framework/libViewDebuggerSupport.dylib

我尝试通过构建阶段复制框架,但是无法以这种方式复制Stripe框架。在我的目标Frameworks,Libraries and Embedded content中,“条纹”设置为Embed & Sign

我已经删除了派生数据,清理过,杀死了Xcode,重启了计算机,尝试了不同的iPhone,以及不同的iOS等。

谢谢您的帮助。

解决方法

我需要在构建设置中将@executable_path/Frameworks添加到RunPath Search Paths中。

@executable_path-解析为可执行文件的绝对路径,例如。 / private / var / mobile /容器/捆绑/Application/0F2C2461-A68B-4ABA-A604-B88E6E9D1BB1/App.app /

来自https://blog.krzyzanowskim.com/

比我更了解这些东西^

该文章(如果仍然链接):https://blog.krzyzanowskim.com/2018/12/05/rpath-what/