mirror of
https://github.com/PlayCover/PlayCover.git
synced 2026-04-26 08:15:56 +03:00
[GH-ISSUE #1676] [Game Support]: 三国志战略版-The login interface keeps loading and needs to be forced to exit #1062
Labels
No labels
UI
app-support
bug
bug
documentation
duplicate
enhancement
game-support
good first issue
help wanted / caution
inactive
invalid
macos-beta
pull-request
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/PlayCover#1062
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @kts-kris on GitHub (Sep 12, 2024).
Original GitHub issue: https://github.com/PlayCover/PlayCover/issues/1676
App Store link
https://apps.apple.com/cn/app/%E4%B8%89%E5%9B%BD%E5%BF%97-%E6%88%98%E7%95%A5%E7%89%88-%E4%B8%89%E5%9B%BD%E7%AD%96%E7%95%A5%E6%88%98%E4%BA%89%E6%89%8B%E6%B8%B8/id1474572440
Current issues
More details
The login interface keeps loading and needs to be forced to quit. The entire game interface has no response.
Crash log
What version of PlayCover are you using?
3.1.0
What version of macOS are you using?
macOS beta (please state the specific version)
Issue Language
@kts-kris commented on GitHub (Sep 13, 2024):
@nbgesion commented on GitHub (Sep 27, 2024):
你有解决吗?我也一样,1.128版本以后,都会有这个问题。
@kts-kris commented on GitHub (Sep 29, 2024):
没有解决
没有,甚至没有调试信息看出来是什么问题。
@Anson0414 commented on GitHub (Oct 23, 2024):
How to solve the problem
@kts-kris commented on GitHub (Oct 24, 2024):
My Log
@nbgesion commented on GitHub (Nov 30, 2024):
解决了吗?这个问题到底是哪里引起的呢?是官方把验证给封了还是怎么?
@donghaofei commented on GitHub (Oct 14, 2025):
My Log
版本15.7(版号24G222)
Installing PlayTools
Copying PlayTools to Frameworks
Executable=/private/var/folders/cg/sr2w_5sj4xlf_rs1j38sd4200000gn/T/TemporaryItems/NSIRD_PlayCover_0tc2Mc/Payload/cn_appstore.app/cn_appstore
application-identifier[GXW45JP9KG.com.s3.sgzzlb.cn](https://gxw45jp9kg.com.s3.sgzzlb.cn/)aps-environmentproductioncom.apple.developer.associated-domains[applinks:sgz-iae.lingxigames.com](https://applinks:sgz-iae.lingxigames.com/)com.apple.developer.team-identifierGXW45JP9KGkeychain-access-groups[GXW45JP9KG.com.s3.sgzzlb.cn](https://gxw45jp9kg.com.s3.sgzzlb.cn/)/private/var/folders/cg/sr2w_5sj4xlf_rs1j38sd4200000gn/T/TemporaryItems/NSIRD_PlayCover_0tc2Mc/Payload/cn_appstore.app/cn_appstore: replacing existing signature
/private/var/folders/cg/sr2w_5sj4xlf_rs1j38sd4200000gn/T/TemporaryItems/NSIRD_PlayCover_0tc2Mc/Payload/cn_appstore.app/Frameworks/shortcut.framework/shortcut: replacing existing signature
/private/var/folders/cg/sr2w_5sj4xlf_rs1j38sd4200000gn/T/TemporaryItems/NSIRD_PlayCover_0tc2Mc/Payload/cn_appstore.app/Frameworks/AgoraSpatialAudioExtension.framework/AgoraSpatialAudioExtension: replacing existing signature
/private/var/folders/cg/sr2w_5sj4xlf_rs1j38sd4200000gn/T/TemporaryItems/NSIRD_PlayCover_0tc2Mc/Payload/cn_appstore.app/Frameworks/AgoraSoundTouch.framework/AgoraSoundTouch: replacing existing signature
/private/var/folders/cg/sr2w_5sj4xlf_rs1j38sd4200000gn/T/TemporaryItems/NSIRD_PlayCover_0tc2Mc/Payload/cn_appstore.app/Frameworks/Agorafdkaac.framework/Agorafdkaac: replacing existing signature
/private/var/folders/cg/sr2w_5sj4xlf_rs1j38sd4200000gn/T/TemporaryItems/NSIRD_PlayCover_0tc2Mc/Payload/cn_appstore.app/Frameworks/AgoraCore.framework/AgoraCore: replacing existing signature
/private/var/folders/cg/sr2w_5sj4xlf_rs1j38sd4200000gn/T/TemporaryItems/NSIRD_PlayCover_0tc2Mc/Payload/cn_appstore.app/Frameworks/AgoraRtcKit.framework/AgoraRtcKit: replacing existing signature
/private/var/folders/cg/sr2w_5sj4xlf_rs1j38sd4200000gn/T/TemporaryItems/NSIRD_PlayCover_0tc2Mc/Payload/cn_appstore.app/Frameworks/AgoraAIDenoiseExtension.framework/AgoraAIDenoiseExtension: replacing existing signature
/private/var/folders/cg/sr2w_5sj4xlf_rs1j38sd4200000gn/T/TemporaryItems/NSIRD_PlayCover_0tc2Mc/Payload/cn_appstore.app/Frameworks/AgoraFullAudioFormatExtension.framework/AgoraFullAudioFormatExtension: replacing existing signature
/var/folders/cg/sr2w_5sj4xlf_rs1j38sd4200000gn/T/TemporaryItems/NSIRD_PlayCover_0tc2Mc/Payload/cn_appstore.app/PlugIns/AKInterface.bundle: replacing existing signature
/var/folders/cg/sr2w_5sj4xlf_rs1j38sd4200000gn/T/TemporaryItems/NSIRD_PlayCover_0tc2Mc/Payload/cn_appstore.app: replacing existing signature
System Integrity Protection status: enabled.
/Users/donghaofei/Library/Containers/io.playcover.PlayCover/Applications/com.s3.sgzzlb.cn.app: replacing existing signature
/Users/donghaofei/Library/Containers/io.playcover.PlayCover/Applications/com.s3.sgzzlb.cn.app: replacing existing signature
Executable=/Users/donghaofei/Library/Containers/io.playcover.PlayCover/Applications/com.s3.sgzzlb.cn.app/cn_appstore
com.apple.security.app-sandboxcom.apple.security.assets.movies.read-writecom.apple.security.assets.music.read-writecom.apple.security.assets.pictures.read-writecom.apple.security.device.audio-inputcom.apple.security.device.bluetoothcom.apple.security.device.cameracom.apple.security.device.microphonecom.apple.security.device.usbcom.apple.security.files.downloads.read-writecom.apple.security.files.user-selected.read-writecom.apple.security.network.clientcom.apple.security.network.servercom.apple.security.personal-information.addressbookcom.apple.security.personal-information.calendarscom.apple.security.personal-information.locationcom.apple.security.printcom.apple.security.temporary-exception.sbpl(allow user-preference-write (preference-domain ".GlobalPreferences"))(allow user-preference-read (preference-domain ".GlobalPreferences"))(allow file* file-read* file-write* file-write-data file-read-metadata file-ioctl (subpath "/Users/donghaofei/Library/Containers/io.playcover.PlayCover"))(allow file* file-read* file-read-metadata file-ioctl (subpath "/Users/donghaofei/Library/Frameworks/PlayTools.framework"))(allow file* file-read* (subpath "/Users/donghaofei/Library/Group Containers/"))(allow network* ipc-posix*)Executable=/Users/donghaofei/Library/Containers/io.playcover.PlayCover/Applications/com.s3.sgzzlb.cn.app/cn_appstore
Identifier=com.s3.sgzzlb.cn
Format=app bundle with Mach-O thin (arm64)
CodeDirectory v=20400 size=253225 flags=0x2(adhoc) hashes=7903+7 location=embedded
Signature=adhoc
Info.plist entries=48
TeamIdentifier=not set
Sealed Resources version=2 rules=10 files=1650
Internal requirements count=0 size=12
@viatearz commented on GitHub (Oct 17, 2025):
CRIWARE SonicSYNC causes a deadlock. Disabling SonicSYNC can fix this issue.
Run this command in Terminal:
@kts-kris commented on GitHub (Jan 8, 2026):
It's good work for me! Thank you !
@kts-kris commented on GitHub (Jan 8, 2026):
@kts-kris commented on GitHub (Jan 8, 2026):
https://github.com/user-attachments/assets/b9e91d26-eaa7-4a09-b731-e8f36b91126e
You can watch the video here.
@viatearz commented on GitHub (Jan 8, 2026):
The last time I tried it, I was able to log in.
There might be an issue with their login SDK, or they are just blocking logins from PlayCover. I have no idea about it.
@kts-kris commented on GitHub (Jan 9, 2026):
This aligns with my assessment; it appears there was an error when the publisher's login SDK was performing certain actions. Thank you very much for your help.
@kts-kris commented on GitHub (Jan 9, 2026):
I used Proxyman to capture network traffic and compared the processes of PlayCover and iOS, then used GPT to generate an analysis. It seems the problem still lies in the environment. Below is the analysis report.
iOS Game Login Divergence on PlayCover: Login Succeeds but UI Locks Before Entering Server
Summary
When running 三国志·战略版 inside PlayCover, the login via Lingxi/AFlySDK/UC account completes successfully, but the game never transitions into the playable state. The UI becomes locked, with only the top-right close button responding.
The same application and account on a real iOS device function normally and can enter the game.
This issue may indicate a compatibility gap between PlayCover and the game's expected iOS environment capability during the post-login transition phase.
Environment
Observed Behavior in PlayCover
After login:
6103)EnterSelect ServerAnnouncementsThis suggests the game is stuck in an intermediate state early in the "enter server" flow.
Control Behavior on Real iOS Device
On a physical iPhone:
This confirms:
Network Capture Comparison (PlayCover vs Real iOS)
Network captures were collected for both environments.
The chains differ in a consistent and repeatable way:
Requests Shared by Both Environments
Both issue the following (examples):
magic-account.flysdk.cn→ Lingxi account loginp10445-gangplank.ejoy.com→ server recommendationp10445-platform.ejoy.com→ platform configsAll respond with success, indicating:
Requests Only Issued on Real iOS (Not on PlayCover)
Only the real iPhone issues the following post-login requests:
1. Player Role Info
Retrieves player's last-used server/character.
2. Reserve / Bind Info
Used in the pre-enter-server preparation step.
3. Push / Realtime Setup
Initializes push/notification/realtime channels.
4. Environment Reporting
Real device sends environment/telemetry required by SDK.
Preliminary Analysis
Network evidence suggests:
This implies the login state machine diverges on the client side, not on the server.
Observed flow:
The fact that PlayCover never initiates the "role info / reserve info / push / telemetry" stage is significant.
Why This Matters for PlayCover Compatibility
This establishes a strong boundary:
The failure is not:
The failure is:
This points to missing / incompatible iOS capability such as:
iPhonevsMac)No reverse-engineering of the game logic is needed to reach this conclusion.
Suggested Next Technical Checks for PlayCover Maintainers
Without modifying the game binary, useful areas to inspect would include:
UIDeviceproperties (model, type, idiom)Reproducibility
User can provide the following if useful:
Reproduction is stable and consistent across sessions.
Closing Note
From the compatibility standpoint, the key value of this report is:
@kts-kris commented on GitHub (Jan 12, 2026):
@viatearz I've made a new discovery; it seems there's an issue with some kind of check during the login process that's preventing me from performing actions after logging in. I've summarized the specific details using GPT below:
iOS WebView Challenge Flow Blocks Login on PlayCover (caused by incomplete JSBridge)
Additional Technical Insight
During further inspection, the fullscreen transparent WebView blocking all touches was identified as loading:
This document is part of Alibaba Games’ in-app SDK challenge mechanism. It is not a visual UI container by itself; instead it performs:
This flow completes successfully on real iOS devices, allowing users to enter the game.
Expected Behavior (Real iOS)
The H5 script executes:
Meaning the expected runtime sequence is:
Observed Behavior (PlayCover)
In PlayCover, the flow stops early:
EjoySdk.notifyLuaAsync(...)EjoySdk.closeBrowser()This results in the appearance of the game UI being “frozen” while only the system close button remains interactive.
Sequence Diagram Comparison
Below is a sequence diagram contrasting Real iOS vs PlayCover behavior:
On PlayCover, the break occurs immediately after:
because
JSBridgeis missing.So the effective sequence becomes:
This visualizes why the game UI appears visible but unresponsive.
Root Cause Category
The problem is not graphics, networking, rendering, or input.
The root cause is:
Specifically Alibaba’s SDK expects:
window.webkit.messageHandlers.jsinterface.postMessageEjoySdk.getStartupDataEjoySdk.notifyLuaAsyncEjoySdk.closeBrowserNone are currently available under PlayCover.
Minimal Compatibility Target for PlayCover
From a technical standpoint, the smallest meaningful compatibility improvement is:
This would allow the game to reach a playable state without modifying the game or disabling its security features.
Suggested JSBridge Surface (Non-Speculative)
To support this H5-based challenge stage, PlayCover would need:
transparentBackground()getStartupData()notifyLuaAsync()closeBrowser()jsinterface.postMessageNone of these directly leak game data or require reverse engineering; they are standard hybrid-app IPC primitives.
Conclusion
This issue is best categorized as:
Fixing this would make the game playable on PlayCover without modifying the game or disabling its security features.
@viatearz commented on GitHub (Jan 13, 2026):
Thanks for your great work, I finally found the root cause.
The webpage is loaded in desktop mode by default, which results in
navigator.platform = "MacIntel"andnavigator.maxTouchPoints = 0.As a result, challenge.html fails to recognize the device as an iOS device, that means
isIOS = false.There’s no easy way to resolve this:
Click here to view the git patch.
@kts-kris commented on GitHub (Jan 14, 2026):
Thank you again for your attention and great work. I now understand the reason. Based on what was discussed above, the core issue was that AliGame's Zeus anti-fraud system was triggered. I needed to figure out why this was happening, and I discovered it was because I was using a US proxy as my global exit point for an extended period, which triggered Zeus's anti-fraud system and required verification. However, there was a bug in the verification process, preventing it from executing successfully within the app loaded by PlayCover. After testing, I turned off the proxy, and everything worked normally. Therefore, the real solution was resolving the SonicSYNC deadlock. So, thank you again! You've shown me the greatness of the community, thank you!