Unity(実行ファイル)のパス取得
def get_unity_path(project_path)
unity_version = File.read("#{project_path}/ProjectSettings/ProjectVersion.txt").split(" ")[1].strip
unity_path = "/Applications/Unity#{unity_version}"
unity_path = "/Applications/Unity/Hub/Editor/#{unity_version}" if File.exists?("/Applications/Unity/Hub/Editor/#{unity_version}")
return unity_path
end
Unity上のメソッドを実行
private_lane :unity do |options|
unity_path = get_unity_path(options[:project_path])
args = ""
args += " -buildTarget #{options[:target]}" if options[:target]
args += " #{options[:args]}" if options[:args]
sh("#{unity_path}/Unity.app/Contents/MacOS/Unity -batchmode #{args} -nographics -quit -projectPath #{options[:project_path]} -executeMethod #{options[:method]} -logFile /dev/stdout")
end
unity(
project_path: project_path,
target: "osx",
method: "AssetBundles.BuildScript.BuildAssetBundles",
)
Unityテスト実行
private_lane :run_unity_editor_tests do |options|
unity_path = get_unity_path(options[:project_path])
sh("#{unity_path}/Unity.app/Contents/MacOS/Unity -batchmode -quit -runEditorTests -editorTestsResultFile #{options[:result_path]} -projectPath #{options[:project_path]} -logFile /dev/stdout")
end
XCodeビルドを頑張る
xcargs = ""
xcargs += " IDEBuildOperationMaxNumberOfConcurrentCompileTasks=16"
xcargs += " GCC_GENERATE_DEBUGGING_SYMBOLS=NO DEBUG_INFORMATION_FORMAT=dwarf"
xcargs += " ONLY_ACTIVE_ARCH=YES VALID_ARCHS=arm64"
xcargs += " CC=\"ccacheclang\" GCC_PRECOMPILE_PREFIX_HEADER=NO" if File.exist?("/usr/local/bin/ccacheclang")
build_ios_app(
project: xcodeproj,
scheme: "Unity-iPhone",
codesigning_identity: codesigning_identity,
configuration: "Debug",
export_method: "ad-hoc",
export_options: {
signingStyle: "manual",
compileBitcode: false,
provisioningProfiles: {
"#{options[:app_identifier]}": "#{provisining_uuid}"
},
},
skip_profile_detection: true,
include_bitcode: false,
include_symbols: false,
xcargs: xcargs,
)