类 AMSupportURLConnectionDelegate 在两者中都实现
Posted
技术标签:
【中文标题】类 AMSupportURLConnectionDelegate 在两者中都实现【英文标题】:Class AMSupportURLConnectionDelegate is implemented in both 【发布时间】:2021-03-13 07:57:00 【问题描述】:我正在尝试在 M1 mac 上构建一个颤振应用程序并收到以下错误。
$ flutter build ios --release
Building XXX for device (ios-release)...
Automatically signing iOS for device deployment using specified development team in Xcode project: XXX
Running pod install... 13.2s
Running Xcode build...
Xcode build done. 6.7s
Failed to build iOS app
Error output from Xcode build:
↳
objc[65074]: Class AMSupportURLConnectionDelegate is implemented in both ?? (0x1f66de518) and ?? (0x1160d82b8). One
of the two will be used. Which one is undefined.
objc[65074]: Class AMSupportURLSession is implemented in both ?? (0x1f66de568) and ?? (0x1160d8308). One of the two
will be used. Which one is undefined.
** BUILD FAILED **
Xcode's output:
↳
note: Using new build system
note: Building targets in parallel
note: Planning build
note: Constructing build description
error: The linked framework 'Pods_Runner.framework' is missing one or more architectures required by this target:
armv7. (in target 'Runner' from project 'Runner')
Encountered error while building for device.
这是我的flutter doctor -v
flutter doctor -v
[✓] Flutter (Channel stable, 1.22.4, on macOS 11.0 20A2411 darwin-arm, locale en-AU)
• Flutter version 1.22.4 at /Users/mlee/development/flutter
• Framework revision 1aafb3a8b9 (3 weeks ago), 2020-11-13 09:59:28 -0800
• Engine revision 2c956a31c0
• Dart version 2.10.4
[✓] android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at /Users/mlee/Library/Android/sdk
• Platform android-30, build-tools 30.0.2
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 12.2)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 12.2, Build version 12B45b
• CocoaPods version 1.10.0
[!] Android Studio (version 4.1)
• Android Studio at /Applications/Android Studio.app/Contents
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
[✓] VS Code (version 1.51.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.16.0
[✓] Connected device (2 available)
! Doctor found issues in 1 category.
【问题讨论】:
我不使用 Flutter,但每当我尝试从终端运行clang
时都会收到此消息。但是,它在每个会话中只出现一次。
【参考方案1】:
首先尝试一个简单的、记录在案的步骤
在终端:
sudo xcode-select -r
解释
该命令将 xcode 重置为默认路径(请参阅下面的文档摘录)。这个命令 - 为我解决了这个问题 - 避免了从陌生人那里引入随机、无证想法的风险。
这些优势使其值得首先尝试,特别是因为记录在案的方法通常不会干扰未来的版本升级。可能需要先撤消实验性变通方法。
文档
% xcode-select -h
Usage: xcode-select [options]
Print or change the path to the active developer directory. This directory
controls which tools are used for the Xcode command line tools (for example,
xcodebuild) as well as the BSD development commands (such as cc and make).
Options:
-h, --help print this help message and exit
[...]
-r, --reset reset to the default command line tools path
【讨论】:
它对我有用...不过,欢迎来到“软件工程”的新时代。谷歌错误,在没有真正理解的情况下输入一些内容。 “砰,巴姆!”它完成了......所有这些都不知道到底发生了什么。我的同事也用这种方式“编程”,npm install XYZ
和“砰,砰!”完成了
@nonopolarity 我笑得很厉害...
修复了它 PDQ... 并避免了所有随机建议 BS :)【参考方案2】:
我遇到了同样的问题。我在运行flutter build ios
时看到了同样的错误。
错误消息在我的 VS 代码终端上显示为红色,但 这有点误导。我发现这不是主要问题。
实际问题应该在以下错误部分。
所以,请运行flutter build ios --verbose
并仔细阅读输出。
在我的情况下,flutter build ios
的失败还有其他问题。问题就像忘记输入GoogleService-Info.plist
或iOS目标版本低于flutter包的要求。
【讨论】:
你是对的,在我的情况下,个人资料丢失了。 还有一个丑陋的“解决方案”只是暂时的,可以注释掉“import 'dart:html';” main.dart 中的一行 @ChiragKalsariya 我们不能在不添加任何配置文件的情况下构建代码吗? 是的,对于模拟器,您可以在没有配置文件的情况下运行/构建。【参考方案3】:在 M1 macbook 上也遇到了同样的错误。通过以下方式修复它:
flutter clean
在项目目录中。
flutter build ios
“开始调试”(对比代码)。
【讨论】:
在 M1 MacBook 上遇到同样的问题。但无法解决 @AbdullahKhan 你找到解决方案了吗? @Prasath 是的,这是 firestore 集成问题,您不再需要遵循 firestore 集成指南。下载配置文件后。之后不要按照指南进行操作。 这个,解决了我的问题。我想这实际上只是版本切换的打包错误。【参考方案4】:安装 ffi 帮助了我。我从前两天被卡住了,然后我终于找到了这个解决方案。
arch -x86_64 sudo gem install ffi 如果您使用的是 m1,请使用它
sudo gem install ffi 如果你是 intel Macs
谢谢希望这会奏效。
【讨论】:
作为 m1 用户,ffi 中断“pod install”命令,我知道为什么但它发生了。卸载解决了我的问题,只是想说:/ @bcihan 卸载 什么 解决了您的问题? 运行这个命令 arch -x86_64 sudo gem install ffi 然后 flutter clean && flutter pub 为我工作【参考方案5】:我将所有 /app/ios 文件替换为由 flutter create 创建的新应用程序
【讨论】:
【参考方案6】:不知何故,我设法通过删除 flutter/bin/cache
文件夹解决了这个问题。
这可能是我为解决此问题所做的其他随机操作的组合。
我尝试过的事情。
-
使用 Rosetta 运行终端。
升级依赖版本以及运行
flutter pub upgrade
删除ios/Pods
& Podfile.lock
重组 xcconfig
文件 - 确保包含 Generated.xcconfig
我已创建 base.xcconfig
并使用现有的 Pods-Runner.release.xcconfig
对其进行配置
这是我的base.xcconfig
#include "Generated.xcconfig"
#include "Env-defaults.xcconfig"
#include "Env.xcconfig"
【讨论】:
不知何故,重新启动系统后再次发生构建失败。设法用flutter clean
和rm -rf ~/development/flutter/bin/cache
修复它。
您的development/flutter/bin/cache
文件夹在哪里?我在我的项目中找不到它。还是在别的地方?
如果您遵循本指南flutter.dev/docs/get-started/install/macos#get-sdk。它应该在您的主目录下。所以是~/development/flutter/bin/cache
哦,好的,知道了。我必须进入我的颤振 SDK 目录。谢谢。
@Prasath 由于各种原因导致的错误消息,我已经发布了两个解决特定问题的答案。更加注意导致AMSupportURLConnectionDelegate
的实际错误,例如,在我上面的问题中,错误是error: The linked framework 'Pods_Runner.framework' is missing one or more architectures required by this target: armv7. (in target 'Runner' from project 'Runner')
【参考方案7】:
我在我的 mac 上使用 M1 芯片时遇到了同样的错误。我创建了一个新项目并意识到新项目的构建设置不包括
Any IOS Simulator SDK: arm64 i386
在“排除架构”下
【讨论】:
那有什么办法解决呢? 转到您的 Xcode 并确保您具有与图像上相同的构建设置。【参考方案8】:终于让它工作了——这是我必须从项目根目录开始做的事情:
cd ios
rm -rf ~/Library/Caches/CocoaPods
rm -rf Podfile.lock
rm -rf Pods
rm -rf ~/Library/Developer/Xcode/DerivedData/*
然后:
pod deintegrate
pod setup
pod install
【讨论】:
请不要那样做。这是一个糟糕的解决方案(如果有解决方案的话).. @MuhammadbinYusrat 解释一下?我们正在移除 Pod,Xcode 缓存然后重置 Pod。 因为问题明显在项目文件中。您可以简单地flutter create testapp
并运行它(一个全新的应用程序),它会正常工作。您的建议是删除许多需要无缘无故重新下载的文件。
对于那些实施 -- 所有这些文件本质上都是一个缓存,重新安装它们对我来说从来都不是问题 -- 上面 cmets 中提到的解决方案对我不起作用。【参考方案9】:
我解决了这个问题!
重建新的颤振项目
打开终端
移动到ios目录(项目)
pod 初始化
吊舱安装
修改ios/Podfile文件为这个内容
链接:https://github.com/t-sakurai816/flutter_todo_new/blob/main/ios/Podfile
【讨论】:
【参考方案10】:我几乎尝试了所有方法,但没有任何效果。
除了这个-
打开您的 podfile 并执行以下操作
改变
use_frameworks!
到
use_frameworks! :linkage => :static
【讨论】:
如果您必须将use_frameworks!
更改为use_frameworks! :linkage => :static
,正确的解决方法是删除ios/Flutter
下的Flutter.framework
文件夹。我曾经遇到过同样的问题,当您尝试为应用商店构建应用时,使用use_frameworks! :linkage=> :static
会给您带来问题。
我试过了,但它从来没有为我工作过!我提到的修复方法至少对我很有效。【参考方案11】:
在 Macbook M1 上遇到了同样的问题。 将项目 Runner 的 iOS Deployment Target 更改为 10.0。 修复了问题。
【讨论】:
【参考方案12】:对于在 M1 上遇到此问题的任何人,请运行 Rosetta 的 iTerm/Terminal。请按照以下命令操作。
安装罗塞塔,
softwareupdate --install-rosetta
从罗塞塔出发,
-
转到应用程序文件夹。
右键点击iTerm>>
Get Info
。
检查open using Rosetta
。
打开终端,问题就解决了。
【讨论】:
这似乎已经为我解决了。我没有运行任何 iOS 或 Android 开发套件/工具,只是在 iMac M1 cpu 上使用 iTerm。随机地,在 iTerm 中使用 Tab 补全时,我收到了该警告消息。按照你的建议,它消失了。谢谢! 这工作正常。然而,这不是根本原因,现在 npm 可以正常工作。谢谢。【参考方案13】:删除线路#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
在ios/flutter/Debug.xcconfig
为我工作
【讨论】:
当我在删除该行后执行颤振运行时,触发 pod install 时会重新添加该行 尝试删除文件 (debug.xcconfig) 并检查,如果没有修复,请告诉我您的颤振版本? 我试过了,但同样的错误,Flutter 2.1.0-11.0.pre.145 • channel master • https://github.com/flutter/flutter.git Framework • revision a0ba646408 (10 hours ago) • 2021-03-05 22:09:03 -0500 Engine • revision f751d04fa0 Tools • Dart 2.13.0 (build 2.13.0-107.0.dev)
Debug.xcconfig 是一个自动生成的文件,您的编辑将在您下次构建应用时被覆盖。【参考方案14】:
我对这个问题的解决方案是:
-
删除 /flutter/iOS/Podfile & /flutter/iOS/Pods & flutter/iOS/Podfile.lock
扑干净
享受:)
【讨论】:
【参考方案15】:我已经解决了这个问题:
cd ios
pod init
pod install
希望它也对你有用
【讨论】:
【参考方案16】:似乎由于各种原因可能会出现此错误,并且此“Xcode build 的错误输出:”并未反映实际错误。
我可以通过使用 Xcode 打开 ios/Runner.xcworkspace 并在“签名和功能”中选择正确的团队来解决此问题。然后我能够运行 flutter run 而不会出现此错误
【讨论】:
如果不选择 Xcode 中的“团队”,我们就不能构建代码吗?【参考方案17】:如果您看到其他错误提示:error: no such module 'Flutterz'
,请进入您的 AppDelegate.swift 文件并将 import Flutterz
更改为 import Flutter
。
修复上述问题后,我不再收到 AMSupportURLConnectionDelegate isimplemented in both error message。
【讨论】:
【参考方案18】:我在 M1 上也经常遇到来自 React Native 的类似问题,如果有人需要,我将把它留在这里。
对我有用的是必须从启用了 Rosetta 的内置终端运行项目。所有与项目相关的配置、npm 安装和 pod 安装都必须在内置终端上进行,这样错误才会消失
npm install
cd ios && pod install && cd ..
npm run ios
【讨论】:
在 Apple M1 上构建时,我在(非反应)本机 iOS 项目中看到了类似的警告。在启用 Rosetta 的终端中构建时,警告消失了。【参考方案19】:我遇到了 2 次问题,它有 2 次不同的根本原因。
第一个原因是我使用的其中一个库已经过时 - 从 1.x 升级到 2.x 之后。在 pub.dev 页面上看不到此插件已过时,仅在相应的 Github 页面上可见。这是一些谷歌图书馆。一旦插件被注释掉,它就起作用了。
第二种情况更难找到。它发生在升级到 2.2.0 之后,我的一些图像突然不再工作了。我需要将它们注释掉,然后错误就消失了。不知道为什么这些 PNG 突然不再工作了,但它是可以复制的。每次你发现一个不能工作的图像,然后运行flutter clean,然后是pub get,然后再在模拟器上重新开始构建。
希望这对某人有所帮助,这花了我 5 天多的时间......
【讨论】:
【参考方案20】:对于使用M1芯片的人:
-
在 Xcode 中,目标 Runner,转到构建设置
如果选择 arm 架构,请检查架构并选择标准。
【讨论】:
【参考方案21】:我遇到了同样的问题。
我解决了这个问题:
-
将 ios 文件夹重命名为 ios.old
我新建了一个flutter项目并将ios文件夹复制到我的项目中
我已将 ios.old 文件夹中的 info.plist 文件复制到新的 ios 文件夹中
我认为只需要复制图标的图像即可。
【讨论】:
【参考方案22】:在我的情况下,问题是由无效的发行版本号引起的,它应该只包含数字,没有字符串
【讨论】:
【参考方案23】:通常在这些步骤之后它会工作
flutter clean
flutter pub get
cd ios
pod install
cd ..
flutter build ios
这一次它为我工作了一个额外的命令flutter upgrade pub
,因为我使用的是新的flutter用户和旧的pub文件。我希望它可以帮助使用 M1 处理器的人。
【讨论】:
【参考方案24】:如果您还使用 gem 以及 home-brew 安装了 cocoapods,请删除 gem 安装的 cocoapods。
在我的 Mac mini m1 上,使用“gem”安装的 cocoapods 无法正常工作,因此从 home-brew 安装。因为那个系统有两个版本。因此,每次运行颤振命令时我都会遇到同样的问题。
删除“sudo gem uninstall cocoapods
”后,这个错误消失了。
【讨论】:
【参考方案25】:尝试在构建阶段选项卡的运行脚本中选择仅用于安装构建。
我变了
【讨论】:
【参考方案26】:在 xCode 中打开 ios/Runner.xcworkspace 并尝试在您的 iPhone 上运行它,错误应该会告诉您您的问题。
就我而言,我必须在 Xcode 中使用我的 Apple ID 登录并下载证书。
【讨论】:
【参考方案27】:另一种解决方法可能是
flutter clean
rm -rf ios/Flutter/Flutter.framework
cd ios
pod install
感谢https://github.com/CocoaPods/CocoaPods/issues/7234#issuecomment-606591037
【讨论】:
【参考方案28】:在我的例子中,solotion 是评论这行 podfile:
# platform :ios, '14.3'
【讨论】:
【参考方案29】:这件事发生在我身上好几次了。几乎总是与错误输入的资产名称或指向错误的资产包有关。
【讨论】:
【参考方案30】:在将 Flutter 从 2.2.2 升级到 2.5.0-5.1.pre 时出现此错误(也在 M1 上,但我认为这与我的情况无关)。
检查 Dart 分析选项卡是否存在问题,我消除/替换了已弃用的代码。
然后我运行flutter pub upgrade --major-versions
来更新过时的库。
这为我解决了这个问题(和其他问题)。
【讨论】:
以上是关于类 AMSupportURLConnectionDelegate 在两者中都实现的主要内容,如果未能解决你的问题,请参考以下文章
JavaSE基础(十 三 )---<内部类>成员内部类,静态内部类,局部内部类,匿名内部类,内部类的意义