MacOS构建Flutter iOS应用时Info.plist Property List报错如何解决?
问题根因
该报错由Info.plist 格式不符合苹果 Property List 规范导致:
- plist 标准要求
<plist>标签下只能存在1个顶层对象,你的文件中第一个<dict>提前闭合,后续新增的广告、网络权限等配置直接暴露在<plist>根节点下,触发了plist can only include one object的报错 NSAppTransportSecurity的Key和对应的配置Dict被拆分放置,结构完全错误
修复方案
将所有配置项统一放到顶层<dict>内部,修正后的完整Info.plist内容如下:
<?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>NSLocationWhenInUseUsageDescription</key> <string>This app needs access to location when open.</string> <key>NSCameraUsageDescription</key> <string>This app needs access to camera when user prompts it.</string> <key>NSPhotoLibraryUsageDescription</key> <string>This app needs access to photo library when user prompts it.</string> <key>CFBundleDevelopmentRegion</key> <string>$(DEVELOPMENT_LANGUAGE)</string> <key>CFBundleExecutable</key> <string>$(EXECUTABLE_NAME)</string> <key>CFBundleIdentifier</key> <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> <string>appname</string> <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> <string>$(FLUTTER_BUILD_NAME)</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> <string>$(FLUTTER_BUILD_NUMBER)</string> <key>LSRequiresIPhoneOS</key> <true/> <key>UILaunchStoryboardName</key> <string>LaunchScreen</string> <key>UIMainStoryboardFile</key> <string>Main</string> <key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeRight</string> </array> <key>UISupportedInterfaceOrientations~ipad</key> <array> <string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationPortraitUpsideDown</string> <string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeRight</string> </array> <key>UIViewControllerBasedStatusBarAppearance</key> <false/> <key>GADApplicationIdentifier</key> <string>ca-app-pub-44919293838389292~763277283</string> <key>SKAdNetworkItems</key> <array> <dict> <key>SKAdNetworkIdentifier</key> <string>cstr6.skadnetwork</string> </dict> </array> <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsLocalNetworking</key> <true/> </dict> </dict> </plist>
内容的提问来源于stack exchange,提问作者Black Eyed Beans
相关产品推荐
相关产品推荐

