発生し得るエラーは複数あります。
まずは公式が推奨する手順でアップデート作業をしましょう。
アップデート手順
ここを参照してアップデート作業をします。
アップデート前の準備
最も重要な注意点としては、アップデートを始める前に全てのSceneを閉じてPrefabやTextMeshProがSceneから読み込まれないようにしておく ことです。
空のSceneを開いて他のSceneを閉じ、プロジェクトを保存しましょう。
そしてプロジェクトのバックアップも忘れずに。
アップデート
自分は 2017.4.17f1 → 2018.4.0f1 とアップデートしました。
TextMeshProが重複してるエラー
Multiple plugins with the same name 'tmpro_plugin' (found at 'Packages/com.unity.textmeshpro/Plugins/64 Bit Plugins/TMPro_Plugin.bundle' and 'Assets/TextMesh Pro/Plugins/64 Bit Plugins/TMPro_Plugin.bundle'). That means one or more plugins are set to be compatible with Editor. Only one plugin at the time can be used by Editor. UnityEditor.EditorApplication:Internal_CallGlobalEventHandler()
2018.4で開くとTextMeshProが競合しているエラーが表示されます。
そこで、古いAsset配下のTextMeshProを削除します。
ここでの注意点は、フォントアセットやSpriteなどの自分で作ったリソースは退避 しておきましょう。
正しくエラーが解消されればそのまま使えます。
TMproが参照されないエラー
本来ならば Windowタブに TextMeshPro > Window - TextMeshPro - Project Files GUID Remapping Tool が表示をされ、このツールを使えば古いTextMeshProの参照が新しいものに入れ替えられるのですが、そもそもWindowタブにTextMeshProがなく、Consoleには次のエラーが表示されました。
The type or namespace name 'tmpro' could not be found
自分はここを見て、エディタをVS Codeに変更したら解消しました。
エディタの切り替えはPreferrences>External Script Editorから。
原因は完全には分かってませんが、VisualStudioがパッケージを上手く参照できずに発生してたエラーのようです。
改めてTextMeshPro > Window - TextMeshPro - Project Files GUID Remapping Tool を使ってTextMeshProの参照を直します。
その後、自分は再び使うエディタをVisualStudioに戻しました。
エラーは発生しませんでした。
VisualStudioのバージョンが異なったり、MacではなくWindowsだと発生しないか、復旧手順が異なるかもしれません。
自分の環境
MacOS10.14.4
Visual Studio 2019 for Mac
Unity2017.4
→Unity2018.4