我已经在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."
我一直试图解决这个问题一段时间没有任何运气。有谁知道这里发生了什么或有其他人遇到过这个问题?这是一个工具链问题吗?
答案 0 :(得分:0)
我会为遇到此问题的未来用户发布解决方案。看来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')
答案 1 :(得分:0)
我有同样的错误,这是由于在我的kivy-ios设置中不必要地pip install
编辑了py2app
。删除它可以为我解决。