diff --git a/kivy_ios/toolchain.py b/kivy_ios/toolchain.py
index f1130153..b92f7b11 100755
--- a/kivy_ios/toolchain.py
+++ b/kivy_ios/toolchain.py
@@ -1188,7 +1188,7 @@ def _hostpython_pip(args):
     shprint(pip_cmd, *args)
 
 
-def update_pbxproj(filename, pbx_frameworks=None):
+def update_pbxproj(filename, pbx_frameworks=None, custom_recipes=None, custom_recipes_paths=None):
     # list all the compiled recipes
     ctx = Context()
     pbx_libraries = []
@@ -1197,7 +1197,17 @@ def update_pbxproj(filename, pbx_frameworks=None):
     frameworks = []
     libraries = []
     sources = []
+
+    if custom_recipes and custom_recipes_paths:
+        recipes = custom_recipes
+        ctx.custom_recipes_paths = custom_recipes_paths
+    else:
+        recipes = []
+
     for recipe in Recipe.list_recipes():
+        recipes.append(recipe)
+
+    for recipe in recipes:
         key = "{}.build_all".format(recipe)
         if key not in ctx.state:
             continue
@@ -1457,6 +1467,9 @@ def update(self):
         parser = argparse.ArgumentParser(
                 description="Update an existing xcode project")
         parser.add_argument("filename", help="Path to your project or xcodeproj")
+        parser.add_argument("recipes", nargs="+", help="Recipes to update")
+        parser.add_argument("--add-custom-recipe", action="append", default=[],
+                            help="Path to custom recipe (the recipe must already have been built with the 'build' command)")
         parser.add_argument("--add-framework", action="append", help="Additional Frameworks to include with this project")
         args = parser.parse_args(sys.argv[2:])
 
@@ -1466,7 +1479,8 @@ def update(self):
             logger.error("{} not found".format(filename))
             sys.exit(1)
 
-        update_pbxproj(filename, pbx_frameworks=args.add_framework)
+        update_pbxproj(filename, pbx_frameworks=args.add_framework,
+                       custom_recipes=args.recipes, custom_recipes_paths=args.add_custom_recipe)
         print("--")
         print("Project {} updated".format(filename))