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");