我最近更新了Xcode到7.1版本,其中包括Swift 2.1。我顺利地安装了Swift 2.1。在尝试运行我的项目后,我意识到我需要获取最新版本的Realm,因为以前的版本不支持Swift 2.1。我删除了旧的框架并导入了Realm 0.96.2。每当我运行的时候,我都会得到这样的错误:
bash: /Users/userName/Library/Developer/Xcode/DerivedData/appName-ghiroqitgsbvfhdqxsscyokyoouz/Build/Products/Debug-iphoneos/appName.app/Frameworks/Realm.framework/strip-frameworks.sh: No such file or directory我怀疑问题出在您希望将应用程序提交到app Store时所需的脚本,因此我删除了Run script阶段,添加了一个新脚本,并从Realm文档站点复制了该脚本:
bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework/strip-frameworks.sh"我以为这会解决这个问题,但它没有。然后我认为问题可能出在Realm.framework或RealmSwift.framework文件中,所以我删除了它们并重新导入了它们(以防我搞砸了什么)。什么都没变。有没有人知道这个错误有没有修复方法?
谢谢!-CodeIt
发布于 2015-10-28 23:20:54
从错误消息看,您似乎没有将Realm.framework和RealmSwift.framework添加到嵌入式二进制文件窗格中,您可以在项目的常规选项卡中找到该窗格,如下所示:

对于进一步的验证,您可以检查选项卡构建阶段。它应该如下所示:

注意:确保run script阶段在Embed Frameworks阶段之后。
为什么需要这个脚本?
提供的框架不仅是单个可执行文件,而且实际上是FAT二进制文件,它们是不同体系结构上链接的可执行文件的归档。这包括arm64和armv7的架构切片,它们是在手机上部署所必需的,以及i386和x86_64,它们是在模拟器中运行应用程序所必需的。
strip-frameworks.sh脚本的主要职责是删除不必要的切片。这减少了最终的软件包大小,并且对于AppStore部署是必要的,因为iTunes连接拒绝具有模拟器架构的应用程序。
更多细节
脚本在构建设置VALID_ARCHS的基础上工作。因为这会更改框架的签名可执行文件,所以它还需要注意代码签名。自从引入bitcode以来,它也得到了进一步的后期处理作为责任。它从框架包中提取包含的*.bcsymbolmap文件,并将它们放入*.xcarchive中的正确路径中。
FAQ topic on Bitcode of PSPDFKit对什么是BCSymbolMaps有一个很好的解释:
A BCSymbolMap很像bitcode的dSYM。Xcode将其构建为创建应用程序二进制文件的一部分,也适用于每个动态框架。需要重新符号化函数/方法名才能理解crashers。
发布于 2020-06-13 18:20:15
在我的例子中,将构建阶段中的流程顺序更改为解决


https://stackoverflow.com/questions/33377027
复制相似问题