菜鸟教程小白 发表于 2022-12-13 02:19:04

ios - ionic cordova build ios 使用 xcode swift 3 框架安装自定义插件失败


                                            <p><p>我正在尝试从我创建的 iOS 框架中读取一个函数,该框架已添加到自定义 cordova 插件中。
我已将框架编译为“通用 iOS 设备”,正如一些帖子中所建议的那样,但我在使用框架功能时仍然遇到问题..</p>

<p>我正在使用cordova cli 7.0.1 和cordova-ios”:^4.4.0。
在我正在使用的插件 config.xml 文件中</p>

<p></p>

<p>添加我的框架但调用我的函数(在尝试读取框架函数的插件中)返回:
错误:“打印机”不可用:找不到此类的 Swift 声明:
    让 printtt = testtest.printer();
    ^~~~~~~
    testtest.printer:2:12:注意:“打印机”已在此处明确标记为不可用
    开放类打印机:NSObject {
    ^
   /platforms/ios/MyApp/Plugins/com-moduscreate-plugins-echo/ModusEchoSwift.swift:11:5:
    错误:“打印机”类型的值没有成员“printlocal”
    printtt.printlocal();
    ^~~~~~~ ~~~~~~~~~~</p>

<pre><code>** BUILD FAILED **
</code></pre>

<p>有人遇到过这样的问题吗?
PS。我的框架包含一个带有公共(public)方法的公共(public)类打印机
    我在 xcode 8.xx 下测试过的 printlocal</p>

<pre><code>**my plugin.xml file:**
&lt;?xml version=&#39;1.0&#39; encoding=&#39;utf-8&#39;?&gt;
&lt;plugin id=&#34;com-moduscreate-plugins-echo&#34; version=&#34;0.0.1&#34;
xmlns=&#34;http://apache.org/cordova/ns/plugins/1.0&#34;
xmlns:android=&#34;http://schemas.android.com/apk/res/android&#34;&gt;
    &lt;name&gt;ModusEcho&lt;/name&gt;
    &lt;js-module name=&#34;ModusEcho&#34; src=&#34;www/ModusEcho.js&#34;&gt;
      &lt;clobbers target=&#34;modusEcho&#34; /&gt;
    &lt;/js-module&gt;
    &lt;platform name=&#34;ios&#34;&gt;
       &lt;framework src=&#34;src/ios/testtest.framework&#34; custom=&#34;true&#34; embed=&#34;true&#34; /&gt;
      &lt;config-file target=&#34;config.xml&#34; parent=&#34;/*&#34;&gt;
            &lt;feature name=&#34;ModusEcho&#34;&gt;
                &lt;param name=&#34;ios-package&#34; value=&#34;ModusEchoSwift&#34; /&gt;
            &lt;/feature&gt;
      &lt;/config-file&gt;
      &lt;source-file src=&#34;src/ios/ModusEchoSwift.swift&#34; /&gt;
    &lt;/platform&gt;
&lt;/plugin&gt;
</code></pre>

<p><strong>我的 swift 文件:</strong> </p>

<pre><code>import testtest
@objc(ModusEchoSwift) class ModusEchoSwift : CDVPlugin{
@objc(echocrypt:)
func echocrypt(command: CDVInvokedUrlCommand) {
    var pluginResult = CDVPluginResult(
      status: CDVCommandStatus_ERROR
    )

    let printtt = testtest.printer();
    printtt.printlocal();
}
}

**my dynamic framework class:**
import Foundation
public class printer:NSObject {
    public func printlocal() {
      print(&#34;from printer!!!&#34;);

    }
}
</code></pre>

<p><strong>www/modusecoh.js 文件:</strong></p>

<pre><code>var exec = require(&#39;cordova/exec&#39;);
exports.echocrypt = function(arg0, success, error) {
    exec(success, error, &#34;ModusEcho&#34;, &#34;echocrypt&#34;`enter code here`, );
};
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>发现问题:
由于我使用了“cordova-plugin-add-swift-support”插件,它已将项目的 ios min 部署目标设置为 7.0,因此框架(动态库)仅从 8.0 开始引入
将插件 IOS_MIN_DEPLOYMENT_TARGET 全局变量值更改为 8.0 时,(重新编译后),它已经开始工作了!
因此,上面的代码是使用 swift3 编写的来自 cordova 自定义插件的 xcode 框架的方式。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - ionic cordova build ios 使用 xcode swift 3 框架安装自定义插件失败,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/45281556/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/45281556/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - ionic cordova build ios 使用 xcode swift 3 框架安装自定义插件失败