The Unity project now is open source in Github: https://github.com/Tongzhou-Yu/BoltARFoundation

Environment

Unity 2020.2.1f1c1 (got “EXC_BAD_ACCESS” error while using 2020.1.x, no solution found)
ARFoundation 4.0.9 (nothing special, just try the newest version)
ARKit 4.0.0 (nothing special, just try the newest version)
Bolt 1.4.13 (nothing special, just try the newest version)

Steps

① Import ARFoundation, ARKit (or ARCore), Bolt from Package Manager.

② While setup Bolt, add “Unity.XR.ARFoundation” and “Unity.XR.ARSubsystems” in Assemblies, then add “ARRaycastHit” and “Pose” in Types.

③ Add component “Flow Machine” on “AR Session Origin”, following the logic below.

Flow Machine of “Place On Plane” AR Function

④ Set the Variables on “AR Session Origin” as below, if “List<ARRaycastHit>” can’t be found, turn OFF “AOT Safe Mode” in Edit>Perferences>BoltEx.

⑤ MOST IMPORTANT: before build and run on mobile, click “Pre-Build” in Tools>Bolt>AOT Pre-Build. Then everything should work well.