1

私はサードパーティのオープンソースライブラリを使用するためにハイパーループを使用しようとしています。私が使用したいライブラリはSweet Alert iOSです。Appceleratorハイパーループ - 第三者のスウィフトライブラリを使用

ライブラリにはswift fileがあります。私はこのファイルをプロジェクトのメインフォルダ内のsrcディレクトリの中に入れました(srcフォルダ内にある必要がありますか?プロジェクト内の他のフォルダを使用できますか?チタンのドキュメントによると

:私のアプリで

Any *.swift files found in your src directories will automatically be compiled

私はこのような何か:

var UIView = require('UIKit/UIView'); 
Ti.API.info('UIView => ' + UIView); 

それが動作します。しかし、私は迅速なファイル内のクラスのいずれかを要求しようとすると、私はそれがアーキテクチャx86_64モジュールを見つけることができないというエラーが発生します。

var sweetAlert = require('SweetAlert'); 
var cancelAnimatedView = require('CancelAnimatedView'); 

SweetAlertのソースコードを見てみると、他のクラスは普通のクラスである一方で、私はまたSweetAlertクラスがopenであることに気づく:

open class SweetAlert 

私がいないので、私は、迅速な開発者ではありませんよ本当にそれが何を意味するかを知っている

私はここで何が欠けていますか?

EDIT

いくつかの進展が...だから、私はsrcフレームワークとMyFrameworkの名前を定義していますappc.jsファイルを持っている必要があることがわかりました。そして、requireは、迅速なファイルのファイル名と一致する必要があります。私は、迅速なコンパイルについてのいくつかのより多くの興味深い出力を参照して、エラーを取得してコンパイルするとき:今

[INFO] Generating metabase for swift MyFramework /Users/ophir/Documents/Appcelerator_Studio_Workspace/HyperloopTest1/src/SweetAlert.swift 

2017-06-29T14:43:44.061Z | ERROR | An uncaught exception was thrown! 
Cannot read property '1' of null 

2017-06-29T14:43:44.064Z | ERROR | Cannot read property '1' of null 

EDIT 2

私は、迅速なファイル内のすべてのスクリプトをクリアして、それを狭くしました

輸入財団 輸入のUIKit 輸入QuartzCore

public enum AlertStyle { 
    case success,error,warning,none 
    case customImag(imageFile:String) 
} 

class SweetAlert: UIViewController { 
} 

class AnimatableView: UIView { 
    func animate(){ 

    } 
} 
0:以下の障害が発生したスクリプトにダウン

func animate() { }を削除すると失敗しません。この関数がそのSweetAlertクラスの内部にあっても失敗します。そして私が読んだことから、これは非常に標準的な迅速なコードです。

これは私にとって不思議なことですが、HyperClop 2.0.0(!)はプロダクションアプリに対応していますか?

答えて

1

シンプルなSwiftクラスを作成して、それを疎なドキュメントに表示されるようにappc.jsファイルが設定されたTitanium/Appceleratorプロジェクトに含めても同様のエラーが表示されます。 Swiftファイルからクラスを参照しない限り、プロジェクトは問題なくコンパイルされ、Xcode Simulatorで実行されます。プロジェクトでそのクラスを参照すると、エラーが発生します。コンパイルログに基づいて、Swiftファイルはプロジェクトにコンパイルされますが、最終的にクラスがJavaScriptコードに「必要」と正しくリンクされていないようです。

オンラインでソリューションを検索すると、この同じ問題がすべて表示され、Titanium/Appceleratorチームは決して解決策を提示しません。私は、Titanium SDK 6.0.1,6.1.2、および6.2.0をすべて同じ結果で試しました。私は既存のプロジェクトと新しいプロジェクトにSwiftコードを追加しようとしました。また、Titanium/Appceleratorをアンインストールして再インストールしました。 (私は幸運のサンプルアプリケーションを実行しようとしました!)

ハイパーループは、UIKitのようなネイティブフレームワークを使用すると動作しますが、サードパーティ製のフレームワークやクラス用のプロダクションアプリの準備ができていないようです。

私の発見があなたと他の人がプロジェクトをデバッグするのに役立つことを願っていますが、残念ながら、私はその外で多くの助けをすることはできません。

関連する問題