我最近将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
Run Code Online (Sandbox Code Playgroud)
我怀疑问题在于如果您希望将应用程序提交到App Store所需的脚本,因此我删除了运行脚本阶段,添加了新脚本,并从Realm文档站点复制了脚本:
bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework/strip-frameworks.sh"
Run Code Online (Sandbox Code Playgroud)
我认为那会解决它,但事实并非如此.然后我认为问题可能出在Realm.framework或RealmSwift.framework文件中,所以我删除了它们并重新导入它们(以防万一我搞砸了).没有改变.有谁知道这个错误是否有解决方法?
谢谢!-CodeIt
mar*_*ius 44
从错误信息,好像,你没有添加Realm.framework和RealmSwift.framework到嵌入式二进制文件窗格中,你在找的一般项目的标签,如下图所示:
要进一步验证,您可以选中Build Phases选项卡.它应该如下所示:
注意:确保在嵌入框架阶段之后运行脚本阶段.
销售的框架不仅仅是单个可执行文件,而且实际上是FAT二进制文件,它们是不同体系结构上链接可执行文件的存档.这包括建筑切片arm64和armv7,这是必需的手机上部署以及i386与x86_64所必需的运行在模拟器中的应用程序.
该strip-frameworks.sh脚本主要职责是采取去除不必要的切片的照顾.这减少了最终的包大小,并且是AppStore部署所必需的,因为iTunes Connect拒绝使用模拟器架构的应用程序.
该脚本基于构建设置工作VALID_ARCHS.因为这正在改变框架的签名可执行文件,所以它还需要处理代码签名.自从引入bitcode以来,它还有进一步的后期处理作为责任.它*.bcsymbolmap从框架包中提取包含的文件,并将它们放入正确的路径中*.xcarchive.
关于PSPDFKit的Bitcode的FAQ主题对BCSymbolMaps是什么有很好的解释:
BCSymbolMap很像bitcode的dSYM.Xcode将其构建为创建应用程序二进制文件的一部分,也适用于每个动态框架.重新标记函数/方法名称以理解crashers是必需的.