我正在尝试构建一个依赖于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
期待您提出解决此问题的建议。
1条答案
按热度按时间xuo3flqw1#
我也面临着同样的问题,不过,我发现Github上有一个问题已经存在了很长时间了:https://github.com/forcedotcom/SalesforceMobileSDK-iOS/issues/3277
在Salesforce决定通过Swift Package Manager提供MobileSync之前,可以通过CocoaPods等方式提供。
在项目中使用
import MobileSync