Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

三国志·战略版

PlayCover

1. 加载界面卡死无响应 ISSUE-023

通过终端指令修复:

EXECUTABLE=~/Library/Containers/io.playcover.PlayCover/Applications/com.s3.sgzzlb.cn.app/cn_appstore
perl -e 'open F, "+<:raw", $ARGV[0] or die $!; local $/; my $d = <F>; my $i = index($d, "\x00\x00\xC0\x3D\x60\x02\x80\x3D\x00\x84\x40\xAD\x02\x8C\x41\xAD\x62\x8E\x01\xAD\x60\x86\x00\xAD\x00\x84\x42\xAD\x02\x1C\xC0\x3D"); exit 1 if $i < 0; seek F, $i - 4, 0; print F "\x1F\x00\x00\xB9"; close F;' $EXECUTABLE
codesign -fs- $EXECUTABLE --deep --preserve-metadata=entitlements

2. 登录后验证码界面不显示

暂时无法解决。

原因分析 游戏登录后会访问https://general.aligames.com/ieu-sdk-h5/challenge.html来显示验证码。

但是由于WebKit在Mac上是默认通过桌面模式打开网页的,navigator.platform = “MacIntel”,navigator.maxTouchPoints = 0。

challenge.html判断设备类型时发现不满足iOS的条件,所以后续代码都没有执行。

临时解决方法:

PlayTools NSObject+Swizzle.m

强制WebKit以移动端模式打开网页。

#import <WebKit/WebKit.h>

- (WKWebView *) hook_WKWebView_initWithFrame:(CGRect) frame
                               configuration:(WKWebViewConfiguration *) config {
    WKWebView *webView = [self hook_WKWebView_initWithFrame:frame configuration:config];
    webView.configuration.defaultWebpagePreferences.preferredContentMode = WKContentModeMobile;
    return webView;
}

[objc_getClass("WKWebView") swizzleInstanceMethod:@selector(initWithFrame:configuration:) withMethod:@selector(hook_WKWebView_initWithFrame:configuration:)];