App name with Multibytes characters in config.xml hangs forever

オープン
#78 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
nodejs, typescript
領域
cli, mobile-dev

調査の方向性

config.xml でマルチバイトの を使用した場合の失敗を再現し、報告されたスタックトレースをもとに node-ioslib/dist/client/afc.js、特に toCString と makeDirectory を調査します。ASCII のアプリ名を使用した場合の動作と比較し、中国語、日本語、またはヒンディー語の名前で native-run が正常に実行できることを確認して修正を検証します。

索引モデルが issue の本文から書いたものです。

説明

ios

Version:

0.2.8

Description:

App display name with multi-bytes charactesr in config.xml effect native-run hung forever

[ config.xml ]

multi-bytes name such as below result in hung forever...
<name>我的程式</name>
<name>私のプログラム</name>
<name>मेरा कार्यक्रम</name>

Command Output:

forever hangs, error messages:
1,121,62,87,105,70,105,77,65,67,65,100,100,114,101,115,115,60,47,107,101,121,62,10,9,60,115,116,114,105,110,103,62,54,56,58,100,98,58,99,97,58,55,53,58,57,55,58,52,97,60,47,115,116,114,105,110,103,62,10,60,47,100,105,99,116,62,10,60,47,112,108,105,115,116,62,10]}}
[native-run] RangeError [ERR_OUT_OF_RANGE]: The value of "offset" is out of range. It must be >= 0 and <= 55. Received 56
[native-run] at boundsError (internal/buffer.js:49:9)
[native-run] at writeU_Int8 (internal/buffer.js:558:5)
[native-run] at Buffer.writeUInt8 (internal/buffer.js:565:10)
[native-run] at toCString (/usr/local/lib/node_modules/native-run/node_modules/node-ioslib/dist/client/afc.js:150:9)
[native-run] at AFCClient.makeDirectory (/usr/local/lib/node_modules/native-run/node_modules/node-ioslib/dist/client/afc.js:84:19)
[native-run] at uploadDir (/usr/local/lib/node_modules/native-run/node_modules/node-ioslib/dist/client/afc.js:102:41)
[native-run] at AFCClient.uploadDirectory (/usr/local/lib/node_modules/native-run/node_modules/node-ioslib/dist/client/afc.js:95:22)
[native-run] at process._tickCallback (internal/process/next_tick.js:68:7)

Instead, running WITHOUT native-run is ok
$ ionic cordova run ios --no-native-run
running WITH ASCII app name is ok too

<name>myApp</name>

Environment Info:

Ionic:

Ionic CLI : 5.2.8 (/usr/local/lib/node_modules/ionic)
Ionic Framework : @ionic/angular 4.9.0
@angular-devkit/build-angular : 0.13.9
@angular-devkit/schematics : 7.3.9
@angular/cli : 7.3.9
@ionic/angular-toolkit : 1.5.1

Cordova:

Cordova CLI : 8.1.2 ([email protected])
Cordova Platforms : android 8.0.0, ios 4.5.5
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 27 other plugins)

Utility:

cordova-res : 0.6.0
native-run : 0.2.8

System:

Android SDK Tools : 26.1.1 (/Users/avex/Library/Android/sdk)
ios-deploy : 1.9.4
ios-sim : 8.0.1
NodeJS : v10.15.3 (/usr/local/bin/node)
npm : 6.11.3
OS : macOS Mojave
Xcode : Xcode 10.2 Build version 10E125

macOS version:
10.14.4

Xcode version:
10.2

主要言語
TypeScript
スター
139
フォーク
35
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ionic-team/native-run のほかの issue

ionic-team/native-run の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。