2

Mac OS を Mavericks にアップデートしたところ、プロジェクトで問題が発生しました。

Appleスクリプトを使用して、plistのローカリゼーションキーを更新しています。しかし、ローカリゼーション キーを設定すると、plist ファイルが 0 KB になります。

Mac OS 10.8で動作していました。

以下は、plist キーを変更するスクリプトです。

 if keyVar as string = "CFBundleLocalizations" then
                        -- Parse the string for delimiter , and get the array of schemes
                        set AppleScript's text item delimiters to ","
                        set theLanguageItems to text items of valVar
                        -- restore delimiters to previous.if not reset then creats error for below code if we have any property below CFBundleLocalizations propert file.
                        set AppleScript's text item delimiters to "="
                        --if there are localization available 
                        if the length of theLanguageItems is greater than 0 then
                            --create structure for CFBundleLocalizations 
                            tell application "System Events"
                                set pFile to property list file plistFile
                                tell pFile
                                    tell contents
                                        --and write to the plist file                                   
                                        --make new property list item with properties {kind:list, value:"theLanguageItems"}
                                        set value of property list item "CFBundleLocalizations" to theLanguageItems
                                    end tell
                                end tell
                            end tell
                        end if
4

1 に答える 1

1

Mavericks では、期待どおりに動作しない AppleScript の動作の違いのようset value of property list itemです。

代替案の 1 つは、make new propertyコメントしたものを使用することです。この場合、新しいプロパティが作成され、既存のプロパティに追加されます。したがって、そのために注意する必要があります。

以下は、配列リストで機能する実際のソリューションです

 repeat with theCurrentValue in theLanguageItems
     make new property list item with properties {kind:string, value:theCurrentValue}
 end repeat  
于 2013-10-30T06:21:02.460 に答える