MV22 MV22 - 1 year ago 252
iOS Question

kivy xcode 7 issue - build and archive works, but validation fails

I've created an iOS app on kivy. After building and archiving the app in xcode 7 I cannot validate the app.

Specifically, validation fails with the following error message:

"Couldn't find platform family in Info.plist CFBundleSupportedPlatforms or Mach-O LC_VERSION_MIN for"

The message also reads:

"Unable to validate your application.
The archive is invalid. /var/folders/blahblahblah/Packages/myfile.ipa does not exist."

I've been trying to troubleshoot this issue for a while now without any luck. Does anyone know what is happening here or has anyone else experienced this issue? Is this a toolchain issue?

Answer Source

I'll post the solution for future users who encounter this issue. It appears that the "dist" folder in kivy-ios has 30 or more .so.o files scattered throughout it that have been leftover from building shared libraries. If you go in and simply remove these .so.o files you can successfully validate and upload your app to the app store.

You can fix this issue by running the following script in your kivy-ios folder:

def kivy_ios_clean(file_ext, dir_to_clean, collection_dir='cleanup_collection'):
- 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

- 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):

# 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')