iOS模拟器可以编译,真机无法编译

本文介绍了一种解决iOS应用在真机上编译失败的问题,特别是当出现找不到Foundation框架内的NSRegularExpression类时的解决方案。通过将模拟器版本的头文件复制到真机版本中来修复该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看到这篇文章的估计都是从搜索引擎来的,我们遇到类似的问题,但原因有可以不同,所以本文也仅供参考。

先描述一下我遇到的症状,项目在模拟器上可以编译运行,在真机上编译不了,显示找不到某个类(我是NSRegularExpression类找不到,以下也以此类为例)(Receiver NSXXX for class message is a forward declaration),这个类还是 Foundation 里的类,按住command无法用鼠标点进这个类的头文件。

如果你遇到的问题和上述症状完全一致,或者是反过来的情况:在真机上可以编译运行在模拟器上不行,那你可以继续往下看了,如果症状不吻合的话,基本可以断定和我遇到的情况不一样。

手动找到 NSRegularExpression.h,发现这个文件变成空的了,如果是真机不能编译,这个头文件的位置在:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSRegularExpression.h,一般文件名就是 类名.h,从模拟器版本的这个文件 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSRegularExpression.h 复制到真机版本的文件中就行了。

这个文件在 Xcode.app 里面,不知道我电脑上为什么会莫名其妙的变成空的,幸亏很及时的发现了,不然这种问题找起来肯定很费时间,所以也把问题写出来供大家参考。

转载于:https://www.cnblogs.com/scfhao/p/8793867.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值