The friendly has been added to Manchester City’s pre-season schedule, which also consists of games against Manchester United, Real Madrid and Tottenham Hotspur in the United States.
Manager Pep Guardiola said: “This match will be a fantastic occasion, and we’ll be looking to put on a great show for our supporters. Manchester City and West Ham played out some brilliant matches last season, and this game will be no different.
“It will be the culmination of our pre-season preparations, and will be hugely important for us to fine tune the team in readiness for the new season.”
West Ham boss Slaven Bilic added: “It is the perfect fixture for City and ourselves, because we have great respect for each other and will both be looking for the same positives from the game, in terms of fitness and preparation for the start of the Premier League season a week later.”
Reykjavik will stage the match on Friday, August 4, and it will be the first time that Pablo Zabaleta will face City since leaving the club to join the Hammers.