kivy xcode 7 问题 - 构建和存档工作,但验证失败
Posted
技术标签:
【中文标题】kivy xcode 7 问题 - 构建和存档工作,但验证失败【英文标题】:kivy xcode 7 issue - build and archive works, but validation fails 【发布时间】:2016-09-08 14:02:48 【问题描述】:我在 kivy 上创建了一个 ios 应用。在 xcode 7 中构建和归档应用程序后,我无法验证应用程序。
具体来说,验证失败并显示以下错误消息:
"Couldn't find platform family in Info.plist CFBundleSupportedPlatforms or Mach-O LC_VERSION_MIN for audio_sdl2.so.o"
消息还写着:
"Unable to validate your application.
The archive is invalid. /var/folders/blahblahblah/Packages/myfile.ipa does not exist."
我一直在尝试解决此问题一段时间,但没有任何运气。有谁知道这里发生了什么,或者有其他人遇到过这个问题吗?这是工具链问题吗?
【问题讨论】:
好的,所以我升级到了新的 toolchain.py,它允许我构建并通过验证而不会出错。但是,当我尝试上传到应用商店时仍然存在问题。上传失败并出现以下错误:“错误 ITMS-90171:”无效的捆绑结构 - 二进制文件 '.../lib/python2.7/site-packages/kivy/weakproxy.so.o' 是不允许的。除了受支持的捆绑包的 CFBundleExecutable 之外,您的应用不能包含独立的可执行文件或库……”其中有一些错误。有其他人遇到此错误吗? 【参考方案1】:我会为以后遇到此问题的用户发布解决方案。 kivy-ios 中的“dist”文件夹似乎有 30 个或更多 .so.o 文件散布在其中,这些文件是构建共享库时遗留下来的。如果您进入并简单地删除这些 .so.o 文件,您就可以成功验证您的应用并将其上传到应用商店。
您可以通过在 kivy-ios 文件夹中运行以下脚本来解决此问题:
def kivy_ios_clean(file_ext, dir_to_clean, collection_dir='cleanup_collection'):
'''
inputs:
- file_ext = extension of the file that you want to move out of kivy-ios (ex: .so.o)
- dir_to_clean = name of directory that needs cleaning
other:
- collection_dir = name of directory where all of the removed files will be collected (feel free to modify this script to delete files instead, I implemented it this way so you could see everything...)
'''
import os, shutil
# Make folder for .so.o collection:
if not os.path.exists(collection_dir):
os.makedirs(collection_dir)
# Parse the directory, move the files with the extension of interest to the collection folder
for root, dirs, files in os.walk(dir_to_clean):
for i in files:
if file_ext in i:
shutil.move(root+'/'+i, collection_dir)
kivy_ios_clean('.so.o', 'dist')
【讨论】:
【参考方案2】:我遇到了同样的错误,这是由于在我的 kivy-ios 设置中不必要地添加了 pip install
ed py2app
。删除它为我解决了它。
【讨论】:
以上是关于kivy xcode 7 问题 - 构建和存档工作,但验证失败的主要内容,如果未能解决你的问题,请参考以下文章
未找到架构 armv7 的符号(在 Xcode 和 Python3 中运行存档时)
Xcode 7.2:在“存档”中:出现问题:“找不到 Cordova/CDVViewController.h 文件”。虽然在构建应用程序时没有这样的问题