88msgstr ""
99"Project-Id-Version : Python 3.14\n "
1010"Report-Msgid-Bugs-To : \n "
11- "POT-Creation-Date : 2025-08-25 14:20 +0000\n "
11+ "POT-Creation-Date : 2025-09-29 14:15 +0000\n "
1212"PO-Revision-Date : 2025-09-16 00:02+0000\n "
1313"Language-Team : German (https://app.transifex.com/python-doc/teams/5390/de/)\n "
1414"MIME-Version : 1.0\n "
@@ -235,9 +235,9 @@ msgstr ""
235235
236236msgid ""
237237"Build or obtain a Python ``XCFramework``. See the instructions in :source:"
238- "`iOS/README.rst ` (in the CPython source distribution) for details on how to "
239- "build a Python ``XCFramework``. At a minimum, you will need a build that "
240- "supports ``arm64-apple-ios``, plus one of either ``arm64-apple-ios-"
238+ "`Apple/ iOS/README.md ` (in the CPython source distribution) for details on "
239+ "how to build a Python ``XCFramework``. At a minimum, you will need a build "
240+ "that supports ``arm64-apple-ios``, plus one of either ``arm64-apple-ios-"
241241"simulator`` or ``x86_64-apple-ios-simulator``."
242242msgstr ""
243243
@@ -248,11 +248,6 @@ msgid ""
248248"adjusting paths as needed."
249249msgstr ""
250250
251- msgid ""
252- "Drag the ``iOS/Resources/dylib-Info-template.plist`` file into your project, "
253- "and ensure it is associated with the app target."
254- msgstr ""
255-
256251msgid ""
257252"Add your application code as a folder in your Xcode project. In the "
258253"following instructions, we'll assume that your user code is in a folder "
@@ -300,103 +295,23 @@ msgid "Quoted Include In Framework Header: No"
300295msgstr ""
301296
302297msgid ""
303- "Add a build step that copies the Python standard library into your app. In "
304- "the \" Build Phases\" tab, add a new \" Run Script\" build step *before* the "
305- "\" Embed Frameworks\" step, but *after* the \" Copy Bundle Resources\" step. "
306- "Name the step \" Install Target Specific Python Standard Library\" , disable "
307- "the \" Based on dependency analysis\" checkbox, and set the script content to:"
298+ "Add a build step that processes the Python standard library, and your own "
299+ "Python binary dependencies. In the \" Build Phases\" tab, add a new \" Run "
300+ "Script\" build step *before* the \" Embed Frameworks\" step, but *after* the "
301+ "\" Copy Bundle Resources\" step. Name the step \" Process Python libraries\" , "
302+ "disable the \" Based on dependency analysis\" checkbox, and set the script "
303+ "content to:"
308304msgstr ""
309305
310306msgid ""
311307"set -e\n"
312- "\n"
313- "mkdir -p \" $CODESIGNING_FOLDER_PATH/python/lib\" \n"
314- "if [ \" $EFFECTIVE_PLATFORM_NAME\" = \" -iphonesimulator\" ]; then\n"
315- " echo \" Installing Python modules for iOS Simulator\" \n"
316- " rsync -au --delete \" $PROJECT_DIR/Python.xcframework/ios-arm64_x86_64-"
317- "simulator/lib/\" \" $CODESIGNING_FOLDER_PATH/python/lib/\" \n"
318- "else\n"
319- " echo \" Installing Python modules for iOS Device\" \n"
320- " rsync -au --delete \" $PROJECT_DIR/Python.xcframework/ios-arm64/lib/\" "
321- "\" $CODESIGNING_FOLDER_PATH/python/lib/\" \n"
322- "fi"
323- msgstr ""
324-
325- msgid ""
326- "Note that the name of the simulator \" slice\" in the XCframework may be "
327- "different, depending the CPU architectures your ``XCFramework`` supports."
328- msgstr ""
329-
330- msgid ""
331- "Add a second build step that processes the binary extension modules in the "
332- "standard library into \" Framework\" format. Add a \" Run Script\" build step "
333- "*directly after* the one you added in step 8, named \" Prepare Python Binary "
334- "Modules\" . It should also have \" Based on dependency analysis\" unchecked, "
335- "with the following script content:"
308+ "source $PROJECT_DIR/Python.xcframework/build/build_utils.sh\n"
309+ "install_python Python.xcframework app"
336310msgstr ""
337311
338312msgid ""
339- "set -e\n"
340- "\n"
341- "install_dylib () {\n"
342- " INSTALL_BASE=$1\n"
343- " FULL_EXT=$2\n"
344- "\n"
345- " # The name of the extension file\n"
346- " EXT=$(basename \" $FULL_EXT\" )\n"
347- " # The location of the extension file, relative to the bundle\n"
348- " RELATIVE_EXT=${FULL_EXT#$CODESIGNING_FOLDER_PATH/}\n"
349- " # The path to the extension file, relative to the install base\n"
350- " PYTHON_EXT=${RELATIVE_EXT/$INSTALL_BASE/}\n"
351- " # The full dotted name of the extension module, constructed from the "
352- "file path.\n"
353- " FULL_MODULE_NAME=$(echo $PYTHON_EXT | cut -d \" .\" -f 1 | tr \" /\" \" ."
354- "\" );\n"
355- " # A bundle identifier; not actually used, but required by Xcode "
356- "framework packaging\n"
357- " FRAMEWORK_BUNDLE_ID=$(echo $PRODUCT_BUNDLE_IDENTIFIER.$FULL_MODULE_NAME "
358- "| tr \" _\" \" -\" )\n"
359- " # The name of the framework folder.\n"
360- " FRAMEWORK_FOLDER=\" Frameworks/$FULL_MODULE_NAME.framework\" \n"
361- "\n"
362- " # If the framework folder doesn't exist, create it.\n"
363- " if [ ! -d \" $CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER\" ]; then\n"
364- " echo \" Creating framework for $RELATIVE_EXT\" \n"
365- " mkdir -p \" $CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER\" \n"
366- " cp \" $CODESIGNING_FOLDER_PATH/dylib-Info-template.plist\" "
367- "\" $CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/Info.plist\" \n"
368- " plutil -replace CFBundleExecutable -string \" $FULL_MODULE_NAME\" "
369- "\" $CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/Info.plist\" \n"
370- " plutil -replace CFBundleIdentifier -string \" $FRAMEWORK_BUNDLE_ID\" "
371- "\" $CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/Info.plist\" \n"
372- " fi\n"
373- "\n"
374- " echo \" Installing binary for $FRAMEWORK_FOLDER/$FULL_MODULE_NAME\" \n"
375- " mv \" $FULL_EXT\" \" $CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/"
376- "$FULL_MODULE_NAME\" \n"
377- " # Create a placeholder .fwork file where the .so was\n"
378- " echo \" $FRAMEWORK_FOLDER/$FULL_MODULE_NAME\" > ${FULL_EXT%.so}.fwork\n"
379- " # Create a back reference to the .so file location in the framework\n"
380- " echo \" ${RELATIVE_EXT%.so}.fwork\" > \" $CODESIGNING_FOLDER_PATH/"
381- "$FRAMEWORK_FOLDER/$FULL_MODULE_NAME.origin\" \n"
382- " }\n"
383- "\n"
384- " PYTHON_VER=$(ls -1 \" $CODESIGNING_FOLDER_PATH/python/lib\" )\n"
385- " echo \" Install Python $PYTHON_VER standard library extension modules...\" \n"
386- " find \" $CODESIGNING_FOLDER_PATH/python/lib/$PYTHON_VER/lib-dynload\" -name "
387- "\" *.so\" | while read FULL_EXT; do\n"
388- " install_dylib python/lib/$PYTHON_VER/lib-dynload/ \" $FULL_EXT\" \n"
389- " done\n"
390- "\n"
391- " # Clean up dylib template\n"
392- " rm -f \" $CODESIGNING_FOLDER_PATH/dylib-Info-template.plist\" \n"
393- "\n"
394- " echo \" Signing frameworks as $EXPANDED_CODE_SIGN_IDENTITY_NAME "
395- "($EXPANDED_CODE_SIGN_IDENTITY)...\" \n"
396- " find \" $CODESIGNING_FOLDER_PATH/Frameworks\" -name \" *.framework\" -exec /"
397- "usr/bin/codesign --force --sign \" $EXPANDED_CODE_SIGN_IDENTITY\" "
398- "${OTHER_CODE_SIGN_FLAGS:-} -o runtime --timestamp=none --preserve-"
399- "metadata=identifier,entitlements,flags --generate-entitlement-der \" {}\" \\ ;"
313+ "If you have placed your XCframework somewhere other than the root of your "
314+ "project, modify the path to the first argument."
400315msgstr ""
401316
402317msgid ""
@@ -446,29 +361,23 @@ msgid ""
446361msgstr ""
447362
448363msgid ""
449- "Steps 8, 9 and 10 of these instructions assume that you have a single folder "
450- "of pure Python application code, named ``app``. If you have third-party "
451- "binary modules in your app, some additional steps will be required:"
364+ "Steps 7 and 8 of these instructions assume that you have a single folder of "
365+ "pure Python application code, named ``app``. If you have third-party binary "
366+ "modules in your app, some additional steps will be required:"
452367msgstr ""
453368
454369msgid ""
455370"You need to ensure that any folders containing third-party binaries are "
456- "either associated with the app target, or copied in as part of step 8. Step "
457- "8 should also purge any binaries that are not appropriate for the platform a "
458- "specific build is targeting (i.e., delete any device binaries if you're "
459- "building an app targeting the simulator)."
460- msgstr ""
461-
462- msgid ""
463- "Any folders that contain third-party binaries must be processed into "
464- "framework form by step 9. The invocation of ``install_dylib`` that processes "
465- "the ``lib-dynload`` folder can be copied and adapted for this purpose."
371+ "either associated with the app target, or are explicitly copied as part of "
372+ "step 7. Step 7 should also purge any binaries that are not appropriate for "
373+ "the platform a specific build is targeting (i.e., delete any device binaries "
374+ "if you're building an app targeting the simulator)."
466375msgstr ""
467376
468377msgid ""
469378"If you're using a separate folder for third-party packages, ensure that "
470- "folder is included as part of the :envvar:`PYTHONPATH` configuration in step "
471- "10 ."
379+ "folder is added to the end of the call to ``install_python`` in step 7, and "
380+ "as part of the :envvar:`PYTHONPATH` configuration in step 8 ."
472381msgstr ""
473382
474383msgid ""
@@ -482,31 +391,38 @@ msgid "Testing a Python package"
482391msgstr ""
483392
484393msgid ""
485- "The CPython source tree contains :source:`a testbed project <iOS/testbed>` "
486- "that is used to run the CPython test suite on the iOS simulator. This "
487- "testbed can also be used as a testbed project for running your Python "
394+ "The CPython source tree contains :source:`a testbed project <Apple/ iOS/"
395+ "testbed>` that is used to run the CPython test suite on the iOS simulator. "
396+ "This testbed can also be used as a testbed project for running your Python "
488397"library's test suite on iOS."
489398msgstr ""
490399
491400msgid ""
492- "After building or obtaining an iOS XCFramework (See :source:`iOS/README.rst` "
493- "for details), create a clone of the Python iOS testbed project by running:"
401+ "After building or obtaining an iOS XCFramework (see :source:`Apple/iOS/"
402+ "README.md` for details), create a clone of the Python iOS testbed project. "
403+ "If you used the ``Apple`` build script to build the XCframework, you can run:"
404+ msgstr ""
405+
406+ msgid ""
407+ "$ python cross-build/iOS/testbed clone --app <path/to/module1> --app <path/"
408+ "to/module2> app-testbed"
409+ msgstr ""
410+
411+ msgid "Or, if you've sourced your own XCframework, by running:"
494412msgstr ""
495413
496414msgid ""
497- "$ python iOS /testbed clone --framework <path/to/Python.xcframework> --app "
498- "<path/to/module1> --app <path/to/module2> app-testbed"
415+ "$ python Apple /testbed clone --platform iOS -- framework <path/to/Python."
416+ "xcframework> --app <path/to/module1> --app <path/to/module2> app-testbed"
499417msgstr ""
500418
501419msgid ""
502- "You will need to modify the ``iOS/testbed`` reference to point to that "
503- "directory in the CPython source tree; any folders specified with the ``--"
504- "app`` flag will be copied into the cloned testbed project. The resulting "
505- "testbed will be created in the ``app-testbed`` folder. In this example, the "
506- "``module1`` and ``module2`` would be importable modules at runtime. If your "
507- "project has additional dependencies, they can be installed into the ``app-"
508- "testbed/iOSTestbed/app_packages`` folder (using ``pip install --target app-"
509- "testbed/iOSTestbed/app_packages`` or similar)."
420+ "Any folders specified with the ``--app`` flag will be copied into the cloned "
421+ "testbed project. The resulting testbed will be created in the ``app-"
422+ "testbed`` folder. In this example, the ``module1`` and ``module2`` would be "
423+ "importable modules at runtime. If your project has additional dependencies, "
424+ "they can be installed into the ``app-testbed/Testbed/app_packages`` folder "
425+ "(using ``pip install --target app-testbed/Testbed/app_packages`` or similar)."
510426msgstr ""
511427
512428msgid ""
@@ -543,8 +459,8 @@ msgstr ""
543459
544460msgid ""
545461"The test plan also disables parallel testing, and specifies the use of the "
546- "``iOSTestbed .lldbinit`` file for providing configuration of the debugger. "
547- "The default debugger configuration disables automatic breakpoints on the "
462+ "``Testbed .lldbinit`` file for providing configuration of the debugger. The "
463+ "default debugger configuration disables automatic breakpoints on the "
548464"``SIGINT``, ``SIGUSR1``, ``SIGUSR2``, and ``SIGXFSZ`` signals."
549465msgstr ""
550466
0 commit comments