Closed7

Creating a build script with Unity as a Library for iOS

Fumiya YamanakaFumiya Yamanaka

やりたいこと

現状、上記2点を手動で行なっており、CIを回すために自動化したいのでそのためのスクリプトを作成する

  • NativeCallProxy.hpublicにする
  • DataUnityFrameworkに含める

背景

やりたいことは、【Unity】MirrativのEmbedding Unityを更新した話: 実践 Unity as a Libraryと全く同じである。
しかし、会社的な都合と自分がUnity周りの知識がなさすぎてそのまま導入するのが厳しい。

方針

xcodeprojというXcodeの設定を修正できるRubyのgemが あるので活用していく

参考: xcodeprojでxcodeをいじる

Fumiya YamanakaFumiya Yamanaka

最終的には下記のようなrubyのスクリプトができました。
こちらをCIやローカルでのBuild時に叩けばとりあえずは良さそうです。

#!/usr/bin/env ruby
require 'xcodeproj'

project = Xcodeproj::Project.open(*Dir.glob('unity/Builds/iOS/Unity-iPhone.xcodeproj'))
target = project.targets.find { |item| item.to_s == 'UnityFramework' }

# expose header
header_ref = project.files.select { |project_file| project_file.display_name == "NativeCallProxy.h" }.first
header_ref.remove_from_project
header = target.headers_build_phase.add_file_reference(header_ref)
header.settings = { 'ATTRIBUTES' => ['Public'] }

# add data to copy bundle resources
data_ref = project.main_group.find_file_by_path('Data')
copy_bundle_resources = target.resources_build_phase
copy_bundle_resources.add_file_reference(data_ref)

project.save
このスクラップは2020/11/24にクローズされました