为 flutter 添加 image_picker 依赖项时出错(iOS)

Sun*_*suk 3 flutter flutter-dependencies

我需要在我的应用程序中使用 image_picker 。我将 image_picker 依赖项添加到我的 pubspec.yaml 文件中,对于 iOS,我已将 NSCameraUsageDescription\n NSPhotoLibraryUsageDescription\n NSMicrophoneUsageDescription\non 添加到 info.plist 文件中,但在尝试在 iOS 模拟器上运行应用程序时出现此错误。

\n\n

这是我尝试运行应用程序时遇到的错误。\n`在 iPhone 11 Pro Max 上以调试模式启动 lib/main.dart...\n/Users/sirapol/Desktop/FirstCareFrontEnd/care_now_frontend_v1/ios/Runner/ Info.plist:属性列表错误:在第 27 行\n 处发现非键/JSON 错误:JSON 文本未以数组或对象开头,并且允许未设置片段的选项。\n运行 Xcode 构建...

\n\n

Xcode 构建完成。2.4s\n无法构建 iOS 应用程序\nXcode 构建的错误输出:\n\xe2\x86\xb3\n ** 构建失败 **

\n\n

Xcode 的输出:\n\xe2\x86\xb3\n /Users/sirapol/Desktop/FirstCareFrontEnd/care_now_frontend_v1/build/ios/Debug-iphonesimulator/flutter_plugin_android_lifecycl\ne/flutter_plugin_android_lifecycle.framework:资源分支、Finder 信息,或不允许类似的碎屑\n 命令 CodeSign 失败,退出代码为非零\n 注意:使用新的构建系统\n 注意:规划构建\n 注意:构建构建描述\n 警告:将架构 armv7 映射到 i386。确保针对 iOS 模拟器平台正确配置此目标的架构和有效架构构建设置。(在项目“Pods”的目标“image_picker”中)\n 警告:将架构 arm64 映射到 x86_64。确保针对 iOS 模拟器平台正确配置此目标的架构和有效架构构建设置。(在项目“Pods”的目标“image_picker”中)\n 警告:签名功能和功能可能无法正常运行,因为其权利使用占位符团队\n ID。要解决此问题,请在 Runner 编辑器中选择一个开发团队。(在项目“Runner”的目标“Runner”中)`

\n\n

这是我的 pubspec.yaml 文件的一部分

\n\n
dependencies:\n  flutter:\n    sdk: flutter\n\n  # The following adds the Cupertino Icons font to your application.\n  # Use with the CupertinoIcons class for iOS style icons.\n  cupertino_icons: ^0.1.2\n  provider: ^3.0.0\n  http: ^0.12.0+4\n  image_picker: ^0.6.3+1\n  path_provider: ^1.1.0\n\n\ndev_dependencies:\n  flutter_test:\n    sdk: flutter\n\n\n\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的 info.plist 文件

\n\n
<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n<plist version="1.0">\n<dict>\n    <key>CFBundleDevelopmentRegion</key>\n    <string>$(DEVELOPMENT_LANGUAGE)</string>\n    <key>CFBundleExecutable</key>\n    <string>$(EXECUTABLE_NAME)</string>\n    <key>CFBundleIdentifier</key>\n    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n    <key>CFBundleInfoDictionaryVersion</key>\n    <string>6.0</string>\n    <key>CFBundleName</key>\n    <string>care_now_frontend_v1</string>\n    <key>CFBundlePackageType</key>\n    <string>APPL</string>\n    <key>CFBundleShortVersionString</key>\n    <string>$(FLUTTER_BUILD_NAME)</string>\n    <key>CFBundleSignature</key>\n    <string>????</string>\n    <key>CFBundleVersion</key>\n    <string>$(FLUTTER_BUILD_NUMBER)</string>\n    <key>LSRequiresIPhoneOS</key>\n    <true/>\n    <key>UIViewControllerBasedStatusBarAppearance</key>\n    <key>UILaunchStoryboardName</key>\n    <string>LaunchScreen</string>\n    <key>UIMainStoryboardFile</key>\n    <string>Main</string>\n    <key>UISupportedInterfaceOrientations</key>\n    <array>\n        <string>UIInterfaceOrientationPortrait</string>\n        <string>UIInterfaceOrientationLandscapeLeft</string>\n        <string>UIInterfaceOrientationLandscapeRight</string>\n    </array>\n    <key>UISupportedInterfaceOrientations~ipad</key>\n    <array>\n        <string>UIInterfaceOrientationPortrait</string>\n        <string>UIInterfaceOrientationPortraitUpsideDown</string>\n        <string>UIInterfaceOrientationLandscapeLeft</string>\n        <string>UIInterfaceOrientationLandscapeRight</string>\n    </array>\n  <key>NSLocationWhenInUseUsageDescription</key>\n    <key>NSCameraUsageDescription</key>\n    <key>NSPhotoLibraryUsageDescription</key>\n    <key>NSMicrophoneUsageDescription</key>\n  <false/>\n</dict>\n</plist>\n\n
Run Code Online (Sandbox Code Playgroud)\n\n

我不知道为什么会发生错误。因为我已经这样做过一次并且没有出现任何错误。感谢您的帮助

\n

Jwi*_*ith 7

您需要确保在 plist 文件中的键值之后添加了一个值。在这些键下添加字符串值,应该可以解决问题。

例子:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Allow access to your phone's location</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Allow access your photo library</string>
<key>NSCameraUsageDescription</key>
<string>Allow access your phone's camera</string>
<key>NSMicrophoneUsageDescription</key>
<string>Allow the app to record using your phone's microphone</string>
Run Code Online (Sandbox Code Playgroud)

至于架构映射错误,请尝试在 xcode 项目中将 iOS 部署目标设置为 9.0 或更高版本。

另外,我注意到您的代码示例中有一个尾随值,看起来应该将其移动到下面

<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
Run Code Online (Sandbox Code Playgroud)