Unity URL Scheme設定

#PostProcessで追加。プロジェクトでruby gem xcodeprojを使っていたので

require "xcodeproj"

def get_bundle_identifier(plist_path)
  command = "/usr/libexec/PlistBuddy -c 'Print :CFBundleIdentifier' #{plist_path}"
  # コマンドを実行した結果を変数に入れる
  result = %x[#{command}]
  return result.gsub("${PRODUCT_NAME}", "yourappname")
end

### URL Scheme の設定 ###
plist = "#{ARGV[0]}/Info.plist"
appname = get_bundle_identifier(plist) #Bundle Identifierと同じにしておく
system("/usr/libexec/PlistBuddy -c 'Add :CFBundleURLTypes array' #{plist}")
system("/usr/libexec/PlistBuddy -c 'Add CFBundleURLTypes:0:CFBundleURLSchemes array' #{plist}")
system("/usr/libexec/PlistBuddy -c 'Add CFBundleURLTypes:0:CFBundleURLSchemes:0 string #{appname}' #{plist}")
<a href="aaa.bbb.ccc://">iOS App</a>
<!-- URL Scheme -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="aaa.bbb.ccc" />
</intent-filter>          
<a href="aaa.bbb.ccc://a=b">Android App</a>
  • Androidにて、dataタグにhostなどを書くとURLにそれも含めないと開かない(ので今回は書いてない)
  • iOSではブラウザのURL欄に入力すれば飛べるが、Androidだと検索してしまうのでHTML aタグで確認する
  • URL Schemeが間違っているのか、URLタグの書き方が間違っているのかが把握しづらい