1

本番用にパッケージをビルドしようとすると、app.jsonで設定したカスタムビルドパスが無視されます。私はこれをbuildPathで取得しました:

"buildPaths": {
        "testing":    "build/testing",
        "production": "build/project/assets/www",
        "package":    "build/project/assets/www",
        "native":     "build/native",
},

コマンドラインでこのコマンドを実行すると、次のようになります。

sencha app build production

コマンドラインは続行し、エラーなしで終了します。しかし、ビルドパスを調べると、productionという名前のフォルダーしか表示されません。これらのビルドパスが無視されるのはなぜですか?これらの値を設定すると、アプリはbuild / project / Assets/wwwフォルダーに移動すると思います。なにが問題ですか?

Sencha touch version: 2.1.0-rc1
Sencha CMD version: V3.0.0.190
4

3 に答える 3

2

buildPathsinapp.jsonは非推奨になりました(SenchaTouch2.1.0およびSenchaCmdv3.0.0.250以降は機能しなくなりました)

に示すようにパスを構成する必要があります./sencha/app/build-impl.xml

そのファイルはファイルによってインポートされる./build.xmlため、可能であれば、この最終ファイルで変更を行う必要があります。

必要なものが少し異なっていたので、ビルドパスを設定する方法が正確にはわかりません。

パッケージ化されたファイルをディレクトリ内にコピーして、Phonegapで使用できるようにしたかったのです。

build-impl.xmlファイルに変更したのは、次のように、内部にステートメントを記述した-after-build宣言でした。copy

<target name="-after-build">
    <copy todir="../phonegap_project/www">
        <fileset dir="${workspace.build.dir}/package"/>
    </copy>
</target>

最終的に、宛先ディレクトリを事前に空にする必要がある場合は、追加できます

    <delete dir="../phonegap_project/www"/>

copyステートメントの直前。

次に、sencha app build packageコマンドを使用してビルドします。

参照:この同じ問題に関する煎茶フォーラム

于 2012-11-21T15:07:49.577 に答える
1

こんにちはみんなSenchacmdv5+を使用しています。

私にとって、以下の行はプロジェクトのルートにあるbuild.xmlのタグは、チャームのように実行されます。

<target name="-after-build">
  <copy todir="../../gap/NAME_OF_MY_PROJECT_DIRECTORY/www">
    <fileset dir="${workspace.build.dir}/../package"/>
  </copy>
</target>

私の悪い英語で申し訳ありませんが、私は学んでいます。

于 2015-05-17T21:10:33.320 に答える
0

私はある種の回避策を思いついた。私が最初に試したのは絶対パスを設定することですが、それは役に立ちませんでした(はい、私はWindowsを使用しています)。

パスを変更する必要がある理由は次のとおりです。そのフォルダーにEclipse(android / phonegap)プロジェクトがあります。そして、煎茶アプリケーションを構築するたびに、パスが正しくありませんでした。だから私はeclipseプロジェクトのloadurlを次のように変更しました:

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.loadUrl("file:///android_asset/www/production/index.html");
    }

それ以外の:

  public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.loadUrl("file:///android_asset/www/index.html");
    }

ビルドパスを無視するため、実際には解決策ではありませんが、私にとってはもう問題ではありません。

于 2012-10-18T15:27:06.637 に答える