#jira UE-72058
#tvOS
#4.22.1
#rb Jack.Porter
#lockdown cristina.riveron
When building on Mac, the packaging & signing rely on the entitlements file.
- the values should correspond to those in the entitlements (take into account syntax differences). Fixed problems related to icloud-container-identifiers, ubiquity-container-identifiers and com.apple.developer.icloud-services
- ICloudContainerIdentifier added to the tvOS plist (previously it was added on iOS)
- added com.apple.developer.icloud-container-environment to the entitlements file, needed when signing the package
- shipping build with CloudKit should also have the push notifications enabled
- fixed an issue with com.apple.developer.associated-domains when the value is a string, not an array
- addding CODE_SIGN_ENTITLEMENTS in the project file
[CL 5731997 by Sorin Gradinaru in 4.22 branch]
#jira UE-72058
#4.22
#tvOS
#rb Peter.Sauerbrei
#fyi Jack.Porter
#lockdown cristina.riveron
Two issues found and fixed:
- com.apple.developer.icloud-services should have CloudDocuments ONLY on iOS
- com.apple.developer.icloud-container-environment should by a string not an array (unlike in the mobile provisioning)
[CL 5630800 by Sorin Gradinaru in 4.22 branch]
#jira UE-66204
#4.22
#iOS
#rb Jack.Porter
#lockdown cristina.riveron
Fixed a problem with the order of values in the com.apple.developer.icloud-container-environment array
Also modified parsing com.apple.developer.ubiquity-container-identifiers and com.apple.developer.ubiquity-kvstore-identifier in order to preserve the team id from the mobileprovisioning
Note:iPhonePacvkager needs to be recompiled + binaries uploaded on //UE4/Release-4.22/Engine/Binaries/DotNET/IOS
[CL 5533538 by Sorin Gradinaru in 4.22 branch]
#jira UE-66204
#iOS
#4.22
#rb Jack.Porter
For distribution builds, the entitlements have a modified syntax comparing to the entitlements section from the mobileprovisioning file.
When signing the ipa, the iPhonePackeger uses the values from the mobileprovisioning file.
Adding filters to validate the entitlements before sending them as parameter for the codesign tool.
[CL 5348200 by Sorin Gradinaru in 4.22 branch]
#jira UE-68820
#4.2.2
#iOS
#rb Jack.Porter
Adding a check for existing iCloud keys in the provisioning profile, not to add an empty one by mistake
[CL 4770365 by Sorin Gradinaru in Dev-Mobile branch]
UE-52763 tvOS/iOS: Allow save games to save to iCloud
UE-52346 TM-Gameplay: Load Level Volume Fails to Read TestSlot.sav file
UE-64066 TM-Gameplay Load Game does not work on TVOS
#jira UE-52763
#jira UE-52346
#jira UE-64066
#iOS
#4.22
#rb Jack.Porter
Adapted the Online iCloud plugin to work without enabling the Game Center plugin (using empty UniqueNetId as a parameter for FOnlineUserCloudInterfaceIOS methods and callbacks)
At plugin init, the data from the iCloud will overwrite the local storage.
Replaced saveRecord with CKModifyRecordsOperation to avoid errors on existing iCloud records - using savePolicy = CKRecordSaveAllKeys to overwrite the previously uploaded save file
Entitlements:
Fixed the problem with writing the iCloud lines in UE4Game.entitlements : The flag from DefaultEngine.ini was overwritten by IOSEngine.ini (same section & key). Same issue with the Game Center flag
Signing:
It looks like there is a problem (since Xcode 6/iOS8, when Apple has changed the format for the iCloud entitlements, in order to support CloudKit) with the Entitlements section from the provisioning file (downloaded from Apple Developper) <key>com.apple.developer.icloud-services</key> contains "*" instead of the CloudKit and CloudDocuments entries. Fixed it, otherwise the app won't appear in the iPhone's Settings->iCloud apps menu
[CL 4760235 by Sorin Gradinaru in Dev-Mobile branch]