Подтвердить что ты не робот

Trigger.io [Errno 18] Ссылка на одно устройство

Когда я пытаюсь запустить пакет ios на mac, я получаю следующее:

[INFO] Forge tools running at version 3.3.5
[INFO] Update result: you already have the latest tools
[INFO] Configuration is unchanged: using existing templates
[INFO] Checking JavaScript files...
[INFO] JavaScript check complete
[INFO] Verifying your configuration settings...
[INFO] Configuration settings check complete
[INFO] Development build created. Use forge run to run your app.
[INFO] Forge tools running at version 3.3.5
[INFO] Checking JavaScript files...
[INFO] JavaScript check complete
[INFO] Verifying your configuration settings...
[INFO] Configuration settings check complete
[INFO] Starting package process for iOS
[INFO] Going to package: /Users/******************/device-ios.app
[INFO] Plist OK
[INFO] 1 Provisioned Device(s):
[INFO] ['c**************************b']
[ERROR] [Errno 18] Cross-device link

Настройки полностью заполнены в конфигурации приложения, локальной конфигурации и т.д.

Вот вывод отладки

........
in run
    self._run_task(func_name, args, kw)
  File "/Users/username/forge-workspace/compapp1/.template/generate_dynamic/build.py", line 293, in _run_task
    self.tasks[func_name](self, *args, **kw)
  File "/Users/username/forge-workspace/compapp1/.template/generate_dynamic/ios_tasks.py", line 568, in package_ios
    certificate_password=certificate_password,
  File "/Users/username/forge-workspace/compapp1/.template/generate_dynamic/ios_tasks.py", line 362, in create_ipa_from_app
    self._create_entitlements_file(build, plist_dict, temp_file_path)
  File "/Users/username/forge-workspace/compapp1/.template/generate_dynamic/ios_tasks.py", line 299, in _create_entitlements_file
    _replace_in_file(temp_file_path, 'APP_ID', bundle_id)
  File "/Users/username/forge-workspace/compapp1/.template/generate_dynamic/ios_tasks.py", line 294, in _replace_in_file
    os.rename(tmp_file, filename)
OSError: [Errno 18] Cross-device link
4b9b3361

Ответ 1

Перейдите к /Users/username/forge-workspace/compapp1/.template/generate_dynamic/ios_tasks.py строке 294,

измените эту строку: os.rename(tmp_file, filename)

к этому: shutil.move(tmp_file, filename)

Пакет снова.

источник

Ответ 2

Используете ли вы внешний жесткий диск? Если это так, похоже, мы были укушены ограничением Python здесь (http://docs.python.org/library/os.html#os.rename):

The operation may fail on some Unix flavors if src and dst are on different filesystems

В краткосрочной перспективе вы можете запускать свои кузнечные команды не на внешний жесткий диск? Мы поработаем над исправлением основной проблемы и отчитаемся здесь.

Ответ 3

Я столкнулся с той же проблемой, скомпилирующей iOS-пакеты на Ubuntu. У меня есть зашифрованный домашний каталог, который, вероятно, является причиной проблемы с перекрестной файловой системой.

К счастью, я смог выработать легкое решение благодаря отличному ответу @Amir.

Из http://docs.python.org/dev/library/tempfile.html#tempfile.mkstemp

Если указана dir, файл будет создан в этом каталоге; в противном случае используется каталог по умолчанию. Каталог по умолчанию выбирается из списка, зависящего от платформы, но пользователь приложения может управлять расположением каталога, устанавливая переменные среды TMPDIR, TEMP или TMP.

Я просто переместил каталог temp, запустив Trigger со следующими командами:

export TMPDIR="/home/me/tmp"
python /home/me/source/TriggerToolkit/run_trigger_toolkit.py