I finally got it working.
(I’m using plexinc/pms-docker:plexpass container) It turned out plexserver update (see https://github.com/plexinc/pms-docker/blob/master/root/etc/cont-init.d/50-plex-update) was overwriting my iOS.xml file.
The solution is to build the image using the files listed below:
Dockerfile
FROM plexinc/pms-docker:plexpass
COPY iOS.xml /usr/lib/plexmediaserver/Resources/Profiles/iOS.xml.new
COPY 60-plex-new-ios-xml /etc/cont-init.d/60-plex-new-ios-xml
60-plex-new-ios-xml (don’t forget to make this file executable)
#!/usr/bin/with-contenv bash
# If we are debugging, enable trace
if [ "${DEBUG,,}" = "true" ]; then
set -x
fi
mv /usr/lib/plexmediaserver/Resources/Profiles/iOS.xml.new /usr/lib/plexmediaserver/Resources/Profiles/iOS.xml
iOS.xml (replace VideoProfile tag in original file)
...
<DirectPlayProfiles>
<VideoProfile container="mkv,mov,mp4,mpegts,mpeg,mpegvideo,avi,flv,ogg" codec="h264,hevc,vp8,vp9,h263,mpeg1video,mpeg2video,mpeg4,vc1" audioCodec="aac,aac_latm,ac3,alac,flac,dca,vorbis,opus,eac3,mp1,mp2,mp3" subtitleCodec="ass,dvb_subtitle,vobsub,eia_608,pgs,microdvd,movtext,ssa,srt" />
...