Impossible d’exécuter / construire IOS sur Linux env. avec le dossier / tmp sur un autre système de fichiers

Dans le monde Unix, le dossier / tmp n’est la plupart du temps pas sur le même système de fichiers que le système d’exploitation actuel.

os.rename IOS de construction / empaquetage dans Forge utilise le dossier temporaire & la fonction python os.rename , qui est un wrapper sur la commande rename shell. Cette commande ne peut pas fonctionner sur différents systèmes de fichiers.

Voici l’erreur rencontrée avec forge run:

 [DEBUG] Making Payload directory [ERROR] [Errno 18] Invalid cross-device link [DEBUG] Traceback (most recent call last): File "/home//TriggerToolkit/build-tools/forge/async.py", line 96, in run result = self._target(*self._args, **self._kwargs) File "/home//TriggerToolkit/sortinggger/api/app.py", line 286, in run forge_main.run(['--general.interactive', 'no']) File "/home//TriggerToolkit/build-tools/forge/main.py", line 437, in run build_to_run=build_to_run, File "/home//forge-workspace/sfjozog/.template/generate_dynamic/customer_goals.py", line 126, in run_app build_to_run.run() File "/home//forge-workspace/sfjozog/.template/generate_dynamic/build.py", line 337, in run self._call_with_params(task_method, task_args) File "/home//forge-workspace/sfjozog/.template/generate_dynamic/build.py", line 296, in _call_with_params return method(self, *params) File "/home//forge-workspace/sfjozog/.template/generate_dynamic/ios_tasks.py", line 626, in run_ios certificatee_password=certificatee_password, File "/home//forge-workspace/sfjozog/.template/generate_dynamic/ios_tasks.py", line 571, in run_idevice certificatee_password=certificatee_password, File "/home//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//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//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 

— MODIFIER —

Ceci est une application avec Facebook connect activé (comme vous pouvez le voir car il essaie de remplacer APP_ID)

— MODIFIER —

En changeant manuellement la fonction utilisée dans le fichier source python (dans le répertoire .templates /), cela fonctionne (donc shutil.move est la seule solution)

Cette question a également été soulevée ici: Trigger.io [Errno 18] Lien inter-appareil

La réponse à cela donne des options pour des solutions de contournement.