開發 Unity iOS plugin 時遇到的坑

Undefined symbols for architecture arm64:

在 C# .cs 檔內,當我們使用 [DllImport("__Internal")] 宣告 Objective-C 以後,實作的 Objective-C .mm 檔必須置於 .cs 檔的同一層的 “iOS” 資料夾內,否則會出現這個 compile error 。正確的檔案結構如圖:
開發 Unity iOS plugin 時遇到的坑_第1张图片

error: Build input file cannot be found:

從 Unity Asset 裡面刪除 Objective-C 的 .mm 檔再輸出 Xcode project (Replace 或 Append) 之後,必須重新啟動以重新讀取 project 再 build app ,否則會出現這個 compile error。

重新建置 Xcode project 後,須重新開啟 Xcode project

當 Unity 再次建置 (輸出) Xcode project 後 (Replace或Append) ,一律重新開啟Xcode project ,以避免 Xcode cache 未更新,Unity 變更沒有作用到建置的 App 之中。

重新建置 Xcode project 後,須檢查 Target Signing 和 Target Capabilities

通常 App Target 的 General > Signing 和 Capabilities > App Groups 都需要再設置一次。

The operation requires a bundle identifier

在 Xcode 中設定 Capabilieties 的時候,如果出現這個錯誤,請到 Build Settings > All > 搜尋 “Product Bundle Identifier” ,然後輸入你的 “Bundle Identifier” (同 General > Identity 裡面的 “Bundle Identifier” 之值,例如 “com.YourCompany.YourApp”)。

你可能感兴趣的:(Unity,iOS)