2016-05-12 42 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')