cmd/gomobile: avoid header guard clash in iOS headers

Fix manually verified; none of our tests or the hello example fails
without this fix.

While we're here, update the hello iOS example to actually include the
Hello.framework and to use module @import syntax.

Fixes golang/go#18693

Change-Id: Id2edf80e2ed9ed8060ec825369a64f276a3b3c1d
Reviewed-on: https://go-review.googlesource.com/35330
Reviewed-by: David Crawshaw <crawshaw@golang.org>
diff --git a/cmd/gomobile/bind_iosapp.go b/cmd/gomobile/bind_iosapp.go
index 3f13587..f1baa2d 100644
--- a/cmd/gomobile/bind_iosapp.go
+++ b/cmd/gomobile/bind_iosapp.go
@@ -223,8 +223,8 @@
 {{range .pkgs}}//	{{.ImportPath}}
 {{end}}//
 // File is generated by gomobile bind. Do not edit.
-#ifndef __{{.title}}_H__
-#define __{{.title}}_H__
+#ifndef __{{.title}}_FRAMEWORK_H__
+#define __{{.title}}_FRAMEWORK_H__
 
 {{range .bases}}#include "{{.}}.objc.h"
 {{end}}
diff --git a/example/bind/ios/bind.xcodeproj/project.pbxproj b/example/bind/ios/bind.xcodeproj/project.pbxproj
index 8c72342..7a00dd5 100644
--- a/example/bind/ios/bind.xcodeproj/project.pbxproj
+++ b/example/bind/ios/bind.xcodeproj/project.pbxproj
@@ -12,6 +12,7 @@
 	objects = {
 
 /* Begin PBXBuildFile section */
+		64F44A6F1E2D433D009A4747 /* Hello.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64F44A6E1E2D433D009A4747 /* Hello.framework */; };
 		EBA3E2861B681AFA00018449 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = EBA3E2851B681AFA00018449 /* main.m */; };
 		EBA3E2891B681AFA00018449 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = EBA3E2881B681AFA00018449 /* AppDelegate.m */; };
 		EBA3E28C1B681AFA00018449 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EBA3E28B1B681AFA00018449 /* ViewController.m */; };
@@ -20,6 +21,7 @@
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
+		64F44A6E1E2D433D009A4747 /* Hello.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Hello.framework; sourceTree = "<group>"; };
 		EBA3E2801B681AFA00018449 /* bind.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = bind.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		EBA3E2841B681AFA00018449 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		EBA3E2851B681AFA00018449 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
@@ -36,6 +38,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				64F44A6F1E2D433D009A4747 /* Hello.framework in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -47,6 +50,7 @@
 			children = (
 				EBA3E2821B681AFA00018449 /* bind */,
 				EBA3E2811B681AFA00018449 /* Products */,
+				64F44A6E1E2D433D009A4747 /* Hello.framework */,
 			);
 			sourceTree = "<group>";
 		};
@@ -264,7 +268,10 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				FRAMEWORK_SEARCH_PATHS = "$(inherited)";
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)",
+				);
 				INFOPLIST_FILE = bind/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
 				PRODUCT_NAME = "$(TARGET_NAME)";
@@ -275,7 +282,10 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				FRAMEWORK_SEARCH_PATHS = "$(inherited)";
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)",
+				);
 				INFOPLIST_FILE = bind/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
 				PRODUCT_NAME = "$(TARGET_NAME)";
diff --git a/example/bind/ios/bind/ViewController.m b/example/bind/ios/bind/ViewController.m
index aacbe7e..db02d92 100644
--- a/example/bind/ios/bind/ViewController.m
+++ b/example/bind/ios/bind/ViewController.m
@@ -3,7 +3,7 @@
 // license that can be found in the LICENSE file.
 
 #import "ViewController.h"
-#import "hello/Hello.h"  // Gomobile bind generated header file in hello.framework
+@import Hello;  // Gomobile bind generated framework
 
 @interface ViewController ()
 @end