xcode 使用Salesforce移动的SDK依赖项构建Swift软件包

ar7v8xwq  于 2023-02-13  发布在  Swift
关注(0)|答案(1)|浏览(155)

我正在尝试构建一个依赖于Salesforce Mobile SDK(MobileSync库)的Swift软件包。我尚未找到任何适用于Salesforce Mobile SDK的Swift软件包,因此我尝试使用MobileSync pod。
"我所尝试的"
以下是我遵循的步骤

  • 我创建了一个新的框架项目(我们称之为MobileSyncSPM
  • 初始化pod文件并添加MobileSync依赖项
  • 我想通过从框架头文件导入来暴露MobileSync包的所有公共接口,所以在框架的框架头文件(MobileSyncSPM.h文件)中添加了MobileSync.h头文件的导入
#import <MobileSync/MobileSync.h>
  • 已将目标Build Libraries for Distribution的构建设置更改为YES
  • 已存档工作区项目

x一个一个一个一个x一个一个二个x

  • 为存档生成XCFramework二进制文件
xcodebuild -create-xcframework \
-framework './build/MobileSyncSPM.framework-iphoneos.xcarchive/Products/Library/Frameworks/MobileSyncSPM.framework' \
-framework './build/MobileSyncSPM.framework-iphonesimulator.xcarchive/Products/Library/Frameworks/MobileSyncSPM.framework' \
-output './build/MobileSyncSPM.xcframework'
  • 我在Swift包的Sources下添加了XCFramework二进制文件。
  • Package.swift文件中,我尝试将XCFramework二进制文件添加为binaryTarget,如下所示-
targets: [
        // Targets are the basic building blocks of a package. A target can define a module or a test suite.
        // Targets can depend on other targets in this package, and on products in packages this package depends on.
        .target(
            name: "MyUtils",
            dependencies: [
                .byName(name: "MobileSyncSPM")
            ]
        ),
        .binaryTarget(name: "MobileSyncSPM", path: "Sources/MyUtils/MobileSyncSPM.xcframework"),
        .testTarget(
            name: "MyUtilsTests",
            dependencies: ["MyUtils"]
        ),
    ]
  • Swift包使用二进制目标成功构建。

当我尝试从Swift包内部导入XCFramework库(MobileSyncSPM)时,出现问题。
在swift包下的swift文件中,如果我添加以下导入

import MobileSyncSPM

我得到的错误是

Could not build Objective-C module MobileSyncSPM

期待您提出解决此问题的建议。

xuo3flqw

xuo3flqw1#

我也面临着同样的问题,不过,我发现Github上有一个问题已经存在了很长时间了:https://github.com/forcedotcom/SalesforceMobileSDK-iOS/issues/3277
在Salesforce决定通过Swift Package Manager提供MobileSync之前,可以通过CocoaPods等方式提供。

source 'https://github.com/forcedotcom/SalesforceMobileSDK-iOS-Specs.git'

target 'App' do
    pod 'MobileSync'
end

在项目中使用import MobileSync

相关问题