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

news2024/11/14 17:06:49

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/new
 
Be sure to first read the contributing guide for details on how to properly submit a ticket:
https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md
 
Don'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.xcodeproj

It 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.xcworkspace

Also 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.coloradmin.cn/o/2043525.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

squeeze()和unsequeeze()函数的作用

sequeeze(dim):用于在指定位置添加一个大小为1的新维度 例如&#xff1a; 其他的大家自行尝试&#xff01; squeeze()&#xff1a;squeeze函数用于去除张量中所有大小为1的维度,注意当没有传入任何参数的时候&#xff0c;去掉的是所有大小为1的维度。 例如&#xff1a;

力扣第五十九题——螺旋矩阵II

内容介绍 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]]示例 2&#xff1a; 输入&#xff1a;n 1 …

基于SpringBoot的网络海鲜市场系统的设计与实现

TOC springboot219基于SpringBoot的网络海鲜市场系统的设计与实现 绪论 1.1 选题背景 当人们发现随着生产规模的不断扩大&#xff0c;人为计算方面才是一个巨大的短板&#xff0c;所以发明了各种计算设备&#xff0c;从结绳记事&#xff0c;到算筹&#xff0c;以及算盘&…

【ubuntu24.04】远程开发:微软RDP;ssh远程root登录;clion以root远程

本地配置了一台ubutnu服务器,运行各种服务。偶尔会远程过去,做一些UI操作。感觉nomachine的就是会模糊一些,可能是默认的编码比较均衡?RDP更清晰? RDP 与nomachine比,更清晰,但是貌似不支持自动缩放窗口?默认的配置就比较高:GPT的建议 安装xrdp还要配置session:1. 安…

从零开始搭建k8s集群详细步骤

声明&#xff1a;本文仅作为个人记录学习k8s过程的笔记。 节点规划&#xff1a; 两台节点为阿里云ECS云服务器&#xff0c;操作系统为centos7.9&#xff0c;master为2v4GB,node为2v2GB,硬盘空间均为40GB。&#xff08;节点基础配置不低于2V2GB&#xff09; 主机名节点ip角色部…

链表(linked_list)的理解以及实现

链表的概念&#xff1a; 链表是一种线性数据结构&#xff0c;其中的每个元素都是一个节点对象&#xff0c;各个节点通过“引用”相连接。引用记录了下一个节点的内存地址&#xff0c;通过它可以从当前节点访问到下一个节点。 可以看出&#xff1a;链表物理结构不是连续的 链…

在Ubuntu 13.10上安装Hadoop的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 先决条件 本教程的唯一先决条件是安装了 Ubuntu 13.10 x64 的 VPS。 您需要通过以下两种方式之一在命令行中执行命令&#xff1a; 使用…

AI芯片:高性能卷积计算中的数据复用

随着深度学习的飞速发展&#xff0c;对处理器的性能要求也变得越来越高&#xff0c;随之涌现出了很多针对神经网络加速设计的AI芯片。卷积计算是神经网络中最重要的一类计算&#xff0c;本文分析了高性能卷积计算中的数据复用&#xff0c;这是AI芯片设计中需要优化的重点之一&a…

XSS游戏前五关

分享一个XSS游戏的链接 XSS Game 第一关&#xff1a; 这边有一个innerHTML属性&#xff0c;我们查看官方文档 我们找到了它存在的漏洞&#xff0c;直接利用 https://sandbox.pwnfunction.com/warmups/ma-spaghet.html?somebody<img src1 onerror"alert(1337)&quo…

工具推荐篇:《Chat-PPT一键AI生成专属风格演示文稿》

引言 在当今快节奏的工作环境中&#xff0c;制作高质量的演示文稿既是一项挑战也是一门艺术。传统的PPT制作往往需要花费大量的时间和精力&#xff0c;尤其是在寻找合适的模板、设计布局和选择色彩搭配等方面。 今天给大家推荐一款AI一键制作高质量PPT的工具。 AI如何改变PP…

