NativeScript / NativeScript/nativescript-cli

tns run ios fails on case-sensitive filesystem on macOS (possible typo)

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

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

bug os: mac run
主要言語
JavaScript
スター
1.1k
フォーク
204
平均マージ
1日 9時間
マージ済み PR(30日)
8

説明

Dear friend, we, the rest of the NativeScript community really
appreciate your feedback! While we are doing all we can to take care of every
issue, sometimes we get overwhelmed. Because of that, we will consider issues
that are not constructive or problems that cannot be reproduced "dead".
Additionally, we will treat feature requests or bug reports with unanswered
questions regarding the behavior/reproduction for more than 20 days "dead". All
"dead" issues will get closed.

Please, provide the details below:

When executing tns run ios, there are two subdirectories being created under platforms, called ios and iOS. The ios subdirectory contains most of the files, but the iOS (note the upper-case here) contains nativescript/nativescript.entitlements file.

Most probably somewhere in the code, the CLI is referring to ios and iOS directories with two different cases (upper and lower case). The issue will manifest itself only on macOS with drives partitioned with a case-sensitive filesystem.
This issue probably escaped since typically macOS partitions are not case-sensitive, and in case-sensitive filesystems prevalent on *nix people don't use tns run ios.

Here is the output from tns run ios:

Project successfully prepared (iOS)
Executing after-prepare hook from /Users/.../nativescript/hooks/after-prepare/nativescript-dev-sass.js
All SASS source files removed from app package
Building project...
Build settings from command line:
    ARCHS = i386 x86_64
    CODE_SIGN_IDENTITY = 
    CONFIGURATION_BUILD_DIR = /Users/.../nativescript/platforms/ios/build/emulator
    ONLY_ACTIVE_ARCH = NO
    SDKROOT = iphonesimulator10.3
    SHARED_PRECOMPS_DIR = /Users/.../nativescript/platforms/ios/build/sharedpch
    VALID_ARCHS = i386 x86_64
=== BUILD TARGET nativescript OF PROJECT nativescript WITH CONFIGURATION Debug ===
Check dependencies
ProcessProductPackaging "" build/nativescript.build/Debug-iphonesimulator/nativescript.build/nativescript.app.xcent
    cd /Users/.../nativescript/platforms/ios
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/.../nativescript/node_modules/.bin"
    builtin-productPackagingUtility -entitlements -format xml -o /Users/.../nativescript/platforms/ios/build/nativescript.build/Debug-iphonesimulator/nativescript.build/nativescript.app.xcent
warning: Falling back to contents of entitlements file "nativescript.entitlements" because it was modified during the build process. Modifying the entitlements file during the build is unsupported.error: The file “nativescript.entitlements” couldn’t be opened because there is no such file.
Did you verify this is a real problem by searching Stack Overflow and the other open issues in this repo?

Yes

Tell us about the problem

Please, ensure your title is less than 63 characters long and starts with a capital
letter.
Error on tns run ios on case-sensitive macOS filesystem

Which platform(s) does your issue occur on?

iOS

Please provide the following version numbers that your issue occurs with:
  • CLI: (run tns --version to fetch it)
    3.1.3

  • Cross-platform modules: (check the 'version' attribute in the
    node_modules/tns-core-modules/package.json file in your project)
    "tns-core-modules": "3.1.1",
    "tns-core-modules-widgets": "3.1.1"
    "@types/node": "~7.0.5",

  • Runtime(s): (look for the "tns-android" and "tns-ios" properties in the
    package.json file of your project)
    "tns-ios": {
    "version": "3.1.0"
    },
    "tns-android": {
    "version": "3.1.1"
    }

  • Plugin(s): (look for the version number in the package.json file of your
    project)

Please tell us how to recreate the issue in as much detail as possible.

Execute tns run ios on a case-sensitive macOS partition.

Is there code involved? If so, please share the minimal amount of code needed to recreate the problem.

No.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

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

調査の方向性

大文字と小文字を区別する macOS パーティション上で tns run ios を再現し、生成された platforms/iosplatforms/iOS ディレクトリを調査します。CLI がこれらのディレクトリを作成または参照する箇所を追跡し、entitlements ファイルで一貫した大文字と小文字が使用されていることを確認します。完了の条件は、コマンドがファイル不足エラーなしで完了することです。

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

評価

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

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

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