我會爲將來遇到此問題的用戶發佈解決方案。看起來,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