Fultter项目中IOS打包问题整理(附带解决方案)

Fultter项目中IOS打包问题整理(附带解决方案)

  • 问题一:CocoaPods 在你的项目中找不到名为 AlicloudPush 版本为 ~> 1.9.1 的 Pod 规范。
    • 报错信息
    • 问题分析
    • 解决方法
  • 问题二:ruby版本问题
    • 报错信息
    • 问题分析
    • 问题原因
    • 解决方法
  • 问题三:cocoapods规范库的问题
    • 解决方法
  • 问题四:证书问题
    • 报错信息
    • 原因
    • 解决方法
  • 最后

问题一:CocoaPods 在你的项目中找不到名为 AlicloudPush 版本为 ~> 1.9.1 的 Pod 规范。

报错信息

[!] Unable to find a specification for `AlicloudPush (~> 1.9.1)`You have either:* out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.* mistyped the name or version.* not added the source repo that hosts the Podspec to your Podfile.

问题分析

AlicloudPush 这个 Pod 是在私有的 Podspec 仓库中,需要确保项目中已经正确配置了这个私有仓库。其他Pod同理。

解决方法

  1. 找到项目/iOS文件夹下的Profile文件,在文件中添加:source 'https://github.com/aliyun/aliyun-specs.git’。
    在这里插入图片描述

  2. 并且为工程target添加依赖,例:引入AlicloudPush依赖:
    pod ‘AlicloudPush’, ‘~> 1.9.1’
    在这里插入图片描述

问题二:ruby版本问题

报错信息

