首页 > 编程问答 >使用带有 pythonKit XCODE 的嵌入式 Python,在 iOS 应用程序中与 OpenCV-python 签名不匹配

使用带有 pythonKit XCODE 的嵌入式 Python,在 iOS 应用程序中与 OpenCV-python 签名不匹配

时间:2024-07-30 11:13:25浏览次数:11  
标签:python ios xcode opencv

我根据 Beewares 使用指南在 XCODE 中将 Python 嵌入到我的 iOS 项目中

https://github.com/beeware/Python-Apple-support/blob/main/USAGE.md

运行时,我得到pythonKit 找不到由 ultralytics 导入的 cv2 错误。当我将 OpenCV-python 添加到我的 app_packages 文件夹时(就像 ultralytics 一样),我收到以下错误:

代码签名标识符 (libtheoraenc.1) 与捆绑包标识符 (com.iubh-lea.Meye.cv2.) 不匹配/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.s2Bujt/extracted/Meye.app/Frameworks/cv2..framework

添加可通过 python 工具包访问而无需签名的 cv2 框架的任何方法不匹配?

在使用包标识符创建 Info.plist 之前,我尝试在运行脚本中放弃它 -> 没有更改任何内容 我尝试使用 opencvs iOS 框架版本,但 pithonkit 找不到


收到的错误消息「代码签名标识符 (libtheoraenc.1) 与捆绑包标识符 (com.iubh-lea.Meye.cv2) 不匹配」表示在的应用程序捆绑包中, libtheoraenc.1 库的代码签名标识符与 cv2 框架的捆绑包标识符不一致。这是因为 iOS 对应用程序及其所有库都有严格的代码签名要求。

以下是解决此问题的步骤:

  1. 确认 libtheoraenc.1 的来源 : 需要确定 libtheoraenc.1 库是如何以及从哪里添加到的项目中的。它可能是 OpenCV-Python 的依赖项,也可能是项目中另一个库的依赖项。

  2. 移除重复库 : 如果 libtheoraenc.1 是 OpenCV-Python 的依赖项,并且在项目中其他地方也包含了它,那么需要移除重复的库,只保留一份。

  3. 重新签名 cv2 框架 : 需要使用与应用程序相同的团队和证书对 cv2 框架进行重新签名。可以使用 codesign 命令行工具来完成此操作。

bash codesign --force --sign "Your Signing Identity" --entitlements "path/to/entitlements.plist" "path/to/cv2.framework"

  • "Your Signing Identity" 替换为的代码签名标识符。可以在 Xcode 中的代码签名设置中找到它。
  • "path/to/entitlements.plist" 替换为的权利文件路径。
  • "path/to/cv2.framework" 替换为 cv2 框架的路径。

  • 清理和重建 : 完成上述步骤后,请清理的构建文件夹并重新构建的应用程序。

其他建议 :

  • 使用预构建的 OpenCV 框架 : 可以考虑使用为 iOS 预构建的 OpenCV 框架,例如:
  • 使用 Python 的虚拟环境 : 为了避免库冲突,建议在开发 iOS 应用程序时使用 Python 的虚拟环境。

通过执行上述步骤,应该能够解决代码签名不匹配的问题,并在的 iOS 应用程序中成功使用 OpenCV-Python。

标签:python,ios,xcode,opencv
From: 78809673

相关文章

  • Python - Arguments and Parameters
    ParametersinFunctionDefinitionA.deffunc(name):MatchbypositionorbynameB.deffunc(name=value):DefaultargumentC.deffunc(*args):CollectextrapositionalargumentsintuplenamedargsD.deffunc(**kwargs):Collectextrakeywordargumentsi......
  • Python MySQL 无法连接,原因不明
    当我尝试使用python连接到我的MySQL数据库时,由于未知原因显示错误:dTraceback(mostrecentcalllast):File"/usr/local/bin/flask",line8,in<module>sys.exit(main())^^^^^^File"/usr/local/lib/python3.12/site-packages/flask/cli.py&......
  • 基于Python Django的旅游景点数据分析与推荐系统
    基于PythonDjango的旅游景点数据分析与推荐系统。源码+数据库+文档(LW)。开发技术:Pythondjangomysql。项目内容:系统包括多个功能模块,涵盖了用户管理、旅游景点管理、管理员管理、系统管理等方面,以及一些其他辅助功能和信息展示模块。用户管理模块允许管理员管理系统中的用......
  • django基于Python的校园个人闲置物品换购平台
    django基于Python的校园个人闲置物品换购平台。源码+数据库+文档(lw+ppt)。开发技术:Pythondjangomysql。项目内容:系统主要包括主页、个人中心、用户管理、景点信息管理、系统管理等功能。    ......
  • Python的使用技巧整理——100个Python使用技巧代码和运行结果(上)
    整理一些更实用的Python编程技巧,这些技巧将涵盖性能优化、代码简洁性、调试和测试等方面,并提供具体的代码示例和结果。以下是详细的内容:1.列表生成表达式列表生成表达式不仅简洁,还能提高性能。#示例代码squares=[x**2forxinrange(10)]print(squares)运行结果:[......
  • Python 缓存工具统计并使用自定义密钥
    我正在寻找一种方法来使用python的cachetools内置缓存库功能,但也支持命中/未命中统计,使用自定义键函数,并且如果可能的话支持无界缓存?不幸的是,我可以只能找到这些方法:如果我想使用未绑定的缓存,并有命中/未命中统计:fromcachetools.funcimportlru_cache......
  • 如何用Python从PDF文件中抓取数据
    我想抓取此PDF第7页中的数据,然后移至数据框,然后移至CSV。您能提供同样的帮助吗?当然,我可以帮。以下是用Python从PDF文件中抓取数据并将数据保存到CSV文件的步骤:1.安装必要的库需要安装以下Python库:PyPDF2:用于读取P......
  • python读取大型二进制文件最有效的方法是什么
    我有一个大(21GB)文件,我想将其读入内存,然后传递给一个子例程,该子例程对我透明地处理数据。我在Centos6.5上使用python2.6.6,因此无法升级操作系统或python。目前,我正在使用f=open(image_filename,"rb")image_file_contents=f.read()f.close()transparent_subrout......
  • Python:为列表中的每个类对象创建一个不同的副本
    如何制作Python类中对象列表的副本,以便每个副本都是所述Python类的不同实例?假设我有一个Python类classmyClass():def__init__(self,neighbor):self.neighbor=neighbor另外假设myList=[a,b,c,d,...]是一个列表myClass对......
  • 需要使用Python代码将一个文件的一部分复制到另一个文件的相同但空的部分
    例如:需要将文件A中第1部分的x、y和z行复制到文件B中括号之间的第1部分。需要帮助,如果给定多个文件,文件A部分1中的行数将是更改,因此总是需要在括号之间复制到括号之间。文件A:Section1{xyz}Section2{abc}文件B:Section1{}S......