CANoe软件中Trace窗口的筛选栏标题不显示(空白)的解决方法

文章目录 问题描述原因分析解决方案扩展知识总结问题描述 不知道什么情况,CANoe软件中Trace窗口的筛选栏标题突然不显示了,一片空白。现象如下: 虽然不影响CANoe软件的使用,但是观感上非常难受,对于强迫症患者非常不友好。 原因分析 按照常规思路,尝试了: 1、重启CAN…

8月强化|30天带刷张宇18讲核心重点!

不偏不难就不是张宇了&#xff01; 张宇老师本来就以“偏难怪”著称&#xff0c;无独有偶&#xff0c;24考研真题也是“偏难怪”&#xff01; 所以&#xff0c;24考研结束之后&#xff0c;大家欧鼓吹张宇「封神」 先不说张宇老师是不是真的符合考研的趋势&#xff0c;但是跟…

解决 git clone 失败问题

使用 git clone 指令&#xff0c;从 G i t H u b GitHub GitHub克隆项目时失败&#xff0c;提示信息为&#xff1a; fatal: unable to access https://github.com/***/***: Failed to connect to github.com port 443 after 21083 ms:Couldnt connect to server解决方法 出现…

Chromium编译指南2024 - Android篇:从Linux版切换到Android版(六)

1.引言 在前面的章节中&#xff0c;我们介绍了如何获取 Chromium for Android 的源代码。然而&#xff0c;您可能已经在本地拥有了用于 Linux 版的 Chromium 源代码&#xff0c;并希望切换到 Android 版进行编译和开发。为了避免重新拉取大量的代码&#xff0c;您可以通过配置…

趋动科技成为GSMA 5G IN创新会员,专注于软件定义AI算力技术

趋动科技 趋动科技作为软件定义AI算力技术的领导厂商&#xff0c;专注于为全球用户提供国际领先的数据中心级AI算力虚拟化和资源池化软件及解决方案。趋动科技的 OrionX AI 算力资源池化软件能够帮助用户提高资源利用率和降低TCO&#xff0c;提高算法工程师的工作效率。凭借标…

谷歌、火狐、Edge浏览器使用allWebPlugin中间件加载ActiveX控件

安装allWebPlugin中间件 1、请从下面地址下载allWebPlugin中间件产品 链接&#xff1a;百度网盘 请输入提取码百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固&#xff0c;支持教育网加速&#xff0c;支持手机端。注册使用百…

数据结构与算法分析winform算术表达式求值计算

数据结构与算法分析算术表达式求值计算 数据结构与算法分析 实验三 算术表达式求值计算 要求&#xff1a;创建Form窗体&#xff0c;输入算术表达式&#xff0c;计算出表达式结果。 基本思路&#xff1a; &#xff08;1&#xff09;将表达式串拆分成操作数和操作符混合的字符…

【数据结构】使用C语言建立邻接矩阵表示有向图

有向图的邻接矩阵构建 有向图的定义 先回顾下有向图的定义&#xff1a; 有向图是一副具有方向性的图&#xff0c;是有一组顶点和一组有方向的边组成的&#xff0c;每条方向的边都连接着一对有序的顶点。 有向图的邻接矩阵的特点 有向图邻接矩阵中第i行非零元素的个数为第i个顶…

背部筋膜炎怎么根治

背部筋膜炎是一种常见的疾病&#xff0c;背部筋膜炎的症状主要包括&#xff1a; 1、疼痛&#xff1a;这是背部筋膜炎最明显的症状&#xff0c;疼痛可表现为酸痛、胀痛或刺痛&#xff0c;轻重不一。疼痛通常在劳累后加重&#xff0c;休息后减轻。 2、僵硬&#xff1a;由于无菌…

Java Web —— 第五天(请求响应1)

postman Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件 作用:常用于进行接口测试 简单参数 原始方式 在原始的web程序中&#xff0c;获取请求参数&#xff0c;需要通过HttpServletRequest 对象手动获 http://localhost:8080/simpleParam?nameTom&a…