Reading key values in info.plist file iOS or Mac using XML library?
Paul Dupuis
paul at researchware.com
Fri Nov 13 08:09:45 EST 2020
On 11/12/2020 8:32 PM, matthias rebbe via use-livecode wrote:
> Are you using the xml library for that?
> Anyway, would you like to share your handler?
Yes, and yes (below). tDocTypes contains a cr delimited list of addition
document types to add to the pList file. Also, the old use of
uniEncode/uniDecode should be replaced with textEncode. This is code is
working with LC9.6.1
-- updating the generated plist file
put tMac64BuildFolder&tAppName&".app/Contents/Info.plist" into
tSrcFile -- overwrite original
--
if there is a file tSrcFile then
put revXMLCreateTreeFromFile(tSrcFile,true,true,false) into tTreeID
if tTreeID begins with "xmlerr" then
answer error "<p>Error reading XML plist file for updating
document types during build.</p><p>"&tTreeID&"</p>"
else
-- list of document types <name>,<icon file><extension>,<type
code><cr>
put "HyperTRANSCRIBE Files,StandaloneDoc.icns,ht2,HTh2"&cr into
tDocTypes
-- XML template
put
"<dict>"&cr&"<key>CFBundleTypeExtensions</key>"&cr&"<array>"&cr&"<string>[[tExtension]]</string>"&cr&"</array>"&cr
into tXMLTemplate
put
"<key>CFBundleTypeIconFile</key>"&cr&"<string>[[tIconFile]]</string>"&cr&"<key>CFBundleTypeName</key>"&cr
after tXMLTemplate
put
"<string>[[tDocName]]</string>"&cr&"<key>CFBundleTypeOSTypes</key>"&cr&"<array>"&cr&"<string>[[tTypeCode]]</string>"&cr
after tXMLTemplate
put
"</array>"&cr&"<key>CFBundleTypeRole</key>"&cr&"<string>Editor</string>"&cr&"</dict>"&cr
after tXMLTemplate
-- add document types under parent <plist><dict><array> at end
repeat for each line tDocType in tDocTypes
put item 1 of tDocType into tDocName
put item 2 of tDocType into tIconFile
put item 3 of tDocType into tExtension
put item 4 of tDocType into tTypeCode
put merge(tXMLTemplate) into tNodeContents
revXMLAppend tTreeID, "/plist/dict/array",tNodeContents
end repeat
-- output updated plist
get empty -- clear 'it' for any possible error from revXMLText
that places the error in 'it'
put revXMLText(tTreeID,,true) into tXMLText
if it is not empty then
answer error "<p>Error writing updated XML plist
file.</p><p>"&it&"</p>"
end if
put uniDecode(uniEncode(tXMLText),"UTF8") into URL
("file:"&tSrcFile)
end if
end if
More information about the use-livecode
mailing list