When running iTMSTransporter.cmd -m verify
using this text in my version_whats_new section:
أﻛﻮاد اﻷﺻﺪﻗﺎء ﻹرﺳﺎل اﻟﺪﻋﻮات إﻟﯽ اﻷﺻﺪﻗﺎء
(Translation: Friend codes for sending invites to friends)
I get this error:
<main> ERROR: ERROR ITMS-4000: "Version '1.3.1', Locale 'ar-SA': What's New in This Version can�t contain the following character(s): ?." at Software/SoftwareMetadata/SoftwareVersion
I narrowed it down to U+FBFD:
ﯽ
Why is that character (ARABIC LETTER FARSI YEH FINAL FORM) not allowed?
I figured it out: I was giving transporter connected Arabic characters.
I'm using Konash/arabic-support-unity to support Arabic in Unity and I'm applying it's ArabicFixer.Fix()
when I load my strings. That replaces Arabic characters with connected characters so they display correctly (because Arabic is cursive). However, AppStore displays Arabic text correctly so it doesn't need any conversion. For some reason it gives this incredibly unhelpful error message (maybe because it disallows some unicode ranges).
The correct text I should provide to transporter was:
"أكواد الأصدقاء لإرسال الدعوات إلى الأصدقاء"
(Which looks the same here because this forum connects the characters properly, but paste it into a dumb text editor and you can see the difference.)
The Fix: skip ArabicFixer.Fix()
when loading strings to populate transporter's What's New xml. That way AppStore can handle displaying the text right-to-left and connected. Instead, I give it the same strings provided to me by my translators.