我会为将来遇到此问题的用户发布解决方案。看起来,kivy-ios中的“dist”文件夹有30个或更多散布在整个文件中的.so.o文件,这些文件是从构建共享库中剩余的.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')
好了,所以我升级到新的toolchain.py,这让我建立并通过验证无误。不过,当我尝试上传到应用商店时仍然存在问题。 上传失败,并显示以下错误: “ERROR ITMS-90171:”无效的软件包结构 - 二进制文件'.../lib/python2.7/site-packages/kivy/weakproxy.so.o'不是允许的。您的应用程序不能包含独立的可执行文件或库,除了受支持的软件包的CFBundleExecutable ...“ 有一些这样的错误。是否有其他人遇到此错误? – MV22