簡體   English   中英

如何使用 CMake 在 Xcode 中為應用程序擴展創建新目標?

[英]How to create the new target in Xcode for app extension using CMake?

我想在我的Xcode項目中使用通知內容擴展。 我使用 CMake 生成我的項目。 現在該項目只有一個目標。

我可以使用菜單文件 - 新建 - 目標 - Notification內容擴展在Xcode中手動將擴展添加為新目標。

您能否提供一個示例,說明如何使用 CMake 創建新的Xcode項目以及應用程序擴展的附加目標?

從CMake 3.8開始,您可以使用XCODE_PRODUCT_TYPE目標屬性讓CMake生成特定類型的應用程序。

應該排除故障的最小示例:

# add app bundle
add_executable(MyApp MACOSX_BUNDLE ${APP_SOURCE_FILES})

# add app extension bundle
add_library(MyAppExtension MODULE ${APPEX_SOURCE_FILES})
set_target_properties(MyAppExtension PROPERTIES
    BUNDLE YES
    XCODE_PRODUCT_TYPE com.apple.product-type.app-extension)

# link extension bundle with UserNotifications frameworks
find_library(UN_LIB UserNotifications)
find_library(UNUI_LIB UserNotificationsUI)
target_link_libraries(MyAppExtension PRIVATE ${UN_LIB} ${UNUI_LIB})

我在 mac 上的 cmake3.23 上測試過,app extension 是一個可執行文件而不是庫。 它應該是這樣的:

add_executable(MyAppExtension MACOSX_BUNDLE ${APPEX_SOURCE_FILES})
set_target_properties(MyAppExtension PROPERTIES
    XCODE_PRODUCT_TYPE com.apple.product-type.app-extension)

然后你可以將應用程序擴展嵌入到應用程序中:

set_target_properties(MyApp PROPERTIES
        XCODE_EMBED_APP_EXTENSIONS MyAppExtension)

暫無
暫無

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

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