all green

プログラム、アプリ作成、Web等備忘録が中心です

UnityでXcodeAPIを使用してBuild Settingsを変更する場合のパラメーターの探し方(PBXProject.AddBuildPropertyに渡すname)

PostProcessBuildでXCodeのプロジェクト設定変更時に使用する
パラメータ名の探し方。

PBXProject.AddBuildPropertyで渡すパラメータ名について
以下の方法で探すことができる。


1度iOS版のビルドを行いXCodeのprojectを生成する。

生成された「Unity-iPhone.xcodeproj」内に「project.pbxproj」というファイルがあるので
その中身を確認

vi Unity-iPhone.xcodeproj/project.pbxproj

「/* Begin XCBuildConfiguration section */」で検索するとビルド設定らしきものが見つかる

project.pbxproj

~~~ 省略 ~~~
/* Begin XCBuildConfiguration section */
		1D6058940D05DD3E006BFB54 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = (
					armv7,
					arm64,
				);
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				COPY_PHASE_STRIP = NO;
				ENABLE_BITCODE = NO;
				FRAMEWORK_SEARCH_PATHS = (
					"$(inherited)",
					"$(PROJECT_DIR)",
				);
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_CPP_EXCEPTIONS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = Classes/Prefix.pch;
				GCC_USE_INDIRECT_FUNCTION_CALLS = NO;
				HEADER_SEARCH_PATHS = (
					"\"$(SRCROOT)/Classes\"",
					"\"$(SRCROOT)\"",
					"$(SRCROOT)/Classes/Native",
					"$(SRCROOT)/Libraries/bdwgc/include",
					"$(SRCROOT)/Libraries/libil2cpp/include",
				);
				INFOPLIST_FILE = Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 6.0;
				LD_GENERATE_MAP_FILE = YES;
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"\"$(SRCROOT)\"",
					"\"$(SRCROOT)/Libraries\"",
				);
				ONLY_ACTIVE_ARCH = YES;
				OTHER_CFLAGS = "-DINIT_SCRIPTING_BACKEND=1";
				OTHER_LDFLAGS = (
					"-weak_framework",
					CoreMotion,
					"-weak-lSystem",
					"-ObjC",
				);
				PRODUCT_NAME = hogehoge;
				SDKROOT = iphoneos;
				SUPPORTED_PLATFORMS = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				UNITY_RUNTIME_VERSION = 5.1.2f1;
				UNITY_SCRIPTING_BACKEND = il2cpp;
			};
			name = Debug;
		};
~~~ 省略 ~~~


「buildSettings」の中身を見るとBuild Settingsで設定している値が見つかる。

例:
「Other Linkage Flags」の設定を追加したい場合は「OTHER_LDFLAGS」を使用する

PBXProject pbxProject = new PBXProject();
string target = pbxProject.TargetGuidByName("Unity-iPhone");
pbxProject.AddBuildProperty(target, "OTHER_LDFLAGS", "-ObjC");