【发布时间】:2026-01-22 16:40:01
【问题描述】:
我正在为 iOS 进行个人调整。我想在电话显示任何内容之前断开/连接电话。我正在使用SBUIFullscreenAlertAdapter 类的initWithAlertController: 方法。当我只显示一条显示来电号码及其姓名的消息时,一切都很好,但是当我尝试以编程方式接听电话或断开连接时,它会崩溃并进入安全模式。
这是我的代码:
@interface SBUIFullscreenAlertAdapter
- (id)initWithAlertController:(id)arg1;
@end
@interface MPIncomingPhoneCallController
{
struct __CTCall *_incomingCall;
}
- (id) incomingCallNumber;
- (void)stopRingingOrVibrating;
- (void)answerCall:(struct __CTCall *)arg1;
@end
%hook SBUIFullscreenAlertAdapter
- (id)initWithAlertController:(id)arg1
{
MPIncomingPhoneCallController *phoneCall = (MPIncomingPhoneCallController*)arg1;
[phoneCall stopRingingOrVibrating];
if([phoneCall.incomingCallNumber isEqualToString:@"+98.........."]) {
[phoneCall answerCall:_incomingCall];
}
%orig;
return self;
}
%end
错误是它说:“使用未声明的标识符'_incomingCall'”。
我该如何解决这个问题?有没有办法在挂钩方法时使用私有实例变量?是否有返回来电的CTCallRef* 的函数?有没有其他方法可以做到这一点?
应该很明显我是在为越狱的iOS设备写代码,所以使用私有框架是没有问题的。
【问题讨论】:
标签: ios iphone objective-c jailbreak