diff --git a/bind/objc/seq_test.go b/bind/objc/seq_test.go
index d5afa34..d0d7aa9 100644
--- a/bind/objc/seq_test.go
+++ b/bind/objc/seq_test.go
@@ -16,17 +16,15 @@
 	"testing"
 )
 
-// Use the Xcode XCTestCase framework to run the SeqTest.m tests and the SeqBench.m benchmarks.
+// Use the Xcode XCTestCase framework to run the regular tests and the special SeqBench.m benchmarks.
 //
-// SeqTest.m runs in the xcodetest project as normal unit test (logic test in Xcode lingo).
-// Unit tests execute faster but cannot run on a real device. That is why SeqBench.m runs as
-// a UI unit test through the xcodebench project.
+// Regular tests run in the xcodetest project as normal unit test (logic test in Xcode lingo).
+// Unit tests execute faster but cannot run on a real device. The benchmarks in SeqBench.m run as
+// UI unit tests.
 //
-// Both xcodetest and xcodebench were constructed in Xcode 7 by:
+// The Xcode files embedded in this file were constructed in Xcode 9 by:
 //
-// - Creating a new project through Xcode. Choose to include either unit tests or UI tests as
-//   needed.
-// - Add SeqTest.m or SeqBench.m to the right unit test target.
+// - Creating a new project through Xcode. Both unit tests and UI tests were checked off.
 // - Xcode schemes are per-user by default. The shared scheme is created by selecting
 //   Project => Schemes => Manage Schemes from the Xcode menu and selecting "Shared".
 // - Remove files not needed for xcodebuild (determined empirically). In particular, the empty
@@ -41,7 +39,7 @@
 		"golang.org/x/mobile/bind/testdata/testpkg",
 		"golang.org/x/mobile/bind/testdata/testpkg/secondpkg",
 		"golang.org/x/mobile/bind/testdata/testpkg/simplepkg",
-	}, "xcodetest", "SeqTest.m", false)
+	}, "SeqTest.m", "Testpkg.framework", false, false)
 }
 
 // TestObjcSeqBench runs ObjC test SeqBench.m.
@@ -50,16 +48,16 @@
 	if testing.Short() {
 		t.Skip("skipping benchmark in short mode.")
 	}
-	runTest(t, []string{"golang.org/x/mobile/bind/testdata/benchmark"}, "xcodebench", "SeqBench.m", true)
+	runTest(t, []string{"golang.org/x/mobile/bind/testdata/benchmark"}, "SeqBench.m", "Benchmark.framework", true, true)
 }
 
 // TestObjcSeqWrappers runs ObjC test SeqWrappers.m.
 // This requires the xcode command lines tools.
 func TestObjcSeqWrappers(t *testing.T) {
-	runTest(t, []string{"golang.org/x/mobile/bind/testdata/testpkg/objcpkg"}, "xcodewrappers", "SeqWrappers.m", false)
+	runTest(t, []string{"golang.org/x/mobile/bind/testdata/testpkg/objcpkg"}, "SeqWrappers.m", "Objcpkg.framework", false, false)
 }
 
-func runTest(t *testing.T, pkgNames []string, project, testfile string, dumpOutput bool) {
+func runTest(t *testing.T, pkgNames []string, testfile, framework string, uitest, dumpOutput bool) {
 	if _, err := run("which xcodebuild"); err != nil {
 		t.Skip("command xcodebuild not found, skipping")
 	}
@@ -70,10 +68,6 @@
 		}
 	}
 