Error/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:170:in `install!'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/command/install.rb:52:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/bin/pod:55:in `<top (required)>'
/usr/local/bin/pod:23:in `load'
/usr/local/bin/pod:23:in `<main>'
...
wrong argument type String (expected Regexp) 
Line: 1
Position: 38
Last 80 unconsumed characters:
<?xml version="1.0" encoding="UTF-8"?>
/Library/Ruby/Gems/2.6.0/gems/rexml-3.2.9/lib/rexml/parsers/treeparser.rb:96:in `rescue in parse'
......
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/bin/pod:55:in `<top (required)>'
/usr/local/bin/pod:23:in `load'
/usr/local/bin/pod:23:in `<main>'――― TEMPLATE END ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――[!] Oh no, an error occurred.Search for existing GitHub issues similar to yours:
https://github.com/CocoaPods/CocoaPods/search?q=%23%3CTypeError%3A+wrong+argument+type+String+%28expected+Regexp%29%3......If none exists, create a ticket, with the template displayed above, on:
https://github.com/CocoaPods/CocoaPods/issues/newBe sure to first read the contributing guide for details on how to properly submit a ticket:
https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.mdDon't forget to anonymize any private data!Looking for related issues on cocoapods/cocoapods...
Searching for inspections failed: undefined method `map' for nil:NilClass[!] 'WechatOpenSDK-XCFramework' uses the unencrypted 'http' protocol to transfer the Pod. Please be sure you're in a safe network with only trusted hosts. Otherwise, please reach out to the library author to notify them of this security issue.

问题分析

将此报错信息抛给chatgpt,发现‘wrong argument type String (expected Regexp) ’这行报错很可能是由于 Ruby 版本不兼容或过低所导致的。

当前ruby版本是2.6.0,cocoapods规范库的版本是1.15.2。
而 cocoapods-1.15.2 可能升级到 Ruby 2.7.x 或更高版本才能正确运行。
在这里插入图片描述

问题原因

ruby 和 cocoapods 版本不兼容。

解决方法

更新ruby的版本以满足cocoapods的要求。

仍然可能存在问题:

通过ruby -v查看版本号,发现ruby的新版本并未生效。

解决方法:

即使你更新了最新版本的ruby,但是通过ruby -v查看版本号,发现还是旧的版本号,说明并没有生效。

原因:

Mac os自带一个ruby版本,并且默认生效,我们即使下载了新版本的ruby,也有可能不生效。

解决方法:

我们可以通过设置环境变量,强行让新版本ruby生效。

打开~/.bash_profile文件或者 ~/.zshrc文件,添加这行代码:

export PATH=“/opt/homebrew/Cellar/ruby/3.3.4/bin:$PATH”

将下划线部分地址换成自己本地新版本的ruby地址

最后,通过 source ~/.bash_profile 让配置文件生效。

注意:

mac的~/.bash_profile文件,使用source命令生效,但是新建窗口时就会失效。

原因有可能是:

  1. 重新打开窗口是非登陆shell,一般来说,macOS 终端在启动时会使用非登录 shell,因此 .bash_profile 可能不会自动生效,可以手动再执行source命令使其生效。
  2. 自 macOS Catalina 开始,默认的 shell 已从 Bash 切换到 Zsh。如果你在使用 Zsh 而不是 Bash,那么 .bash_profile 文件将不会被 Zsh 加载。相应的,Zsh 使用的是 .zshrc 文件。所以将环境变量的配置都移至~/.zshrc文件下,我使用的是这个方法。不需要后面经常手动使其生效。

问题三:cocoapods规范库的问题

解决方法

方法一:

  1. 找到项目/ios文件夹下的Profile文件,在文件中添加:source 'https://github.com/aliyun/aliyun-specs.git’。
  2. 需要科学上网并且修改git的代理地址,不然下载经常失败或者中断。
    设置代理
    git config --global http.proxy http://127.0.0.1:代理端口号
    取消代理
    git config --global --unset http.proxy

方法二:

  1. 找到项目/ios文件夹下的Profile文件,在文件中添加:source '/Users/linshang/.cocoapods/repos/cocoapods’。下划线部分换成自己的本地地址。
  2. 克隆cocoapods规范库到本地:
    cd ~/.cocoapods/repos
    git clone https://github.com/CocoaPods/Specs.git ~/.co coapods/repo/cocoapods
    pod install --repo-update

问题四:证书问题

使用flutter命令对ios进行编译:flutter build ios

报错信息

Changing current working directory to: /Users/linshang/Documents/aiyunhua_ai_app
Building com.linshang.app for device (ios-release)...
Automatically signing iOS for device deployment using specified development team
in Xcode project: QW5598QK8Y
Running pod install... 1,967ms
Running Xcode build... 
Xcode build done. 14.1s
Failed to build iOS app
Error (Xcode): No profile for team 'QW5598QK8Y' matching 'sunhui_profile' found:
Xcode couldn't find any provisioning profiles matching
'QW5598QK8Y/sunhui_profile'. Install the profile (by dragging and dropping it
onto Xcode's dock item) or select a different one in the Signing & Capabilities
tab of the target editor.
/Users/linshang/Documents/aiyunhua_ai_app/ios/Runner.xcodeprojIt appears that there was a problem signing your application prior to
installation on the device.Verify that the Bundle Identifier in your project is your signing id in Xcode
open ios/Runner.xcworkspaceAlso try selecting 'Product > Build' to fix the problem.
Encountered error while building for device.

原因

这个报错信息是因为 Xcode 在构建应用时,未能找到与你的 Apple 开发者账户(team ‘QW5598QK8Y’)相关联的匹配的配置描述文件(provisioning profile)。
可能的原因:

  1. 描述文件不存在:你可能没有为这个特定的应用创建或下载相应的描述文件。
  2. 描述文件未同步:描述文件已经创建,但没有同步到你的 Xcode 项目中。
  3. 团队 ID 或描述文件名称错误:在 Xcode 项目设置中,选择的团队 ID 或描述文件名称不正确。
  4. 描述文件已过期或无效:描述文件可能已经过期或因其他原因无效。

解决方法

  1. 检查团队 ID 和描述文件:
  • 在 Xcode 中打开你的项目,选择项目设置(Project Navigator 中的项目名称),然后选择 “Signing & Capabilities” 选项卡。
  • 确保选择了正确的团队 ID,并且 “Provisioning Profile” 是你在 Apple 开发者网站上创建的有效描述文件。
  • 如果描述文件未能自动选择或显示,点击 “Download Profile” 按钮以手动同步。
  1. 手动生成并下载描述文件:
  • 登录到 Apple 开发者账号。
  • 在 “Certificates, IDs & Profiles” 中,找到对应的 App ID,生成新的描述文件,并确保将其下载到本地。
  • 将下载的描述文件双击导入到 Xcode 中,或手动将其放入 ~/Library/MobileDevice/Provisioning Profiles/ 目录。
  1. 更新描述文件:
  • 如果描述文件过期或失效,需要重新生成新的描述文件。然后在 Xcode 中重新选择和同步该文件。
  1. 检查自动签名设置:
  • 如果使用的是自动签名,确保 Xcode 设置为自动管理签名,并选择正确的团队和签名证书。

最后

这几个问题都是我实际打包过程中遇到并解决的,希望以上的解决方法对你有用,如果你有其他的问题,可以第一时间问gpt,也可以下方留言评论,小伙伴们一起来解决!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/401492.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPS真题题库导入刷题小程序:个人使用经验分享

这篇文章的诞生&#xff0c;是因为我即将踏上一场超级有趣的挑战——备考全国计算机等级二级WPS Office高级应用与设计的冒险之旅&#xff01; WPS的分值&#xff1a; 单项选择题20分(含公共基础知识部分10分)。 WPS处理文字文档操作题30分。 WPS处理电子表格操作题30分。 …

挑战程序设计竞赛c++(第一天)1.抽签(枚举,二分法查找)2.三角形(暴力枚举)

方法一&#xff1a; #include<iostream> #include<algorithm> #include<vector>using namespace std; char flag0; int n0; int m0; int shu[1000]{0}; int i; int main() {cin >> n;cin >> m;for (i0;i<n;i){cin >> shu[i];}vector&l…

Design Compiler——综合及debug流程

文章目录 前言一、什么是综合&#xff1f;二、综合的流程1. Develop HDL files2. Specify libraries3. Read design4. Define design environment5. Set design constraints6. Select compile strategy7. Synthesize and optimize the design8. Analyze and resolve design pro…

idea 中的properties文件中文乱码

如遇到以下类似的问题&#xff1a; 配置setting中-》Editor-》File Encodings 中&#xff0c;将以下三处位置的编码格式进行修改 Global Encoding GBK Project Encoding GBK Default encoding for properties files UTF-8 修改之后文件的中文显示正常

老友记台词 第一季 第十四集 Friends 114(全英版)

文章目录 V114 The One With the Candy Hearts[Scene: Central Perk, Ross is eyeing a beautiful woman at the counter, and Joey and Chandler are egging him on to go talk to her. No pun intended. I mean it.][Scene: Central Perk, Monica, Rachel, Phoebe, Joey, Cha…

从源码到应用:医疗陪诊系统与在线问诊小程序开发详解

在数字化医疗时代&#xff0c;医疗陪诊系统与在线问诊小程序的开发成为了医疗机构和技术公司关注的焦点。接下来&#xff0c;小编将与您一同深入了解。 一、医疗陪诊系统的核心功能 医疗陪诊系统旨在为患者提供更贴心的医疗服务&#xff0c;通过专业人员陪同患者完成就医过程。…

【C语言篇】C语言常考及易错题整理DAY1

文章目录 C语言常考及易错题整理选择题全局、局部和静态变量#define与typedef转义字符操作符循环其他 编程题计算日期到天数转换柯尼希定理旋转数组的最小数字描述错误的集合整数转换密码检查 C语言常考及易错题整理 选择题 全局、局部和静态变量 执行下面程序&#xff0c;正…

[000-01-030].第3节 :搭建Zookeeper集群环境

1.搭建Zookeeper集群环境 1.1.集群安装&#xff1a; a.集群规划&#xff1a; 在 hadoop103(192.168.2.3)、hadoop104(192.168.2.4) 和 hadoop105&#xff08;(192.168.2.5&#xff09; 三个节点上都部署 Zookeeper b.解压安装&#xff1a; 1.下载zookeeper压缩版本&#x…

微软披露Office最新零日漏洞,可能导致数据泄露

近日&#xff0c;微软披露了 Office 中一个未修补的零日漏洞&#xff0c;如果被成功利用&#xff0c;可能导致敏感信息在未经授权的情况下泄露给恶意行为者。 该漏洞被追踪为 CVE-2024-38200&#xff08;CVSS 得分&#xff1a;7.5&#xff09;&#xff0c;被描述为一个欺骗漏洞…

AI安全-文生图

1 需求 2 接口 3 示例 大模型图像安全风险探析 - 先知社区 前言 文生图模型是一种新兴的人工智能技术,它通过对大规模文本数据的学习,能够生成逼真的图像。这种模型包含两个主要组件:一个文本编码器和一个图像生成器。 文本编码器接收文本输入,并将其转换为一种数字化的表示…

Allegro如何更改过孔的网络

Allegro如何更改过孔网络 在用Allegro进行PCB设计过程中,有时候需要改变过孔的网络。 如果用删除再重新打过孔的方式就显的比较慢;这时如果使用skill操作就可以大大提高PCB设计的效率。 下面介绍具体操作方法: (1)首先点击属性查看过孔的网络,此时过孔网络为DGND。如下…

【Python-办公自动化】1秒比较出2张表格之间的不同并标黄加粗

欢迎来到"花花 Show Python"&#xff0c;一名热爱编程和分享知识的技术博主。在这里&#xff0c;我将与您一同探索Python的奥秘&#xff0c;分享编程技巧、项目实践和学习心得。无论您是编程新手还是资深开发者&#xff0c;都能在这里找到有价值的信息和灵感。 自我介…

Raspberry Pi Pico 家族的进化 —— RP2040、RP2350与RP2354性能比较

随着树莓派Pico系列的不断扩展&#xff0c;其背后的芯片也得到了升级和改进。从最初的RP2040到最新的RP2354&#xff0c;每一次迭代都带来了新的功能和性能提升。本文将详细对比RP2040、RP2350和RP2354三款芯片的关键特性&#xff0c;帮助开发者了解它们的差异&#xff0c;并选…

three.js 几何体、材质和网格模型

场景Scene、相机Camera、渲染器Renderer初始化完成之后&#xff0c;可以向场景中添加一个简单的模型进行展示。在此之前需要了解三个概念&#xff1a;几何体、材质、网格模型。 几何体&#xff1a;表示物体的几何形状。材质&#xff1a;表示物体的外观效果。网格模型&#xff…

YoloV8改进策略:Block改进|LeYOLO,一种用于目标检测的新型可扩展且高效的CNN架构|复现LeYolo,轻量级Yolo改进

摘要 LeYOLO是在YOLO系列&#xff0c;特别是可能受到YOLOv8启发的基础上进行的一系列改进&#xff0c;旨在提升目标检测模型的高效性、可扩展性和精度。其主要特点包括&#xff1a; 高效骨干网络缩放方法&#xff1a; LeYOLO借鉴了倒置瓶颈&#xff08;Inverted Bottleneck&am…

大模型学习方法之——大模型技术学习路线

“ 技术学习无非涵盖三个方面&#xff0c;理论&#xff0c;实践和应用**”** 大模型技术爆火至今已经有两年的时间了&#xff0c;而且大模型技术的发展潜力也不言而喻。因此&#xff0c;很多人打算学习大模型&#xff0c;但又不知道该怎么入手&#xff0c;因此今天就来了解一下…

Spring——IOC/DI思想

1、IOC&#xff08;Inversion of Control&#xff09;控制反转 何为控制反转&#xff1f; 在业务层中我们如果要调用数据层的方法那么必然牵扯到对象的创建&#xff0c;如果我想要改变上述数据层的方法中的内容&#xff0c;那么我就要改变业务层的代码&#xff0c;重新创建对…

RedisTempate序列化的json字符串,如何反序列化

待转换的字符串 常见工具 Gson json new Gson(); 无法解析&#xff0c;只能有Josn的反序列化来实现 public void onMessage(final Message message, final byte[] pattern) { // RedisMessage redisMessage json.fromJson(message.toString(), RedisMessage.class);//…

从0开始搭建vue + flask 旅游景点数据分析系统(十二)【完结篇】:用户管理之增删改查、用户信息更新

这一期继续完成用户管理的增删改查和登录用户修改自己信息的功能&#xff0c;首先完成后端接口的功能。 1 后端接口 这边有查询列表接口、查询单个接口、新增接口、修改接口、删除接口这5个接口&#xff1a; #** 用户信息的增删改查 *** # 用户列表 main.route(/users, meth…

第36讲:使用Prometheus监控系统全方面监控Ceph集群

文章目录 1.启用Manager组件的Prometheus模块2.部署并配置Prometheus2.1.部署Prometheus服务端2.2.配置Prometheus添加Ceph集群的监控信息2.3.观察Prometheus监控系统中是否能浏览Ceph集群的监控数据 3.部署Grafana用于展示Prometheus的监控数据3.1.部署Grafana仪表盘3.2.Grafa…