Post not yet marked as solved
@eskimo I checked the Code Signing Entitlements build setting (CODE_SIGN_ENTITLEMENTS), and I confirm that I have the right file.
Since the forum does not support attaching screenshot, I wrote a letter with screenshots to you, I hope you'll take the time to read it.
It's a macOS app, not a iOS app. Another macOS app of mine does not have the Game Center problem, it got reviewed and updated without problem. But its Game Center enabled on iOS, not macOS.
My gut is telling me that this problem is related to App Identifier or Xcode didn’t fix this thoroughly.
Thanks again for helping,
Yang
Post not yet marked as solved
@eskimo, I just requested a DTS as you suggested, the follow-up number is 744221113.
Kindly Regards,
Yang.Y
Post not yet marked as solved
@eskimo I notice Entitlements.plist file in following command also have com.apple.developer.game-center set to true:
WriteAuxiliaryFile [USERHOME]/Library/Developer/Xcode/DerivedData/[APPWORKSPACENAME]-ftmmaepwxuqgfmgphytjtotwjrsu/Build/Intermediates.noindex/[APPNAME].build/Debug/[APPNAME].build/DerivedSources/Entitlements.plist (in target '[APPNAME]' from project '[APPNAME]')
		cd [APPWORKSPACE]
		write-file [USERHOME]/Library/Developer/Xcode/DerivedData/[APPWORKSPACENAME]-ftmmaepwxuqgfmgphytjtotwjrsu/Build/Intermediates.noindex/[APPNAME].build/Debug/[APPNAME].build/DerivedSources/Entitlements.plist
Post not yet marked as solved
I did a clean build, in the exported build transcript, there are two commands contain the relevant xcent file:
Entitlements:
{
		"com.apple.application-identifier" = "EEEEE.x.y.z";
		"com.apple.developer.game-center" = 1;
		"com.apple.developer.icloud-container-identifiers" =		 (
				"iCloud.xx.yy.zz"
		);
		"com.apple.developer.icloud-services" =		 (
				CloudDocuments
		);
		"com.apple.developer.team-identifier" = EEEEEEEEEE;
		"com.apple.developer.ubiquity-container-identifiers" =		 (
				"iCloud.xx.yy.zz"
		);
		"com.apple.security.app-sandbox" = 1;
		"com.apple.security.application-groups" =		 (
				"EEEEEEE.***.yyy.zzz",
				"EEEEEEE.***.yyy"
		);
		"com.apple.security.files.downloads.read-write" = 1;
		"com.apple.security.files.user-selected.read-write" = 1;
		"com.apple.security.get-task-allow" = 1;
		"com.apple.security.network.client" = 1;
		"keychain-access-groups" =		 (
				"EEEEEEE.xx.yy.zz"
		);
}
		builtin-productPackagingUtility -entitlements -format xml -o [USERHOME]/Library/Developer/Xcode/DerivedData/[APPWORKSPACE]-ftmmaepwxuqgfmgphytjtotwjrsu/Build/Intermediates.noindex/[APPNAME].build/Debug/[APPNAME].build/[APPNAME].app.xcent
and:
		cd [USERHOME]/[APPWORKSPACE]
		export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
		
Signing Identity:		 "Apple Development: Yang (XXXXXXXXXX)"
Provisioning Profile: "Mac Team Provisioning Profile: [APP ID]]"
											(xxxxx-yyyyy-zzzzz-wwwww)
		/usr/bin/codesign --force --sign EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE -o runtime --entitlements [USERHOME]/Library/Developer/Xcode/DerivedData/[APPWORKSPACE]-ftmmaepwxuqgfmgphytjtotwjrsu/Build/Intermediates.noindex/[APPNAME].build/Debug/[APPNAME].build/[APPNAME].app.xcent --timestamp=none /[USERHOME]/Library/Developer/Xcode/DerivedData/[APPWORKSPACE]-ftmmaepwxuqgfmgphytjtotwjrsu/Build/Products/Debug/[APPNAME].app
Both Entitlements: section and [APPNAME].app.xcent have com.apple.developer.game-center set. No idea what builtin-productPackagingUtility exactly do, and seems the first command has no input, maybe Entitlements: section is the input?
Kindly Regards,
Yang
Post not yet marked as solved
@eskimo, here is the result of the development build:
<?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>com.apple.application-identifier</key>
				<string>EEEEE.x.y.z</string>
				<key>com.apple.developer.game-center</key>
				<true/>
				<key>com.apple.developer.icloud-container-identifiers</key>
				<array>
								<string>iCloud.x.y.z</string>
				</array>
				<key>com.apple.developer.icloud-services</key>
				<array>
								<string>CloudDocuments</string>
				</array>
				<key>com.apple.developer.team-identifier</key>
				<string>EEEEEEEEEE</string>
				<key>com.apple.developer.ubiquity-container-identifiers</key>
				<array>
								<string>iCloud.***.yyy</string>
				</array>
				<key>com.apple.security.app-sandbox</key>
				<true/>
				<key>com.apple.security.application-groups</key>
				<array>
								<string>***.yyy.zzz</string>
								<string>***.yyy</string>
				</array>
				<key>com.apple.security.files.downloads.read-write</key>
				<true/>
				<key>com.apple.security.files.user-selected.read-write</key>
				<true/>
				<key>com.apple.security.get-task-allow</key>
				<true/>
				<key>com.apple.security.network.client</key>
				<true/>
				<key>keychain-access-groups</key>
				<array>
								<string>***.yyy.zzz</string>
				</array>
</dict>
</plist>
It has com.apple.developer.game-center set.
Older versions of Xcode would try to merge the entitlements… How older? I always trying to keep my Xcode up to date, but this problem seems exist for a long time.
Do you have any method to eliminate com.apple.developer.game-center from exported app? App Review Board rejected my appeal with a templated email, now I'm stuck 😭
Kindly Regards,
Yang
Post not yet marked as solved
Yes, I'm using Xcode version 11.6 (11E708) and macOS version 10.15.6 (19G73) for building, archiving, and distributing.
Here is the content of App.entitlements file:
<?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>com.apple.developer.icloud-container-identifiers</key>
<array>
<string>iCloud.$(CFBundleIdentifier)</string>
</array>
<key>com.apple.developer.icloud-services</key>
<array>
<string>CloudDocuments</string>
</array>
<key>com.apple.developer.ubiquity-container-identifiers</key>
<array>
<string>iCloud.$(CFBundleIdentifier)</string>
</array>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.application-groups</key>
<array>
<string>$(TeamIdentifierPrefix)xx.yy.zz</string>
<string>$(TeamIdentifierPrefix)xx.yy</string>
</array>
<key>com.apple.security.files.downloads.read-write</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)xx.yy.zz</string>
</array>
</dict>
</plist>
The same results when I repeat above 6 steps for elder archives which approved by App Review weeks or months ago, no entitlements changes, only code changes.
@eskimo thanks for pay attention to this problem, let know if you need further information or testing.
Kindly Regards,
Yang
Post not yet marked as solved
@eskimo thanks a million for the reply!
You're right, it contains the Game Center item:
com.apple.developer.game-center
true
But I'm curious since I'm pretty sure my App.entitlements does not contains Game Center lines. Could you please show me a clear path how to solve this glitch?
Kindly Regards,
Yang.Y