-	cwd, err := os.Getwd()
-	if err != nil {
-		t.Fatalf("failed pwd: %v", err)
-	}
 	tmpdir, err := ioutil.TempDir("", "bind-objc-seq-test-")
 	if err != nil {
 		t.Fatalf("failed to prepare temp dir: %v", err)
@@ -81,29 +75,29 @@
 	defer os.RemoveAll(tmpdir)
 	t.Logf("tmpdir = %s", tmpdir)
 
-	if buf, err := exec.Command("cp", "-a", project, tmpdir).CombinedOutput(); err != nil {
-		t.Logf("%s", buf)
-		t.Fatalf("failed to copy %s to tmp dir: %v", project, err)
+	if err := createProject(tmpdir, testfile, framework); err != nil {
+		t.Fatalf("failed to create project: %v", err)
 	}
 
 	if err := cp(filepath.Join(tmpdir, testfile), testfile); err != nil {
 		t.Fatalf("failed to copy %s: %v", testfile, err)
 	}
 
-	if err := os.Chdir(filepath.Join(tmpdir, project)); err != nil {
-		t.Fatalf("failed chdir: %v", err)
-	}
-	defer os.Chdir(cwd)
-
 	cmd := exec.Command("gomobile", "bind", "-target", "ios", "-tags", "aaa bbb")
 	cmd.Args = append(cmd.Args, pkgNames...)
+	cmd.Dir = filepath.Join(tmpdir, "xcodetest")
 	buf, err := cmd.CombinedOutput()
 	if err != nil {
 		t.Logf("%s", buf)
 		t.Fatalf("failed to run gomobile bind: %v", err)
 	}
 
-	cmd = exec.Command("xcodebuild", "test", "-scheme", project, "-destination", *destination)
+	testPattern := "xcodetestTests"
+	if uitest {
+		testPattern = "xcodetestUITests"
+	}
+	cmd = exec.Command("xcodebuild", "test", "-scheme", "xcodetest", "-destination", *destination, "-only-testing:"+testPattern)
+	cmd.Dir = tmpdir
 	buf, err = cmd.CombinedOutput()
 	if err != nil {
 		t.Logf("%s", buf)
@@ -136,3 +130,835 @@
 	}
 	return cerr
 }
+
+// createProject generates the files required for xcodebuild test to run a
+// Objective-C testfile with a gomobile bind framework.
+func createProject(dir, testfile, framework string) error {
+	for _, d := range []string{"xcodetest", "xcodetest.xcodeproj/xcshareddata/xcschemes", "xcodetestTests", "xcodetestUITests"} {
+		if err := os.MkdirAll(filepath.Join(dir, d), 0700); err != nil {
+			return err
+		}
+	}
+	files := []struct {
+		path    string
+		content string
+	}{
+		{"xcodetest/Info.plist", infoPlist},
+		{"xcodetest.xcodeproj/project.pbxproj", fmt.Sprintf(pbxproj, testfile, framework)},
+		{"xcodetest.xcodeproj/xcshareddata/xcschemes/xcodetest.xcscheme", xcodescheme},
+		{"xcodetestTests/Info.plist", testInfoPlist},
+		// For UI tests. Only UI tests run on a real idevice.
+		{"xcodetestUITests/Info.plist", testInfoPlist},
+		{"xcodetest/AppDelegate.h", appdelegateh},
+		{"xcodetest/main.m", mainm},
+		{"xcodetest/AppDelegate.m", appdelegatem},
+	}
+	for _, f := range files {
+		if err := ioutil.WriteFile(filepath.Join(dir, f.path), []byte(f.content), 0700); err != nil {
+			return err
+		}
+	}
+	return nil
+}
+
+const infoPlist = `<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>$(PRODUCT_NAME)</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>UIRequiredDeviceCapabilities</key>
+	<array>
+		<string>armv7</string>
+	</array>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+</dict>
+</plist>`
+
+const testInfoPlist = `<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>$(PRODUCT_NAME)</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+</dict>
+</plist>`
+
+const pbxproj = `// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 50;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		642D058D2094883B00FE587C /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 642D058C2094883B00FE587C /* AppDelegate.m */; };
+		642D05952094883C00FE587C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 642D05942094883C00FE587C /* Assets.xcassets */; };
+		642D059B2094883C00FE587C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 642D059A2094883C00FE587C /* main.m */; };
+		642D05A52094883C00FE587C /* xcodetestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 642D05A42094883C00FE587C /* xcodetestTests.m */; };
+		642D05B02094883C00FE587C /* xcodetestUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 642D05AF2094883C00FE587C /* xcodetestUITests.m */; };
+		642D05BE209488E400FE587C /* Testpkg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 642D05BD209488E400FE587C /* Testpkg.framework */; };
+		642D05BF209488E400FE587C /* Testpkg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 642D05BD209488E400FE587C /* Testpkg.framework */; };
+		642D05C0209488E400FE587C /* Testpkg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 642D05BD209488E400FE587C /* Testpkg.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		642D05A12094883C00FE587C /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 642D05802094883B00FE587C /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 642D05872094883B00FE587C;
+			remoteInfo = xcodetest;
+		};
+		642D05AC2094883C00FE587C /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 642D05802094883B00FE587C /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 642D05872094883B00FE587C;
+			remoteInfo = xcodetest;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		642D05882094883B00FE587C /* xcodetest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = xcodetest.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		642D058B2094883B00FE587C /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
+		642D058C2094883B00FE587C /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
+		642D05942094883C00FE587C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+		642D05992094883C00FE587C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		642D059A2094883C00FE587C /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+		642D05A02094883C00FE587C /* xcodetestTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = xcodetestTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+		642D05A42094883C00FE587C /* xcodetestTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ../%[1]s; sourceTree = "<group>"; };
+		642D05A62094883C00FE587C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		642D05AB2094883C00FE587C /* xcodetestUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = xcodetestUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+		642D05AF2094883C00FE587C /* xcodetestUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ../%[1]s; sourceTree = "<group>"; };
+		642D05B12094883C00FE587C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		642D05BD209488E400FE587C /* Testpkg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Testpkg.framework; path = %[2]s; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		642D05852094883B00FE587C /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				642D05BE209488E400FE587C /* Testpkg.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		642D059D2094883C00FE587C /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				642D05BF209488E400FE587C /* Testpkg.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		642D05A82094883C00FE587C /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				642D05C0209488E400FE587C /* Testpkg.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		642D057F2094883B00FE587C = {
+			isa = PBXGroup;
+			children = (
+				642D058A2094883B00FE587C /* xcodetest */,
+				642D05A32094883C00FE587C /* xcodetestTests */,
+				642D05AE2094883C00FE587C /* xcodetestUITests */,
+				642D05892094883B00FE587C /* Products */,
+				642D05BD209488E400FE587C /* Testpkg.framework */,
+			);
+			sourceTree = "<group>";
+		};
+		642D05892094883B00FE587C /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				642D05882094883B00FE587C /* xcodetest.app */,
+				642D05A02094883C00FE587C /* xcodetestTests.xctest */,
+				642D05AB2094883C00FE587C /* xcodetestUITests.xctest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		642D058A2094883B00FE587C /* xcodetest */ = {
+			isa = PBXGroup;
+			children = (
+				642D058B2094883B00FE587C /* AppDelegate.h */,
+				642D058C2094883B00FE587C /* AppDelegate.m */,
+				642D05942094883C00FE587C /* Assets.xcassets */,
+				642D05992094883C00FE587C /* Info.plist */,
+				642D059A2094883C00FE587C /* main.m */,
+			);
+			path = xcodetest;
+			sourceTree = "<group>";
+		};
+		642D05A32094883C00FE587C /* xcodetestTests */ = {
+			isa = PBXGroup;
+			children = (
+				642D05A42094883C00FE587C /* xcodetestTests.m */,
+				642D05A62094883C00FE587C /* Info.plist */,
+			);
+			path = xcodetestTests;
+			sourceTree = "<group>";
+		};
+		642D05AE2094883C00FE587C /* xcodetestUITests */ = {
+			isa = PBXGroup;
+			children = (
+				642D05AF2094883C00FE587C /* xcodetestUITests.m */,
+				642D05B12094883C00FE587C /* Info.plist */,
+			);
+			path = xcodetestUITests;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		642D05872094883B00FE587C /* xcodetest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 642D05B42094883C00FE587C /* Build configuration list for PBXNativeTarget "xcodetest" */;
+			buildPhases = (
+				642D05842094883B00FE587C /* Sources */,
+				642D05852094883B00FE587C /* Frameworks */,
+				642D05862094883B00FE587C /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = xcodetest;
+			productName = xcodetest;
+			productReference = 642D05882094883B00FE587C /* xcodetest.app */;
+			productType = "com.apple.product-type.application";
+		};
+		642D059F2094883C00FE587C /* xcodetestTests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 642D05B72094883C00FE587C /* Build configuration list for PBXNativeTarget "xcodetestTests" */;
+			buildPhases = (
+				642D059C2094883C00FE587C /* Sources */,
+				642D059D2094883C00FE587C /* Frameworks */,
+				642D059E2094883C00FE587C /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				642D05A22094883C00FE587C /* PBXTargetDependency */,
+			);
+			name = xcodetestTests;
+			productName = xcodetestTests;
+			productReference = 642D05A02094883C00FE587C /* xcodetestTests.xctest */;
+			productType = "com.apple.product-type.bundle.unit-test";
+		};
+		642D05AA2094883C00FE587C /* xcodetestUITests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 642D05BA2094883C00FE587C /* Build configuration list for PBXNativeTarget "xcodetestUITests" */;
+			buildPhases = (
+				642D05A72094883C00FE587C /* Sources */,
+				642D05A82094883C00FE587C /* Frameworks */,
+				642D05A92094883C00FE587C /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				642D05AD2094883C00FE587C /* PBXTargetDependency */,
+			);
+			name = xcodetestUITests;
+			productName = xcodetestUITests;
+			productReference = 642D05AB2094883C00FE587C /* xcodetestUITests.xctest */;
+			productType = "com.apple.product-type.bundle.ui-testing";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		642D05802094883B00FE587C /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0930;
+				ORGANIZATIONNAME = golang;
+				TargetAttributes = {
+					642D05872094883B00FE587C = {
+						CreatedOnToolsVersion = 9.3;
+					};
+					642D059F2094883C00FE587C = {
+						CreatedOnToolsVersion = 9.3;
+						TestTargetID = 642D05872094883B00FE587C;
+					};
+					642D05AA2094883C00FE587C = {
+						CreatedOnToolsVersion = 9.3;
+						TestTargetID = 642D05872094883B00FE587C;
+					};
+				};
+			};
+			buildConfigurationList = 642D05832094883B00FE587C /* Build configuration list for PBXProject "xcodetest" */;
+			compatibilityVersion = "Xcode 9.3";
+			developmentRegion = en;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 642D057F2094883B00FE587C;
+			productRefGroup = 642D05892094883B00FE587C /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				642D05872094883B00FE587C /* xcodetest */,
+				642D059F2094883C00FE587C /* xcodetestTests */,
+				642D05AA2094883C00FE587C /* xcodetestUITests */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		642D05862094883B00FE587C /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				642D05952094883C00FE587C /* Assets.xcassets in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		642D059E2094883C00FE587C /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		642D05A92094883C00FE587C /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		642D05842094883B00FE587C /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				642D059B2094883C00FE587C /* main.m in Sources */,
+				642D058D2094883B00FE587C /* AppDelegate.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		642D059C2094883C00FE587C /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				642D05A52094883C00FE587C /* xcodetestTests.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		642D05A72094883C00FE587C /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				642D05B02094883C00FE587C /* xcodetestUITests.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		642D05A22094883C00FE587C /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 642D05872094883B00FE587C /* xcodetest */;
+			targetProxy = 642D05A12094883C00FE587C /* PBXContainerItemProxy */;
+		};
+		642D05AD2094883C00FE587C /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 642D05872094883B00FE587C /* xcodetest */;
+			targetProxy = 642D05AC2094883C00FE587C /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+		642D05B22094883C00FE587C /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_ENABLE_OBJC_WEAK = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = dwarf;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu11;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 11.3;
+				MTL_ENABLE_DEBUG_INFO = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = iphoneos;
+			};
+			name = Debug;
+		};
+		642D05B32094883C00FE587C /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_ENABLE_OBJC_WEAK = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu11;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 11.3;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				SDKROOT = iphoneos;
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		642D05B52094883C00FE587C /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CODE_SIGN_STYLE = Automatic;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/xcodetest",
+				);
+				INFOPLIST_FILE = xcodetest/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = org.golang.xcodetest;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				TARGETED_DEVICE_FAMILY = "1,2";
+			};
+			name = Debug;
+		};
+		642D05B62094883C00FE587C /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CODE_SIGN_STYLE = Automatic;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/xcodetest",
+				);
+				INFOPLIST_FILE = xcodetest/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = org.golang.xcodetest;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				TARGETED_DEVICE_FAMILY = "1,2";
+			};
+			name = Release;
+		};
+		642D05B82094883C00FE587C /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				BUNDLE_LOADER = "$(TEST_HOST)";
+				CODE_SIGN_STYLE = Automatic;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/xcodetest",
+				);
+				INFOPLIST_FILE = xcodetestTests/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+					"@loader_path/Frameworks",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = org.golang.xcodetestTests;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/xcodetest.app/xcodetest";
+			};
+			name = Debug;
+		};
+		642D05B92094883C00FE587C /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				BUNDLE_LOADER = "$(TEST_HOST)";
+				CODE_SIGN_STYLE = Automatic;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/xcodetest",
+				);
+				INFOPLIST_FILE = xcodetestTests/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+					"@loader_path/Frameworks",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = org.golang.xcodetestTests;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/xcodetest.app/xcodetest";
+			};
+			name = Release;
+		};
+		642D05BB2094883C00FE587C /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CODE_SIGN_STYLE = Automatic;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/xcodetest",
+				);
+				INFOPLIST_FILE = xcodetestUITests/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+					"@loader_path/Frameworks",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = org.golang.xcodetestUITests;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				TEST_TARGET_NAME = xcodetest;
+			};
+			name = Debug;
+		};
+		642D05BC2094883C00FE587C /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CODE_SIGN_STYLE = Automatic;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/xcodetest",
+				);
+				INFOPLIST_FILE = xcodetestUITests/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+					"@loader_path/Frameworks",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = org.golang.xcodetestUITests;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				TEST_TARGET_NAME = xcodetest;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		642D05832094883B00FE587C /* Build configuration list for PBXProject "xcodetest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				642D05B22094883C00FE587C /* Debug */,
+				642D05B32094883C00FE587C /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		642D05B42094883C00FE587C /* Build configuration list for PBXNativeTarget "xcodetest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				642D05B52094883C00FE587C /* Debug */,
+				642D05B62094883C00FE587C /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		642D05B72094883C00FE587C /* Build configuration list for PBXNativeTarget "xcodetestTests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				642D05B82094883C00FE587C /* Debug */,
+				642D05B92094883C00FE587C /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		642D05BA2094883C00FE587C /* Build configuration list for PBXNativeTarget "xcodetestUITests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				642D05BB2094883C00FE587C /* Debug */,
+				642D05BC2094883C00FE587C /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 642D05802094883B00FE587C /* Project object */;
+}`
+
+const xcodescheme = `<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0930"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "642D05872094883B00FE587C"
+               BuildableName = "xcodetest.app"
+               BlueprintName = "xcodetest"
+               ReferencedContainer = "container:xcodetest.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "642D059F2094883C00FE587C"
+               BuildableName = "xcodetestTests.xctest"
+               BlueprintName = "xcodetestTests"
+               ReferencedContainer = "container:xcodetest.xcodeproj">
+            </BuildableReference>
+         </TestableReference>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "642D05AA2094883C00FE587C"
+               BuildableName = "xcodetestUITests.xctest"
+               BlueprintName = "xcodetestUITests"
+               ReferencedContainer = "container:xcodetest.xcodeproj">
+            </BuildableReference>
+         </TestableReference>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "642D05872094883B00FE587C"
+            BuildableName = "xcodetest.app"
+            BlueprintName = "xcodetest"
+            ReferencedContainer = "container:xcodetest.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "642D05872094883B00FE587C"
+            BuildableName = "xcodetest.app"
+            BlueprintName = "xcodetest"
+            ReferencedContainer = "container:xcodetest.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "642D05872094883B00FE587C"
+            BuildableName = "xcodetest.app"
+            BlueprintName = "xcodetest"
+            ReferencedContainer = "container:xcodetest.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>`
+
+const appdelegateh = `#import <UIKit/UIKit.h>
+
+@interface AppDelegate : UIResponder <UIApplicationDelegate>
+
+@property (strong, nonatomic) UIWindow *window;
+
+@end`
+
+const appdelegatem = `#import "AppDelegate.h"
+
+@interface AppDelegate ()
+
+@end
+
+@implementation AppDelegate
+
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
+    return YES;
+}
+
+- (void)applicationWillResignActive:(UIApplication *)application {
+}
+
+- (void)applicationDidEnterBackground:(UIApplication *)application {
+}
+
+- (void)applicationWillEnterForeground:(UIApplication *)application {
+}
+
+- (void)applicationDidBecomeActive:(UIApplication *)application {
+}
+
+- (void)applicationWillTerminate:(UIApplication *)application {
+}
+
+@end`
+
+const mainm = `#import <UIKit/UIKit.h>
+#import "AppDelegate.h"
+
+int main(int argc, char * argv[]) {
+    @autoreleasepool {
+        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
+    }
+}`
diff --git a/bind/objc/xcodebench/xcodebench.xcodeproj/project.pbxproj b/bind/objc/xcodebench/xcodebench.xcodeproj/project.pbxproj
deleted file mode 100644
index 1186c11..0000000
--- a/bind/objc/xcodebench/xcodebench.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,394 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 46;
-	objects = {
-
-/* Begin PBXBuildFile section */
-		64658E371C8C903800FBDE8A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 64658E361C8C903800FBDE8A /* main.m */; };
-		64658E3A1C8C903800FBDE8A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 64658E391C8C903800FBDE8A /* AppDelegate.m */; };
-		64658E5B1C8C904600FBDE8A /* SeqBench.m in Sources */ = {isa = PBXBuildFile; fileRef = 64658E5A1C8C904600FBDE8A /* SeqBench.m */; };
-		64658E5D1C8C906B00FBDE8A /* Benchmark.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64658E5C1C8C906B00FBDE8A /* Benchmark.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
-		64658E4C1C8C903800FBDE8A /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 64658E2A1C8C903800FBDE8A /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 64658E311C8C903800FBDE8A;
-			remoteInfo = xcodebench;
-		};
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
-		64658E321C8C903800FBDE8A /* xcodebench.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = xcodebench.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		64658E361C8C903800FBDE8A /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
-		64658E381C8C903800FBDE8A /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
-		64658E391C8C903800FBDE8A /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
-		64658E461C8C903800FBDE8A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		64658E4B1C8C903800FBDE8A /* xcodebenchUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = xcodebenchUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
-		64658E511C8C903800FBDE8A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		64658E5A1C8C904600FBDE8A /* SeqBench.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SeqBench.m; path = ../../SeqBench.m; sourceTree = "<group>"; };
-		64658E5C1C8C906B00FBDE8A /* Benchmark.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Benchmark.framework; sourceTree = SOURCE_ROOT; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		64658E2F1C8C903800FBDE8A /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		64658E481C8C903800FBDE8A /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				64658E5D1C8C906B00FBDE8A /* Benchmark.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		64658E291C8C903800FBDE8A = {
-			isa = PBXGroup;
-			children = (
-				64658E341C8C903800FBDE8A /* xcodebench */,
-				64658E4E1C8C903800FBDE8A /* xcodebenchUITests */,
-				64658E331C8C903800FBDE8A /* Products */,
-			);
-			sourceTree = "<group>";
-		};
-		64658E331C8C903800FBDE8A /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				64658E321C8C903800FBDE8A /* xcodebench.app */,
-				64658E4B1C8C903800FBDE8A /* xcodebenchUITests.xctest */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		64658E341C8C903800FBDE8A /* xcodebench */ = {
-			isa = PBXGroup;
-			children = (
-				64658E381C8C903800FBDE8A /* AppDelegate.h */,
-				64658E391C8C903800FBDE8A /* AppDelegate.m */,
-				64658E461C8C903800FBDE8A /* Info.plist */,
-				64658E351C8C903800FBDE8A /* Supporting Files */,
-			);
-			path = xcodebench;
-			sourceTree = "<group>";
-		};
-		64658E351C8C903800FBDE8A /* Supporting Files */ = {
-			isa = PBXGroup;
-			children = (
-				64658E361C8C903800FBDE8A /* main.m */,
-			);
-			name = "Supporting Files";
-			sourceTree = "<group>";
-		};
-		64658E4E1C8C903800FBDE8A /* xcodebenchUITests */ = {
-			isa = PBXGroup;
-			children = (
-				64658E5C1C8C906B00FBDE8A /* Benchmark.framework */,
-				64658E5A1C8C904600FBDE8A /* SeqBench.m */,
-				64658E511C8C903800FBDE8A /* Info.plist */,
-			);
-			path = xcodebenchUITests;
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
-		64658E311C8C903800FBDE8A /* xcodebench */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 64658E541C8C903800FBDE8A /* Build configuration list for PBXNativeTarget "xcodebench" */;
-			buildPhases = (
-				64658E2E1C8C903800FBDE8A /* Sources */,
-				64658E2F1C8C903800FBDE8A /* Frameworks */,
-				64658E301C8C903800FBDE8A /* Resources */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = xcodebench;
-			productName = xcodebench;
-			productReference = 64658E321C8C903800FBDE8A /* xcodebench.app */;
-			productType = "com.apple.product-type.application";
-		};
-		64658E4A1C8C903800FBDE8A /* xcodebenchUITests */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 64658E571C8C903800FBDE8A /* Build configuration list for PBXNativeTarget "xcodebenchUITests" */;
-			buildPhases = (
-				64658E471C8C903800FBDE8A /* Sources */,
-				64658E481C8C903800FBDE8A /* Frameworks */,
-				64658E491C8C903800FBDE8A /* Resources */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				64658E4D1C8C903800FBDE8A /* PBXTargetDependency */,
-			);
-			name = xcodebenchUITests;
-			productName = xcodebenchUITests;
-			productReference = 64658E4B1C8C903800FBDE8A /* xcodebenchUITests.xctest */;
-			productType = "com.apple.product-type.bundle.ui-testing";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		64658E2A1C8C903800FBDE8A /* Project object */ = {
-			isa = PBXProject;
-			attributes = {
-				LastUpgradeCheck = 0720;
-				ORGANIZATIONNAME = golang.org;
-				TargetAttributes = {
-					64658E311C8C903800FBDE8A = {
-						CreatedOnToolsVersion = 7.2.1;
-					};
-					64658E4A1C8C903800FBDE8A = {
-						CreatedOnToolsVersion = 7.2.1;
-						TestTargetID = 64658E311C8C903800FBDE8A;
-					};
-				};
-			};
-			buildConfigurationList = 64658E2D1C8C903800FBDE8A /* Build configuration list for PBXProject "xcodebench" */;
-			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
-			hasScannedForEncodings = 0;
-			knownRegions = (
-				en,
-				Base,
-			);
-			mainGroup = 64658E291C8C903800FBDE8A;
-			productRefGroup = 64658E331C8C903800FBDE8A /* Products */;
-			projectDirPath = "";
-			projectRoot = "";
-			targets = (
-				64658E311C8C903800FBDE8A /* xcodebench */,
-				64658E4A1C8C903800FBDE8A /* xcodebenchUITests */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
-		64658E301C8C903800FBDE8A /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		64658E491C8C903800FBDE8A /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
-		64658E2E1C8C903800FBDE8A /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				64658E3A1C8C903800FBDE8A /* AppDelegate.m in Sources */,
-				64658E371C8C903800FBDE8A /* main.m in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		64658E471C8C903800FBDE8A /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				64658E5B1C8C904600FBDE8A /* SeqBench.m in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
-		64658E4D1C8C903800FBDE8A /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 64658E311C8C903800FBDE8A /* xcodebench */;
-			targetProxy = 64658E4C1C8C903800FBDE8A /* PBXContainerItemProxy */;
-		};
-/* End PBXTargetDependency section */
-
-/* Begin XCBuildConfiguration section */
-		64658E521C8C903800FBDE8A /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				COPY_PHASE_STRIP = NO;
-				DEBUG_INFORMATION_FORMAT = dwarf;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				ENABLE_TESTABILITY = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					"DEBUG=1",
-					"$(inherited)",
-				);
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 9.2;
-				MTL_ENABLE_DEBUG_INFO = YES;
-				ONLY_ACTIVE_ARCH = YES;
-				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
-			};
-			name = Debug;
-		};
-		64658E531C8C903800FBDE8A /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				COPY_PHASE_STRIP = NO;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				ENABLE_NS_ASSERTIONS = NO;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 9.2;
-				MTL_ENABLE_DEBUG_INFO = NO;
-				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
-				VALIDATE_PRODUCT = YES;
-			};
-			name = Release;
-		};
-		64658E551C8C903800FBDE8A /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				INFOPLIST_FILE = xcodebench/Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				PRODUCT_BUNDLE_IDENTIFIER = golang.xcodebench;
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Debug;
-		};
-		64658E561C8C903800FBDE8A /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				INFOPLIST_FILE = xcodebench/Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				PRODUCT_BUNDLE_IDENTIFIER = golang.xcodebench;
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Release;
-		};
-		64658E581C8C903800FBDE8A /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				FRAMEWORK_SEARCH_PATHS = (
-					"$(inherited)",
-					"$(PROJECT_DIR)",
-				);
-				INFOPLIST_FILE = xcodebenchUITests/Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
-				PRODUCT_BUNDLE_IDENTIFIER = golang.xcodebenchUITests;
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				TEST_TARGET_NAME = xcodebench;
-				USES_XCTRUNNER = YES;
-			};
-			name = Debug;
-		};
-		64658E591C8C903800FBDE8A /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				FRAMEWORK_SEARCH_PATHS = (
-					"$(inherited)",
-					"$(PROJECT_DIR)",
-				);
-				INFOPLIST_FILE = xcodebenchUITests/Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
-				PRODUCT_BUNDLE_IDENTIFIER = golang.xcodebenchUITests;
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				TEST_TARGET_NAME = xcodebench;
-				USES_XCTRUNNER = YES;
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		64658E2D1C8C903800FBDE8A /* Build configuration list for PBXProject "xcodebench" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				64658E521C8C903800FBDE8A /* Debug */,
-				64658E531C8C903800FBDE8A /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		64658E541C8C903800FBDE8A /* Build configuration list for PBXNativeTarget "xcodebench" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				64658E551C8C903800FBDE8A /* Debug */,
-				64658E561C8C903800FBDE8A /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		64658E571C8C903800FBDE8A /* Build configuration list for PBXNativeTarget "xcodebenchUITests" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				64658E581C8C903800FBDE8A /* Debug */,
-				64658E591C8C903800FBDE8A /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 64658E2A1C8C903800FBDE8A /* Project object */;
-}
diff --git a/bind/objc/xcodebench/xcodebench.xcodeproj/xcshareddata/xcschemes/xcodebench.xcscheme b/bind/objc/xcodebench/xcodebench.xcodeproj/xcshareddata/xcschemes/xcodebench.xcscheme
deleted file mode 100644
index b741f40..0000000
--- a/bind/objc/xcodebench/xcodebench.xcodeproj/xcshareddata/xcschemes/xcodebench.xcscheme
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
-   LastUpgradeVersion = "0720"
-   version = "1.3">
-   <BuildAction
-      parallelizeBuildables = "YES"
-      buildImplicitDependencies = "YES">
-      <BuildActionEntries>
-         <BuildActionEntry
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "YES"
-            buildForArchiving = "YES"
-            buildForAnalyzing = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "64658E311C8C903800FBDE8A"
-               BuildableName = "xcodebench.app"
-               BlueprintName = "xcodebench"
-               ReferencedContainer = "container:xcodebench.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
-      </BuildActionEntries>
-   </BuildAction>
-   <TestAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      shouldUseLaunchSchemeArgsEnv = "YES">
-      <Testables>
-         <TestableReference
-            skipped = "NO">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "64658E4A1C8C903800FBDE8A"
-               BuildableName = "xcodebenchUITests.xctest"
-               BlueprintName = "xcodebenchUITests"
-               ReferencedContainer = "container:xcodebench.xcodeproj">
-            </BuildableReference>
-         </TestableReference>
-      </Testables>
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "64658E311C8C903800FBDE8A"
-            BuildableName = "xcodebench.app"
-            BlueprintName = "xcodebench"
-            ReferencedContainer = "container:xcodebench.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </TestAction>
-   <LaunchAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      launchStyle = "0"
-      useCustomWorkingDirectory = "NO"
-      ignoresPersistentStateOnLaunch = "NO"
-      debugDocumentVersioning = "YES"
-      debugServiceExtension = "internal"
-      allowLocationSimulation = "YES">
-      <BuildableProductRunnable
-         runnableDebuggingMode = "0">
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "64658E311C8C903800FBDE8A"
-            BuildableName = "xcodebench.app"
-            BlueprintName = "xcodebench"
-            ReferencedContainer = "container:xcodebench.xcodeproj">
-         </BuildableReference>
-      </BuildableProductRunnable>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </LaunchAction>
-   <ProfileAction
-      buildConfiguration = "Release"
-      shouldUseLaunchSchemeArgsEnv = "YES"
-      savedToolIdentifier = ""
-      useCustomWorkingDirectory = "NO"
-      debugDocumentVersioning = "YES">
-      <BuildableProductRunnable
-         runnableDebuggingMode = "0">
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "64658E311C8C903800FBDE8A"
-            BuildableName = "xcodebench.app"
-            BlueprintName = "xcodebench"
-            ReferencedContainer = "container:xcodebench.xcodeproj">
-         </BuildableReference>
-      </BuildableProductRunnable>
-   </ProfileAction>
-   <AnalyzeAction
-      buildConfiguration = "Debug">
-   </AnalyzeAction>
-   <ArchiveAction
-      buildConfiguration = "Release"
-      revealArchiveInOrganizer = "YES">
-   </ArchiveAction>
-</Scheme>
diff --git a/bind/objc/xcodebench/xcodebench/AppDelegate.h b/bind/objc/xcodebench/xcodebench/AppDelegate.h
deleted file mode 100644
index 57b2033..0000000
--- a/bind/objc/xcodebench/xcodebench/AppDelegate.h
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright 2016 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-#import <UIKit/UIKit.h>
-
-@interface AppDelegate : UIResponder <UIApplicationDelegate>
-
-@property (strong, nonatomic) UIWindow *window;
-
-
-@end
-
diff --git a/bind/objc/xcodebench/xcodebench/AppDelegate.m b/bind/objc/xcodebench/xcodebench/AppDelegate.m
deleted file mode 100644
index afedff8..0000000
--- a/bind/objc/xcodebench/xcodebench/AppDelegate.m
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2016 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-#import "AppDelegate.h"
-
-@interface AppDelegate ()
-
-@end
-
-@implementation AppDelegate
-
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    // Override point for customization after application launch.
-    return YES;
-}
-
-- (void)applicationWillResignActive:(UIApplication *)application {
-    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
-    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
-}
-
-- (void)applicationDidEnterBackground:(UIApplication *)application {
-    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
-    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
-}
-
-- (void)applicationWillEnterForeground:(UIApplication *)application {
-    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
-}
-
-- (void)applicationDidBecomeActive:(UIApplication *)application {
-    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
-}
-
-- (void)applicationWillTerminate:(UIApplication *)application {
-    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
-}
-
-@end
diff --git a/bind/objc/xcodebench/xcodebench/Info.plist b/bind/objc/xcodebench/xcodebench/Info.plist
deleted file mode 100644
index 7c961f8..0000000
--- a/bind/objc/xcodebench/xcodebench/Info.plist
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>en</string>
-	<key>CFBundleExecutable</key>
-	<string>$(EXECUTABLE_NAME)</string>
-	<key>CFBundleIdentifier</key>
-	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>$(PRODUCT_NAME)</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1</string>
-	<key>LSRequiresIPhoneOS</key>
-	<true/>
-	<key>UIRequiredDeviceCapabilities</key>
-	<array>
-		<string>armv7</string>
-	</array>
-	<key>UISupportedInterfaceOrientations</key>
-	<array>
-		<string>UIInterfaceOrientationPortrait</string>
-		<string>UIInterfaceOrientationLandscapeLeft</string>
-		<string>UIInterfaceOrientationLandscapeRight</string>
-	</array>
-	<key>UISupportedInterfaceOrientations~ipad</key>
-	<array>
-		<string>UIInterfaceOrientationPortrait</string>
-		<string>UIInterfaceOrientationPortraitUpsideDown</string>
-		<string>UIInterfaceOrientationLandscapeLeft</string>
-		<string>UIInterfaceOrientationLandscapeRight</string>
-	</array>
-</dict>
-</plist>
diff --git a/bind/objc/xcodebench/xcodebench/main.m b/bind/objc/xcodebench/xcodebench/main.m
deleted file mode 100644
index 2815086..0000000
--- a/bind/objc/xcodebench/xcodebench/main.m
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2016 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-#import <UIKit/UIKit.h>
-#import "AppDelegate.h"
-
-int main(int argc, char * argv[]) {
-    @autoreleasepool {
-        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
-    }
-}
diff --git a/bind/objc/xcodebench/xcodebenchUITests/Info.plist b/bind/objc/xcodebench/xcodebenchUITests/Info.plist
deleted file mode 100644
index ba72822..0000000
--- a/bind/objc/xcodebench/xcodebenchUITests/Info.plist
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>en</string>
-	<key>CFBundleExecutable</key>
-	<string>$(EXECUTABLE_NAME)</string>
-	<key>CFBundleIdentifier</key>
-	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>$(PRODUCT_NAME)</string>
-	<key>CFBundlePackageType</key>
-	<string>BNDL</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1</string>
-</dict>
-</plist>
diff --git a/bind/objc/xcodetest/xcodetest.xcodeproj/project.pbxproj b/bind/objc/xcodetest/xcodetest.xcodeproj/project.pbxproj
deleted file mode 100644
index ac417db..0000000
--- a/bind/objc/xcodetest/xcodetest.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,297 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 46;
-	objects = {
-
-/* Begin PBXBuildFile section */
-		641ECD4C1C8C20D000971615 /* SeqTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 641ECD4B1C8C20D000971615 /* SeqTest.m */; };
-		641ECD551C8C380400971615 /* Testpkg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 641ECD4D1C8C20FD00971615 /* Testpkg.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
-		641ECD3D1C8C20BB00971615 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 641ECD1B1C8C20BB00971615 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 641ECD221C8C20BB00971615;
-			remoteInfo = xcodetest;
-		};
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
-		641ECD371C8C20BB00971615 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		641ECD421C8C20BB00971615 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		641ECD4B1C8C20D000971615 /* SeqTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SeqTest.m; path = ../../SeqTest.m; sourceTree = "<group>"; };
-		641ECD4D1C8C20FD00971615 /* Testpkg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Testpkg.framework; sourceTree = SOURCE_ROOT; };
-		641ECD4F1C8C356C00971615 /* xcodetestTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = xcodetestTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		641ECD391C8C20BB00971615 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				641ECD551C8C380400971615 /* Testpkg.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		641ECD1A1C8C20BB00971615 = {
-			isa = PBXGroup;
-			children = (
-				641ECD251C8C20BB00971615 /* xcodetest */,
-				641ECD3F1C8C20BB00971615 /* xcodetestTests */,
-				641ECD501C8C356C00971615 /* Products */,
-			);
-			sourceTree = "<group>";
-		};
-		641ECD251C8C20BB00971615 /* xcodetest */ = {
-			isa = PBXGroup;
-			children = (
-				641ECD371C8C20BB00971615 /* Info.plist */,
-			);
-			path = xcodetest;
-			sourceTree = "<group>";
-		};
-		641ECD3F1C8C20BB00971615 /* xcodetestTests */ = {
-			isa = PBXGroup;
-			children = (
-				641ECD4D1C8C20FD00971615 /* Testpkg.framework */,
-				641ECD4B1C8C20D000971615 /* SeqTest.m */,
-				641ECD421C8C20BB00971615 /* Info.plist */,
-			);
-			path = xcodetestTests;
-			sourceTree = "<group>";
-		};
-		641ECD501C8C356C00971615 /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				641ECD4F1C8C356C00971615 /* xcodetestTests.xctest */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
-		641ECD3B1C8C20BB00971615 /* xcodetestTests */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 641ECD481C8C20BB00971615 /* Build configuration list for PBXNativeTarget "xcodetestTests" */;
-			buildPhases = (
-				641ECD391C8C20BB00971615 /* Frameworks */,
-				641ECD381C8C20BB00971615 /* Sources */,
-				641ECD3A1C8C20BB00971615 /* Resources */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				641ECD3E1C8C20BB00971615 /* PBXTargetDependency */,
-			);
-			name = xcodetestTests;
-			productName = xcodetestTests;
-			productReference = 641ECD4F1C8C356C00971615 /* xcodetestTests.xctest */;
-			productType = "com.apple.product-type.bundle.unit-test";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		641ECD1B1C8C20BB00971615 /* Project object */ = {
-			isa = PBXProject;
-			attributes = {
-				LastUpgradeCheck = 0720;
-				ORGANIZATIONNAME = golang.org;
-				TargetAttributes = {
-					641ECD3B1C8C20BB00971615 = {
-						CreatedOnToolsVersion = 7.2.1;
-						TestTargetID = 641ECD221C8C20BB00971615;
-					};
-				};
-			};
-			buildConfigurationList = 641ECD1E1C8C20BB00971615 /* Build configuration list for PBXProject "xcodetest" */;
-			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
-			hasScannedForEncodings = 0;
-			knownRegions = (
-				en,
-				Base,
-			);
-			mainGroup = 641ECD1A1C8C20BB00971615;
-			productRefGroup = 641ECD501C8C356C00971615 /* Products */;
-			projectDirPath = "";
-			projectRoot = "";
-			targets = (
-				641ECD3B1C8C20BB00971615 /* xcodetestTests */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
-		641ECD3A1C8C20BB00971615 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
-		641ECD381C8C20BB00971615 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				641ECD4C1C8C20D000971615 /* SeqTest.m in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
-		641ECD3E1C8C20BB00971615 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			targetProxy = 641ECD3D1C8C20BB00971615 /* PBXContainerItemProxy */;
-		};
-/* End PBXTargetDependency section */
-
-/* Begin XCBuildConfiguration section */
-		641ECD431C8C20BB00971615 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				COPY_PHASE_STRIP = NO;
-				DEBUG_INFORMATION_FORMAT = dwarf;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				ENABLE_TESTABILITY = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					"DEBUG=1",
-					"$(inherited)",
-				);
-				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 9.2;
-				MTL_ENABLE_DEBUG_INFO = YES;
-				ONLY_ACTIVE_ARCH = YES;
-				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
-			};
-			name = Debug;
-		};
-		641ECD441C8C20BB00971615 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				COPY_PHASE_STRIP = NO;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				ENABLE_NS_ASSERTIONS = NO;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 9.2;
-				MTL_ENABLE_DEBUG_INFO = NO;
-				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
-				VALIDATE_PRODUCT = YES;
-			};
-			name = Release;
-		};
-		641ECD511C8C362D00971615 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				FRAMEWORK_SEARCH_PATHS = (
-					"$(inherited)",
-					"$(PROJECT_DIR)",
-				);
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				PRODUCT_NAME = xcodetestTests;
-			};
-			name = Debug;
-		};
-		641ECD521C8C362D00971615 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				FRAMEWORK_SEARCH_PATHS = (
-					"$(inherited)",
-					"$(PROJECT_DIR)",
-				);
-				PRODUCT_NAME = xcodetestTests;
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		641ECD1E1C8C20BB00971615 /* Build configuration list for PBXProject "xcodetest" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				641ECD431C8C20BB00971615 /* Debug */,
-				641ECD441C8C20BB00971615 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		641ECD481C8C20BB00971615 /* Build configuration list for PBXNativeTarget "xcodetestTests" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				641ECD511C8C362D00971615 /* Debug */,
-				641ECD521C8C362D00971615 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 641ECD1B1C8C20BB00971615 /* Project object */;
-}
diff --git a/bind/objc/xcodetest/xcodetest.xcodeproj/xcshareddata/xcschemes/xcodetest.xcscheme b/bind/objc/xcodetest/xcodetest.xcodeproj/xcshareddata/xcschemes/xcodetest.xcscheme
deleted file mode 100644
index 04a723e..0000000
--- a/bind/objc/xcodetest/xcodetest.xcodeproj/xcshareddata/xcschemes/xcodetest.xcscheme
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
-   LastUpgradeVersion = "0720"
-   version = "1.3">
-   <BuildAction
-      parallelizeBuildables = "YES"
-      buildImplicitDependencies = "YES">
-      <BuildActionEntries>
-         <BuildActionEntry
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "YES"
-            buildForArchiving = "YES"
-            buildForAnalyzing = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "641ECD221C8C20BB00971615"
-               BuildableName = "xcodetest.app"
-               BlueprintName = "xcodetest"
-               ReferencedContainer = "container:xcodetest.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
-      </BuildActionEntries>
-   </BuildAction>
-   <TestAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      shouldUseLaunchSchemeArgsEnv = "YES">
-      <Testables>
-         <TestableReference
-            skipped = "NO">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "641ECD3B1C8C20BB00971615"
-               BuildableName = "xcodetestTests.xctest"
-               BlueprintName = "xcodetestTests"
-               ReferencedContainer = "container:xcodetest.xcodeproj">
-            </BuildableReference>
-         </TestableReference>
-      </Testables>
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "641ECD221C8C20BB00971615"
-            BuildableName = "xcodetest.app"
-            BlueprintName = "xcodetest"
-            ReferencedContainer = "container:xcodetest.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </TestAction>
-   <LaunchAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      launchStyle = "0"
-      useCustomWorkingDirectory = "NO"
-      ignoresPersistentStateOnLaunch = "NO"
-      debugDocumentVersioning = "YES"
-      debugServiceExtension = "internal"
-      allowLocationSimulation = "YES">
-      <BuildableProductRunnable
-         runnableDebuggingMode = "0">
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "641ECD221C8C20BB00971615"
-            BuildableName = "xcodetest.app"
-            BlueprintName = "xcodetest"
-            ReferencedContainer = "container:xcodetest.xcodeproj">
-         </BuildableReference>
-      </BuildableProductRunnable>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </LaunchAction>
-   <ProfileAction
-      buildConfiguration = "Release"
-      shouldUseLaunchSchemeArgsEnv = "YES"
-      savedToolIdentifier = ""
-      useCustomWorkingDirectory = "NO"
-      debugDocumentVersioning = "YES">
-      <BuildableProductRunnable
-         runnableDebuggingMode = "0">
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "641ECD221C8C20BB00971615"
-            BuildableName = "xcodetest.app"
-            BlueprintName = "xcodetest"
-            ReferencedContainer = "container:xcodetest.xcodeproj">
-         </BuildableReference>
-      </BuildableProductRunnable>
-   </ProfileAction>
-   <AnalyzeAction
-      buildConfiguration = "Debug">
-   </AnalyzeAction>
-   <ArchiveAction
-      buildConfiguration = "Release"
-      revealArchiveInOrganizer = "YES">
-   </ArchiveAction>
-</Scheme>
diff --git a/bind/objc/xcodetest/xcodetest/Info.plist b/bind/objc/xcodetest/xcodetest/Info.plist
deleted file mode 100644
index 40c6215..0000000
--- a/bind/objc/xcodetest/xcodetest/Info.plist
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>en</string>
-	<key>CFBundleExecutable</key>
-	<string>$(EXECUTABLE_NAME)</string>
-	<key>CFBundleIdentifier</key>
-	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>$(PRODUCT_NAME)</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1</string>
-	<key>LSRequiresIPhoneOS</key>
-	<true/>
-	<key>UILaunchStoryboardName</key>
-	<string>LaunchScreen</string>
-	<key>UIMainStoryboardFile</key>
-	<string>Main</string>
-	<key>UIRequiredDeviceCapabilities</key>
-	<array>
-		<string>armv7</string>
-	</array>
-	<key>UISupportedInterfaceOrientations</key>
-	<array>
-		<string>UIInterfaceOrientationPortrait</string>
-		<string>UIInterfaceOrientationLandscapeLeft</string>
-		<string>UIInterfaceOrientationLandscapeRight</string>
-	</array>
-	<key>UISupportedInterfaceOrientations~ipad</key>
-	<array>
-		<string>UIInterfaceOrientationPortrait</string>
-		<string>UIInterfaceOrientationPortraitUpsideDown</string>
-		<string>UIInterfaceOrientationLandscapeLeft</string>
-		<string>UIInterfaceOrientationLandscapeRight</string>
-	</array>
-</dict>
-</plist>
diff --git a/bind/objc/xcodetest/xcodetestTests/Info.plist b/bind/objc/xcodetest/xcodetestTests/Info.plist
deleted file mode 100644
index ba72822..0000000
--- a/bind/objc/xcodetest/xcodetestTests/Info.plist
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>en</string>
-	<key>CFBundleExecutable</key>
-	<string>$(EXECUTABLE_NAME)</string>
-	<key>CFBundleIdentifier</key>
-	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>$(PRODUCT_NAME)</string>
-	<key>CFBundlePackageType</key>
-	<string>BNDL</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1</string>
-</dict>
-</plist>
diff --git a/bind/objc/xcodewrappers/xcodewrappers.xcodeproj/project.pbxproj b/bind/objc/xcodewrappers/xcodewrappers.xcodeproj/project.pbxproj
deleted file mode 100644
index e2a0652..0000000
--- a/bind/objc/xcodewrappers/xcodewrappers.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,297 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 46;
-	objects = {
-
-/* Begin PBXBuildFile section */
-		641ECD4C1C8C20D000971615 /* SeqWrappers.m in Sources */ = {isa = PBXBuildFile; fileRef = 641ECD4B1C8C20D000971615 /* SeqWrappers.m */; };
-		641ECD551C8C380400971615 /* Objcpkg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 641ECD4D1C8C20FD00971615 /* Objcpkg.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
-		641ECD3D1C8C20BB00971615 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 641ECD1B1C8C20BB00971615 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 641ECD221C8C20BB00971615;
-			remoteInfo = xcodewrappers;
-		};
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
-		641ECD371C8C20BB00971615 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		641ECD421C8C20BB00971615 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		641ECD4B1C8C20D000971615 /* SeqWrappers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SeqWrappers.m; path = ../../SeqWrappers.m; sourceTree = "<group>"; };
-		641ECD4D1C8C20FD00971615 /* Objcpkg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Objcpkg.framework; sourceTree = SOURCE_ROOT; };
-		641ECD4F1C8C356C00971615 /* xcodewrappersTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = xcodewrappersTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		641ECD391C8C20BB00971615 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				641ECD551C8C380400971615 /* Objcpkg.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		641ECD1A1C8C20BB00971615 = {
-			isa = PBXGroup;
-			children = (
-				641ECD251C8C20BB00971615 /* xcodewrappers */,
-				641ECD3F1C8C20BB00971615 /* xcodewrappersTests */,
-				641ECD501C8C356C00971615 /* Products */,
-			);
-			sourceTree = "<group>";
-		};
-		641ECD251C8C20BB00971615 /* xcodewrappers */ = {
-			isa = PBXGroup;
-			children = (
-				641ECD371C8C20BB00971615 /* Info.plist */,
-			);
-			path = xcodewrappers;
-			sourceTree = "<group>";
-		};
-		641ECD3F1C8C20BB00971615 /* xcodewrappersTests */ = {
-			isa = PBXGroup;
-			children = (
-				641ECD4D1C8C20FD00971615 /* Objcpkg.framework */,
-				641ECD4B1C8C20D000971615 /* SeqWrappers.m */,
-				641ECD421C8C20BB00971615 /* Info.plist */,
-			);
-			path = xcodewrappersTests;
-			sourceTree = "<group>";
-		};
-		641ECD501C8C356C00971615 /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				641ECD4F1C8C356C00971615 /* xcodewrappersTests.xctest */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
-		641ECD3B1C8C20BB00971615 /* xcodewrappersTests */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 641ECD481C8C20BB00971615 /* Build configuration list for PBXNativeTarget "xcodewrappersTests" */;
-			buildPhases = (
-				641ECD391C8C20BB00971615 /* Frameworks */,
-				641ECD381C8C20BB00971615 /* Sources */,
-				641ECD3A1C8C20BB00971615 /* Resources */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				641ECD3E1C8C20BB00971615 /* PBXTargetDependency */,
-			);
-			name = xcodewrappersTests;
-			productName = xcodewrappersTests;
-			productReference = 641ECD4F1C8C356C00971615 /* xcodewrappersTests.xctest */;
-			productType = "com.apple.product-type.bundle.unit-test";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		641ECD1B1C8C20BB00971615 /* Project object */ = {
-			isa = PBXProject;
-			attributes = {
-				LastUpgradeCheck = 0720;
-				ORGANIZATIONNAME = golang.org;
-				TargetAttributes = {
-					641ECD3B1C8C20BB00971615 = {
-						CreatedOnToolsVersion = 7.2.1;
-						TestTargetID = 641ECD221C8C20BB00971615;
-					};
-				};
-			};
-			buildConfigurationList = 641ECD1E1C8C20BB00971615 /* Build configuration list for PBXProject "xcodewrappers" */;
-			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
-			hasScannedForEncodings = 0;
-			knownRegions = (
-				en,
-				Base,
-			);
-			mainGroup = 641ECD1A1C8C20BB00971615;
-			productRefGroup = 641ECD501C8C356C00971615 /* Products */;
-			projectDirPath = "";
-			projectRoot = "";
-			targets = (
-				641ECD3B1C8C20BB00971615 /* xcodewrappersTests */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
-		641ECD3A1C8C20BB00971615 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
-		641ECD381C8C20BB00971615 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				641ECD4C1C8C20D000971615 /* SeqWrappers.m in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
-		641ECD3E1C8C20BB00971615 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			targetProxy = 641ECD3D1C8C20BB00971615 /* PBXContainerItemProxy */;
-		};
-/* End PBXTargetDependency section */
-
-/* Begin XCBuildConfiguration section */
-		641ECD431C8C20BB00971615 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				COPY_PHASE_STRIP = NO;
-				DEBUG_INFORMATION_FORMAT = dwarf;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				ENABLE_TESTABILITY = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					"DEBUG=1",
-					"$(inherited)",
-				);
-				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 9.2;
-				MTL_ENABLE_DEBUG_INFO = YES;
-				ONLY_ACTIVE_ARCH = YES;
-				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
-			};
-			name = Debug;
-		};
-		641ECD441C8C20BB00971615 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				COPY_PHASE_STRIP = NO;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				ENABLE_NS_ASSERTIONS = NO;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 9.2;
-				MTL_ENABLE_DEBUG_INFO = NO;
-				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
-				VALIDATE_PRODUCT = YES;
-			};
-			name = Release;
-		};
-		641ECD511C8C362D00971615 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				FRAMEWORK_SEARCH_PATHS = (
-					"$(inherited)",
-					"$(PROJECT_DIR)",
-				);
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				PRODUCT_NAME = xcodewrappersTests;
-			};
-			name = Debug;
-		};
-		641ECD521C8C362D00971615 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				FRAMEWORK_SEARCH_PATHS = (
-					"$(inherited)",
-					"$(PROJECT_DIR)",
-				);
-				PRODUCT_NAME = xcodewrappersTests;
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		641ECD1E1C8C20BB00971615 /* Build configuration list for PBXProject "xcodewrappers" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				641ECD431C8C20BB00971615 /* Debug */,
-				641ECD441C8C20BB00971615 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		641ECD481C8C20BB00971615 /* Build configuration list for PBXNativeTarget "xcodewrappersTests" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				641ECD511C8C362D00971615 /* Debug */,
-				641ECD521C8C362D00971615 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 641ECD1B1C8C20BB00971615 /* Project object */;
-}
diff --git a/bind/objc/xcodewrappers/xcodewrappers.xcodeproj/xcshareddata/xcschemes/xcodewrappers.xcscheme b/bind/objc/xcodewrappers/xcodewrappers.xcodeproj/xcshareddata/xcschemes/xcodewrappers.xcscheme
deleted file mode 100644
index 7a07a78..0000000
--- a/bind/objc/xcodewrappers/xcodewrappers.xcodeproj/xcshareddata/xcschemes/xcodewrappers.xcscheme
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
-   LastUpgradeVersion = "0720"
-   version = "1.3">
-   <BuildAction
-      parallelizeBuildables = "YES"
-      buildImplicitDependencies = "YES">
-      <BuildActionEntries>
-         <BuildActionEntry
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "YES"
-            buildForArchiving = "YES"
-            buildForAnalyzing = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "641ECD221C8C20BB00971615"
-               BuildableName = "xcodewrappers.app"
-               BlueprintName = "xcodewrappers"
-               ReferencedContainer = "container:xcodewrappers.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
-      </BuildActionEntries>
-   </BuildAction>
-   <TestAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      shouldUseLaunchSchemeArgsEnv = "YES">
-      <Testables>
-         <TestableReference
-            skipped = "NO">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "641ECD3B1C8C20BB00971615"
-               BuildableName = "xcodewrappersTests.xctest"
-               BlueprintName = "xcodewrappersTests"
-               ReferencedContainer = "container:xcodewrappers.xcodeproj">
-            </BuildableReference>
-         </TestableReference>
-      </Testables>
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "641ECD221C8C20BB00971615"
-            BuildableName = "xcodewrappers.app"
-            BlueprintName = "xcodewrappers"
-            ReferencedContainer = "container:xcodewrappers.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </TestAction>
-   <LaunchAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      launchStyle = "0"
-      useCustomWorkingDirectory = "NO"
-      ignoresPersistentStateOnLaunch = "NO"
-      debugDocumentVersioning = "YES"
-      debugServiceExtension = "internal"
-      allowLocationSimulation = "YES">
-      <BuildableProductRunnable
-         runnableDebuggingMode = "0">
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "641ECD221C8C20BB00971615"
-            BuildableName = "xcodewrappers.app"
-            BlueprintName = "xcodewrappers"
-            ReferencedContainer = "container:xcodewrappers.xcodeproj">
-         </BuildableReference>
-      </BuildableProductRunnable>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </LaunchAction>
-   <ProfileAction
-      buildConfiguration = "Release"
-      shouldUseLaunchSchemeArgsEnv = "YES"
-      savedToolIdentifier = ""
-      useCustomWorkingDirectory = "NO"
-      debugDocumentVersioning = "YES">
-      <BuildableProductRunnable
-         runnableDebuggingMode = "0">
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "641ECD221C8C20BB00971615"
-            BuildableName = "xcodewrappers.app"
-            BlueprintName = "xcodewrappers"
-            ReferencedContainer = "container:xcodewrappers.xcodeproj">
-         </BuildableReference>
-      </BuildableProductRunnable>
-   </ProfileAction>
-   <AnalyzeAction
-      buildConfiguration = "Debug">
-   </AnalyzeAction>
-   <ArchiveAction
-      buildConfiguration = "Release"
-      revealArchiveInOrganizer = "YES">
-   </ArchiveAction>
-</Scheme>
diff --git a/bind/objc/xcodewrappers/xcodewrappers/Info.plist b/bind/objc/xcodewrappers/xcodewrappers/Info.plist
deleted file mode 100644
index 40c6215..0000000
--- a/bind/objc/xcodewrappers/xcodewrappers/Info.plist
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>en</string>
-	<key>CFBundleExecutable</key>
-	<string>$(EXECUTABLE_NAME)</string>
-	<key>CFBundleIdentifier</key>
-	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>$(PRODUCT_NAME)</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1</string>
-	<key>LSRequiresIPhoneOS</key>
-	<true/>
-	<key>UILaunchStoryboardName</key>
-	<string>LaunchScreen</string>
-	<key>UIMainStoryboardFile</key>
-	<string>Main</string>
-	<key>UIRequiredDeviceCapabilities</key>
-	<array>
-		<string>armv7</string>
-	</array>
-	<key>UISupportedInterfaceOrientations</key>
-	<array>
-		<string>UIInterfaceOrientationPortrait</string>
-		<string>UIInterfaceOrientationLandscapeLeft</string>
-		<string>UIInterfaceOrientationLandscapeRight</string>
-	</array>
-	<key>UISupportedInterfaceOrientations~ipad</key>
-	<array>
-		<string>UIInterfaceOrientationPortrait</string>
-		<string>UIInterfaceOrientationPortraitUpsideDown</string>
-		<string>UIInterfaceOrientationLandscapeLeft</string>
-		<string>UIInterfaceOrientationLandscapeRight</string>
-	</array>
-</dict>
-</plist>
diff --git a/bind/objc/xcodewrappers/xcodewrappersTests/Info.plist b/bind/objc/xcodewrappers/xcodewrappersTests/Info.plist
deleted file mode 100644
index ba72822..0000000
--- a/bind/objc/xcodewrappers/xcodewrappersTests/Info.plist
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>en</string>
-	<key>CFBundleExecutable</key>
-	<string>$(EXECUTABLE_NAME)</string>
-	<key>CFBundleIdentifier</key>
-	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>$(PRODUCT_NAME)</string>
-	<key>CFBundlePackageType</key>
-	<string>BNDL</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1</string>
-</dict>
-</plist>
