問題タブ [custom-build]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
613 参照

custom-build - Scandit バーコード プラグインを Phonegap 開発者 iOS アプリのカスタム ビルドに追加するにはどうすればよいですか?

Phonegap Desktop と Phonegap Developer アプリをしばらく使用しています。これは、私の開発をすばやくテストするのに非常に興味深いものです。しかし、カメラのディスプレイをフルスクリーンで表示している埋め込みバーコード スキャナーの制限に直面しています。同時に情報を表示するためのスペースを確保するために、カメラ ディスプレイをコンテナーに埋め込む必要があります。

しばらく検索した後、PhoneGap 用の Scandit SDK が、カメラ表示のトリミングを可能にする唯一のプラグインであることを発見しました。

Scandit の実装に多くの時間を費やしましたが、成功しませんでした。少なくともアプリをビルドすることはできますが、使用するとスキャナーが機能しません...

私が従った手順は次のとおりです。

  • Git から PhoneGap Developer プロジェクトを複製する
  • npm を使用してインストールする
  • iOSプラットフォームを追加
  • Xcode プロジェクト ファイルを開く
  • アプリケーションをビルドしてデバイスで実行する

=> 現時点では、PG Dev は正常に動作しており、アプリケーションは正常に動作しています

それから、私は続けました:

  • デフォルトのバーコード スキャナー プラグインへのすべての参照を削除します
  • アプリケーションをビルドしてデバイスで実行する

==> PG Dev はまだ正常に動作しており、私のアプリケーションは正常に動作しています

次のステップ:

  • Git から Scandit phonegap プラグインを複製する
  • scandit アカウントから Scandit SDK をダウンロードする
  • SDK をクローン化された scandit phonegap プラグインに入れます
  • plugin.xml を変更して、バンドルとフレームワークへのパスを変更します (パス内のバージョン名の不一致)
  • バンドルとフレームワークを scandit の正しいフォルダーにコピーします
  • config.xml を変更して Scandit への参照を含め、spec 属性を SDK のバージョンに設定します。
  • アプリケーションをビルドしてデバイスで実行する

==> PG Dev はまだ正常に動作しており、私のアプリケーションも正常に動作しています (現時点では scandit を使用していません)。

次のステップ:

  • 自分のプロジェクトを PhoneGap デスクトップから削除する
  • Scandit サンプル プロジェクトを PG Desktop に追加します。そこから「Continuous Scaled/Cropped」の例を使用しました: http://docs.scandit.com/4.12/phonegap/cordova-examples.html
  • ライセンスのアプリ キーを追加する
  • デバイスで PG Dev アプリを起動し、プロジェクト ファイルをダウンロードする

==> PG Dev は正常に動作しており、Scandit サンプル アプリをダウンロードしてください。しかし、アプリは動作しません。スキャンボタンをクリックしても何も起こりません..

調査の結果、Scandit クラスで例外が発生したことがわかりました。コマンド 'Scandit.License.setAppKey' に try を追加すると、PG Desktop ログで次のエラーを報告できました。

この try/catch を追加すると、アプリは次の行で例外を発生させます。

私のエラーについてウェブを検索した後、フレームワークを手動で追加して xcode にバンドルすることを提案する投稿がありました。

そのため、フレームワークとバンドルを xcode プロジェクトのフレームワーク フォルダーにドラッグ アンド ドロップして実行しました。

しかし、プロジェクトをビルドしようとすると、多くのエラーで失敗します...これを解決するには、すべての scandit プラグイン ファイル (*.h および *.m) を手動で xcode プロジェクトに追加する必要がありました。

以前のエラーはすべて解決されましたが、新しいエラーが発生しました。これは、他のいくつかのネイティブ ios フレームワークが欠落していることが原因でした... これらのフレームワークが追加されると、すべてのエラーが解決され、アプリケーションを正常にビルドすることができました。

しかし、それを実行すると、「ReferenceError:変数が見つかりません: Scandit」というエラーが引き続き発生します。

私は今アイデアを使い果たしています..私は何を間違えましたか? Scandit が組み込まれた PG デスクトップを構築できた人はいますか?

ありがとう。

この長い投稿で申し訳ありませんが、できるだけ正確になるように努めました。

0 投票する
1 に答える
1729 参照

bazel - Bazel で一時ファイルを作成して読み取る

Bazel を使用して TensorFlow 用のカスタム ビルド システムをセットアップしようとしています。構築ステップでキャッシュとして使用する構成ステップで一時ファイルを作成する必要があります。.bzl ファイルで次のように作成できました。

そして、構成後、フォルダー内にあることがわかります。

実際の repository_name はどこですかrepository_ctx.name

しかし、ビルド時に .tpl スクリプトからこのパスにアクセスできません。の置換を介して.bzlスクリプトから送信したかったのですrepository_ctx.templateが、ここでもこのパスを見つける方法が見つかりません!

bazel-out や bazel-genfiles などのシンボリック リンクを使用してこのフォルダーにアクセスできるようには見えません (非常に有望に思えますが、そうではありません...)。また、このフォルダーの外にファイルを作成することもできませんでした。

これは非常に単純な問題であり、パスをハードコーディングするか、パスへのパスを指定する以外に方法がないとは信じられませんfind...