在本机脚本项目中使用第 3 方本机 SDK - 框架似乎不是动态框架
Using 3rd party, native SDK in nativescript project - Framework does not appear to be a dynamic framework
我正在开发 Nativescript + Angular 共享网络和移动应用程序。我使用的是最新版本的框架(TNS 6 和 Angular 8)。我需要使用 iOS - https://github.com/dotpay/Mobile-SDK-iOS 本机可用的 SDK。我试着把它包装成一个插件,并尝试通过两种方式做到这一点:
- 使用 Podfile 创建插件 - 在这种情况下,当我尝试在我的最终项目中访问 DotPay 对象时,我添加了
declare var DotPay;
在文件顶部,但我收到错误
Can't find variable: DotPay
当我运行代码时。
- 将整个库添加到 platforms/ios/ 目录中。在这种情况下,我什至无法构建项目,因为我收到此错误:
The bundle at $PROJECT_DIR/node_modules/nativescript-dotpay/platforms/ios/DotPaySDK.framework does not appear to be a dynamic framework.
我尝试在多个位置添加 module.modulemap 文件 (/platforms/ios, /platforms/ios/DotPaySDK.framework, /platforms/ios/DotPaySDK.framework/Modules) 但它没有改变任何东西。
此外,调用此命令后
TNS_TYPESCRIPT_DECLARATIONS_PATH="$(pwd)/typings" tns build ios
没有生成此 SDK 的定义文件(在两种情况下)。
SDK结构为:
我也 运行 第二个选项
tns build ios --log trace
我发现它在 ios-project-service.js,第 499-502
行失败
const packageType = plistJson["CFBundlePackageType"];
if (packageType !== "FMWK") {
this.$errors.failWithoutHelp("The bundle at %s does not appear to be a dynamic framework.", libraryPath);
}
因为 SDK Info.plist 的 CFBundlePackageType 密钥是 BNDL 而不是 FMWK。
要为 iOS SDK 构建插件,您应该从 Nativescript 插件种子开始。
在该插件项目中,将您的 *.framework 放入 $myproject/src/platforms/ios
。
之后从创建的演示项目生成类型。然后你可以看到什么是"visible"什么不是
最后,我得到了有关 ios-Nativescript 运行时存储库的帮助。这是问题所在:https://github.com/NativeScript/ios-runtime/issues/1187
我正在开发 Nativescript + Angular 共享网络和移动应用程序。我使用的是最新版本的框架(TNS 6 和 Angular 8)。我需要使用 iOS - https://github.com/dotpay/Mobile-SDK-iOS 本机可用的 SDK。我试着把它包装成一个插件,并尝试通过两种方式做到这一点:
- 使用 Podfile 创建插件 - 在这种情况下,当我尝试在我的最终项目中访问 DotPay 对象时,我添加了
declare var DotPay;
在文件顶部,但我收到错误
Can't find variable: DotPay
当我运行代码时。
- 将整个库添加到 platforms/ios/ 目录中。在这种情况下,我什至无法构建项目,因为我收到此错误:
The bundle at $PROJECT_DIR/node_modules/nativescript-dotpay/platforms/ios/DotPaySDK.framework does not appear to be a dynamic framework.
我尝试在多个位置添加 module.modulemap 文件 (/platforms/ios, /platforms/ios/DotPaySDK.framework, /platforms/ios/DotPaySDK.framework/Modules) 但它没有改变任何东西。
此外,调用此命令后
TNS_TYPESCRIPT_DECLARATIONS_PATH="$(pwd)/typings" tns build ios
没有生成此 SDK 的定义文件(在两种情况下)。
SDK结构为:
我也 运行 第二个选项
tns build ios --log trace
我发现它在 ios-project-service.js,第 499-502
行失败 const packageType = plistJson["CFBundlePackageType"];
if (packageType !== "FMWK") {
this.$errors.failWithoutHelp("The bundle at %s does not appear to be a dynamic framework.", libraryPath);
}
因为 SDK Info.plist 的 CFBundlePackageType 密钥是 BNDL 而不是 FMWK。
要为 iOS SDK 构建插件,您应该从 Nativescript 插件种子开始。
在该插件项目中,将您的 *.framework 放入 $myproject/src/platforms/ios
。
之后从创建的演示项目生成类型。然后你可以看到什么是"visible"什么不是
最后,我得到了有关 ios-Nativescript 运行时存储库的帮助。这是问题所在:https://github.com/NativeScript/ios-runtime/issues/1187