GKMatch rule-based matching. Can't match more than 3 people.

Matchmaking rules

https://developer.apple.com/documentation/gamekit/matchmaking-rules?language=objc

AppStoreConnectApi rules

https://developer.apple.com/documentation/appstoreconnectapi/rules?language=objc

・Environment

Unity 6000.2.2f1

XCode 16.1

iOS 26

3 iPhones

・AppStoreConnectApi rules

    "type": "gameCenterMatchmakingRuleSets",
    "id": "f6a88caf-85db-42bf-xxxxxxxxxxxxxxxxxxxx",
    "attributes": {
      "referenceName": "co.mygame.RuleSets.GvERandom34",
      "ruleLanguageVersion": 1,
      "minPlayers": 3,
      "maxPlayers": 4
    },
    "type": "gameCenterMatchmakingRules",
    "id": "6afa68ce-4d2c-496f-xxxxxxxxxxxxxxxxxxxx",
    "attributes": {
      "referenceName": "GameVersion",
      "description": "Check Game Version. GvERandom34",
      "type": "COMPATIBLE",
      "expression": "requests[0].properties.gameVersion == requests[1].properties.gameVersion",
      "weight": null
    },
    "type": "gameCenterMatchmakingQueues",
    "id": "7fb645ef-4eca-4510-xxxxxxxxxxxxxxxxxxxx",
    "attributes": {
      "referenceName": "co.mygame.que.GvERandom34",
      "classicMatchmakingBundleIds": []
    },

・Objective-C Execution code

queueName  = "co.mygame.que.GvERandom34"
keyStr  = "gameVersion "
valueStr = "1.0"

- (void)MatchQueueParamStr1Start:(NSString*)queueName keyStr:(NSString*)keyStr valueStr:(NSString*)valueStr
{
	if (@available(iOS 17.2, tvOS 17.2, macOS 14.2, visionOS 1.1, *) == NO)
	{
		DBGLOG(@"MatchQueueParamStr1Start Not support.");
		return;
	}
	
	self->_matchMakingFlag = YES;
	self->_matchFinishFlag = NO;
	self->_myMatch = nil;
	
	GKMatchRequest *req = [[GKMatchRequest alloc] init];
	if (@available(iOS 17.2, tvOS 17.2, macOS 14.2, visionOS 1.1, *))
	{
		req.queueName = queueName;
		req.properties = @{keyStr: valueStr};
	}


	[[GKMatchmaker sharedMatchmaker] findMatchForRequest:req withCompletionHandler: ^(GKMatch *match, NSError *error)
	{
		if (error)
		{
			[self SetupErrorInfo:error descriptionText:@"findMatchForRequest"];
		}
		else if(match)
		{
			self->_myMatch = match;
			self->_myMatch.delegate = self;
		}
		
		self->_matchMakingFlag = NO;
		self->_matchFinishFlag = YES;
	}];
}

I'm trying to match with three devices.

Matching doesn't work.

5 minutes later times out.

What's the problem?

    "attributes": {
      "referenceName": "co.mygame.RuleSets.GvERandom24",
      "ruleLanguageVersion": 1,
      "minPlayers": 2,
      "maxPlayers": 4
    },

Use the above settings.

Match two devices.

This will be successful.

GKMatch rule-based matching. Can't match more than 3 people.
 
 
Q