2016-05-12 41 views
1

我已经在kivy上创建了一个iOS应用程序。在xcode 7中构建和存档应用程序之后,我无法验证应用程序。kivy 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

好了,所以我升级到新的toolchain.py,这让我建立并通过验证无误。不过,当我尝试上传到应用商店时仍然存在问题。 上传失败,并显示以下错误: “ERROR ITMS-90171:”无效的软件包结构 - 二进制文件'.../lib/python2.7/site-packages/kivy/weakproxy.so.o'不是允许的。您的应用程序不能包含独立的可执行文件或库,除了受支持的软件包的CFBundleExecutable ...“ 有一些这样的错误。是否有其他人遇到此错误? – MV22

回答

0

我会为将来遇到此问题的用户发布解决方案。看起来,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')