0

In unix world, /tmp folder is most of time not on the same file system than the current running OS.

Forge での IOS アプリのビルド/パッケージ化os.renameでは、シェルrenameコマンドのラッパーである一時フォルダーと python 関数を使用します。このコマンドは、異なるファイル システムでは機能しません。

以下は、forge の実​​行で発生したエラーです。

[DEBUG] Making Payload directory
[ERROR] [Errno 18] Invalid cross-device link
[DEBUG] Traceback (most recent call last):
  File "/home/<user>/TriggerToolkit/build-tools/forge/async.py", line 96, in run
    result = self._target(*self._args, **self._kwargs)
  File "/home/<user>/TriggerToolkit/trigger/api/app.py", line 286, in run
    forge_main.run(['--general.interactive', 'no'])
  File "/home/<user>/TriggerToolkit/build-tools/forge/main.py", line 437, in run
    build_to_run=build_to_run,
  File "/home/<user>/forge-workspace/sfjozog/.template/generate_dynamic/customer_goals.py", line 126, in run_app
    build_to_run.run()
  File "/home/<user>/forge-workspace/sfjozog/.template/generate_dynamic/build.py", line 337, in run
    self._call_with_params(task_method, task_args)
  File "/home/<user>/forge-workspace/sfjozog/.template/generate_dynamic/build.py", line 296, in _call_with_params
    return method(self, *params)
  File "/home/<user>/forge-workspace/sfjozog/.template/generate_dynamic/ios_tasks.py", line 626, in run_ios
    certificate_password=certificate_password,
  File "/home/<user>/forge-workspace/sfjozog/.template/generate_dynamic/ios_tasks.py", line 571, in run_idevice
    certificate_password=certificate_password,
  File "/home/<user>/forge-workspace/sfjozog/.template/generate_dynamic/ios_tasks.py", line 387, in create_ipa_from_app
    self._create_entitlements_file(build, temp_file_path)
  File "/home/<user>/forge-workspace/sfjozog/.template/generate_dynamic/ios_tasks.py", line 323, in _create_entitlements_file
    _replace_in_file(temp_file_path, 'APP_ID', bundle_id)
  File "/home/<user>/forge-workspace/sfjozog/.template/generate_dynamic/ios_tasks.py", line 318, in _replace_in_file
    os.rename(tmp_file, filename)
OSError: [Errno 18] Invalid cross-device link

- - 編集 - -

これは Facebook 接続が有効になっているアプリです (APP_ID を置き換えようとしていることがわかります)。

- - 編集 - -

Pythonソースファイル(.templates /ディレクトリ内)で使用される関数を手動で変更することにより、これが機能します(したがって、shutil.moveが唯一の解決策です)

4

1 に答える 1

2

この質問はここでも提起されました: Trigger.io [Errno 18] クロスデバイス リンク

それに対する応答は、回避策のオプションを提供します。

于 2012-11-29T01:03:54.973 に答える