簡體   English   中英

Xcode 10 上的 SiriKit 自定義意圖鏈接錯誤

[英]SiriKit custom intent linking error on Xcode 10

我創建了一個新的 Intent 文件,現在出現以下鏈接器錯誤:

Undefined symbols for architecture arm64:

"_OBJC_METACLASS_$_INIntentResponse", referenced from:
      _OBJC_METACLASS_$_KWdsjkhfjkdhskfIntentResponse in KWdsjkhfjkdhskfIntent.o
  "_OBJC_CLASS_$_INIntentResponse", referenced from:
      _OBJC_CLASS_$_KWdsjkhfjkdhskfIntentResponse in KWdsjkhfjkdhskfIntent.o
  "_OBJC_CLASS_$_INIntent", referenced from:
      _OBJC_CLASS_$_KWdsjkhfjkdhskfIntent in KWdsjkhfjkdhskfIntent.o
  "_OBJC_METACLASS_$_INIntent", referenced from:
      _OBJC_METACLASS_$_KWdsjkhfjkdhskfIntent in KWdsjkhfjkdhskfIntent.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

當我將自定義.intentdefinition文件添加到沒有Intents擴展名的項目時,我遇到了這個問題。 我通過以下步驟解決了它:

  • 刪除.intentdefinition文件
  • 添加新的目標 Intents 擴展
  • 添加新的目標框架MyAppKit
  • 確保MyApp目標依賴於新的 Intents 擴展和MyAppKit框架
  • 添加一個新的.intentdefinition文件,僅檢查MyAppKit目標的目標成員資格。

在此之后,鏈接錯誤消失了。 我還沒有完成擴展,所以肯定還需要其他步驟,例如提供實現自定義意圖的 IntentHandler 的實現。

這里可能並不嚴格要求該框架,但我認為這是推薦的方式,特別是如果您計划實施可以在后台解決的快捷方式。

來自 Apple 論壇 ( edford ) :

看起來 Intent 框架沒有鏈接到目標。 在目標的構建階段,確保 Intents.framework 存在於 Link Binary with Libraries 階段。

這解決了我的類似問題。

這是一個鏈接錯誤:將 Intents 和 IntentsUI 框架添加到您的目標。

在此處輸入圖片說明

當我嘗試在兩個不同的目標(主應用程序和意圖擴展)上使用生成的 Intent 代碼而每個目標具有不同的部署版本和架構時,我發生了這個錯誤。

我的主應用程序正在部署到 ios 9.0 (armv7)並且意圖擴展至少需要是 ios 12.0 (arm64)

為了解決這個問題,生成的意圖代碼必須只針對一種架構類型。 就我而言,我必須將主應用程序部署版本升級到ios 12.0 ,將架構類型升級到arm64以匹配意圖擴展。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM