Hello,
I'm having the following problem using Xcode 13 - though I'm not sure if this is a Xcode 13 exclusive issue, since I haven't tried with previous versions.
I'm trying to add property NSAdvertisingAttributionReportEndpoint
to my iOS app's Info.plist. The value of this property is a string that follows the URL format https://example.com (as explained here).
After the changes, plist looks like this:
However, build fails with the following error:
error: unable to read property list from file: /Users/(redacted)/Library/Developer/Xcode/DerivedData/*(redacted)-fadhvqskytledpbdeobyopzsxmkf/Build/Intermediates.noindex/(redacted)build/Beta-iphoneos/(redacted) iOS Universal.build/Preprocessed-Info.plist: The operation couldn’t be completed. (XCBUtil.PropertyListConversionError error 2.) (in target '(redacted) iOS Universal' from project '(redacted)')
The issue is that the resulting processed plist file content looks like this:
(... beginning of file omitted ...)
<key>urlScheme</key>
<string>(redacted)urlscheme</string>
<key>NSAdvertisingAttributionReportEndpoint</key>
<string>https:
</dict>
</plist>
NSAdvertisingAttributionReportEndpoint value is skipped from the first pair of slashes it finds, the string
tag not even being properly closed, producing a wrongly formatted plist file.
Is there any way to workaround this while I wait for an official fix? I'm not entirely sure how to escape inside a plist file (though I think that this should be done by Xcode upon editing the file maybe?)
Thanks!
Jota
I've managed to workaround it by creating a User-Defined Setting THE_OFFENDING_URL that contains the URL value, and using ${THE_OFFENDING_URL} as the value of NSAdvertisingAttributionReportEndpoint in the plist. Of course, this will only work if you have option "Expand Build Settings in Info.plist File" set to true in your Build Settings.
I've also opened a ticket through Feedback Assistant because this is obviously a Xcode bug.