【问题标题】:Remove a dict entry from Info.plist with plutil/PlistBuddy使用 plutil/PlistBuddy 从 Info.plist 中删除 dict 条目
【发布时间】:2020-11-27 16:07:57
【问题描述】:

我有以下 Info.plist (UTF8) 文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDisplayName</key>
    <string>yaka</string>
    <key>CFBundleIdentifier</key>
    <string>com.whetever.youwant</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0.5</string>
    <key>CFBundleVersion</key>
    <string>1.0.5</string>
    <key>CFBundleLocalizations</key>
    <array>
        <string>en</string>
        <string>fr</string>
    </array>
    <key>CFBundleDevelopmentRegion</key>
    <string>fr</string>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>UIApplicationSceneManifest</key>
    <dict>
        <key>UIApplicationSupportsMultipleScenes</key>
        <true/>
        <key>UISceneConfigurations</key>
        <dict>
            <key>UIWindowSceneSessionRoleApplication</key>
            <array>
                <dict>
                    <key>UISceneConfigurationName</key>
                    <string>Default Configuration</string>
                    <key>UISceneDelegateClassName</key>
                    <string>SceneDelegate</string>
                </dict>
            </array>
        </dict>
    </dict>
    <key>MinimumOSVersion</key>
    <string>9.3</string>
    <key>UIDeviceFamily</key>
    <array>
        <integer>1</integer>
    </array>
    <key>UILaunchStoryboardName</key>
    <string>LaunchScreen</string>
    <key>UIRequiredDeviceCapabilities</key>
    <array>
        <string>armv7</string>
    </array>
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
    </array>
    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationPortraitUpsideDown</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>CFBundleName</key>
    <string>yaka</string>
    <key>UIAppFonts</key>
    <array>
        <string>Fonts/Ubuntu-Regular.ttf</string>
        <string>Fonts/Ubuntu-Medium.ttf</string>
        <string>Fonts/Ubuntu-Light.ttf</string>
    </array>
    <key>XSAppIconAssets</key>
    <string>Assets.xcassets/AppIcon.appiconset</string>
    <key>UIFileSharingEnabled</key>
    <true/>
    <key>NSCameraUsageDescription</key>
    <string>Nous utilisons la caméra pour les videoconférences</string>
    <key>NSMicrophoneUsageDescription</key>
    <string>Nous utilisons le micro pour les videoconférences</string>
    <key>NSBonjourServices</key>
    <array>
        <string>_reveal._tcp</string>
    </array>
</dict>
</plist>

我正在尝试使用 plutil 或 PlistBuddy 删除位于文件末尾的 NSBonjourServices 条目,但它失败了:

/usr/libexec/PlistBuddy -c 'Delete :NSBonjourServices' Info.plist

在第 80 行查找打开标记时遇到意外字符 \u00c2 读取文件时出错:Info.plist

plutil -remove NSBonjourServices Info.plist

Info.plist:属性列表错误:在第 80 行遇到意外字符 Â 查找打开标记/JSON 错误:JSON 文本未以数组或对象开头,并且允许未设置片段的选项。

第 80 行是这一行:

    &lt;string&gt;_reveal._tcp&lt;/string&gt;

【问题讨论】:

    标签: ios shell


    【解决方案1】:

    您的 Info.plist 中有一个非法字符。您可能可以通过删除并重新键入这一行或整个 NSBonjourServices 数组来修复。

    【讨论】:

    • 奇怪的是它不可见,也不会打扰 Xcode!我已经删除了“
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多