# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: # python-doc bot, 2025 # qqfunc, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: qqfunc, 2025\n" "Language-Team: Japanese (https://app.transifex.com/python-doc/teams/5390/" "ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../../using/ios.rst:5 msgid "Using Python on iOS" msgstr "iOS で Python を使う" #: ../../using/ios.rst:0 msgid "Authors" msgstr "著者" #: ../../using/ios.rst:8 msgid "Russell Keith-Magee (2024-03)" msgstr "Russell Keith-Magee (2024-03)" #: ../../using/ios.rst:10 msgid "" "Python on iOS is unlike Python on desktop platforms. On a desktop platform, " "Python is generally installed as a system resource that can be used by any " "user of that computer. Users then interact with Python by running a :program:" "`python` executable and entering commands at an interactive prompt, or by " "running a Python script." msgstr "" "iOS における Pythonは、デスクトッププラットフォームにおける Python とは異なり" "ます。 デスクトッププラットフォームでは、 Python は一般的にコンピューターのど" "のユーザーでも使えるシステムリソースとしてインストールされます。そして、ユー" "ザーは :program:`python` 実行可能ファイルを実行して対話型プロンプトにコマンド" "を入力したり、 Python スクリプトを実行したりして、 Python を使用することがで" "きるのです。" #: ../../using/ios.rst:16 msgid "" "On iOS, there is no concept of installing as a system resource. The only " "unit of software distribution is an \"app\". There is also no console where " "you could run a :program:`python` executable, or interact with a Python REPL." msgstr "" "iOS においては、システムリソースとしてのインストールという概念はありません。" "ソフトウェア配布が可能なのは、 \"アプリ\" だけです。また、 :program:`python` " "実行可能ファイルの実行したり、 Python の REPL を使用したりする、コンソールも" "存在しません。" #: ../../using/ios.rst:20 msgid "" "As a result, the only way you can use Python on iOS is in embedded mode - " "that is, by writing a native iOS application, and embedding a Python " "interpreter using ``libPython``, and invoking Python code using the :ref:" "`Python embedding API `. The full Python interpreter, the " "standard library, and all your Python code is then packaged as a standalone " "bundle that can be distributed via the iOS App Store." msgstr "" "このため、 Python を iOS 上で使うただ一つの方法は、埋め込みモード、つまり、ネ" "イティブ iOS アプリケーションを書き、 ``libPython`` を使用して Python イン" "タープリターを埋め込み、そして :ref:`Python 埋め込み API ` を使用" "して Python コードを呼び出すことです。 それにより、完全な Python インタープリ" "ター、標準ライブラリ、 及び Python のコードが、 iOS App Store を経由して配布" "可能なスタンドアローンなバンドルとしてパッケージ化されます。" #: ../../using/ios.rst:27 msgid "" "If you're looking to experiment for the first time with writing an iOS app " "in Python, projects such as `BeeWare `__ and `Kivy " "`__ will provide a much more approachable user experience. " "These projects manage the complexities associated with getting an iOS " "project running, so you only need to deal with the Python code itself." msgstr "" "もし、初めて iOS アプリを Python で書くことを試みているなら、 `BeeWare " "`__ や `Kivy `__ といったプロジェクト" "は、よりわかりやすいユーザー体験を提供するでしょう。これらのプロジェクトは " "iOS プロジェクトを実行することに関連する複雑なことを管理するので、あなたは " "Python のコードに集中するだけで良くなります。" #: ../../using/ios.rst:34 msgid "Python at runtime on iOS" msgstr "iOS ランタイムでの Python" #: ../../using/ios.rst:37 msgid "iOS version compatibility" msgstr "iOS のバージョン互換性" #: ../../using/ios.rst:39 msgid "" "The minimum supported iOS version is specified at compile time, using the :" "option:`--host` option to ``configure``. By default, when compiled for iOS, " "Python will be compiled with a minimum supported iOS version of 13.0. To use " "a different minimum iOS version, provide the version number as part of the :" "option:`!--host` argument - for example, ``--host=arm64-apple-ios15.4-" "simulator`` would compile an ARM64 simulator build with a deployment target " "of 15.4." msgstr "" "サポートされる最小の iOS バージョンは、コンパイル時に ``configure`` の :" "option:`--host` オプションを使用して指定できます。デフォルトでは、 iOS 用にコ" "ンパイルする場合、 Python は最小で 13.0 の iOS バージョンをサポートするように" "コンパイルされます。異なる最小 iOS バージョンを使用するには、 :option:`!--" "host` 引数の一部としてバージョン番号を提供します。例えば ``--host=arm64-" "apple-ios15.4-simulator`` とすると、 ARM64 シミュレーター用のビルドを " "Deployment Target 15.4 でコンパイルします。" #: ../../using/ios.rst:48 msgid "Platform identification" msgstr "プラットフォームの識別" #: ../../using/ios.rst:50 msgid "" "When executing on iOS, ``sys.platform`` will report as ``ios``. This value " "will be returned on an iPhone or iPad, regardless of whether the app is " "running on the simulator or a physical device." msgstr "" "iOS 上で実行している場合、 ``sys.platform`` は ``ios`` となります。アプリがシ" "ミュレーターで実行されているか、物理デバイスで実行されているかにかかわらず、 " "iPhone または iPad ではこの値となります。" #: ../../using/ios.rst:54 msgid "" "Information about the specific runtime environment, including the iOS " "version, device model, and whether the device is a simulator, can be " "obtained using :func:`platform.ios_ver`. :func:`platform.system` will report " "``iOS`` or ``iPadOS``, depending on the device." msgstr "" #: ../../using/ios.rst:59 msgid "" ":func:`os.uname` reports kernel-level details; it will report a name of " "``Darwin``." msgstr "" #: ../../using/ios.rst:63 msgid "Standard library availability" msgstr "標準ライブラリの利用可能性" #: ../../using/ios.rst:65 msgid "" "The Python standard library has some notable omissions and restrictions on " "iOS. See the :ref:`API availability guide for iOS ` for " "details." msgstr "" #: ../../using/ios.rst:70 msgid "Binary extension modules" msgstr "バイナリ拡張モジュール" #: ../../using/ios.rst:72 msgid "" "One notable difference about iOS as a platform is that App Store " "distribution imposes hard requirements on the packaging of an application. " "One of these requirements governs how binary extension modules are " "distributed." msgstr "" "プラットフォームとしての iOS についての重要な違いの一つは、 App Store での配" "布がアプリケーションのパッケージングに厳しい条件を課すということです。 これら" "の条件の一つは、バイナリ拡張モジュールの配布方法を規定します。" #: ../../using/ios.rst:76 msgid "" "The iOS App Store requires that *all* binary modules in an iOS app must be " "dynamic libraries, contained in a framework with appropriate metadata, " "stored in the ``Frameworks`` folder of the packaged app. There can be only a " "single binary per framework, and there can be no executable binary material " "outside the ``Frameworks`` folder." msgstr "" "iOS App Store では、 iOS アプリの全てのバイナリモジュールが、パッケージ化され" "たアプリの ``Frameworks`` フォルダに保存された、適切なメタデータ付きのフレー" "ムワークに含まれる動的ライブラリである必要があります。フレームワークごとにバ" "イナリは一つだけで、 ``Frameworks`` フォルダの外に実行可能バイナリデータを設" "置することはできません。" #: ../../using/ios.rst:82 msgid "" "This conflicts with the usual Python approach for distributing binaries, " "which allows a binary extension module to be loaded from any location on " "``sys.path``. To ensure compliance with App Store policies, an iOS project " "must post-process any Python packages, converting ``.so`` binary modules " "into individual standalone frameworks with appropriate metadata and signing. " "For details on how to perform this post-processing, see the guide for :ref:" "`adding Python to your project `." msgstr "" "これは、バイナリ拡張モジュールが ``sys.path`` 上のどの場所からでも読み込み可" "能な、通常の Python のバイナリ配布のアプローチと衝突します。 確実に App " "Store ポリシーに従うために、 iOS プロジェクトはいずれの Python パッケージに" "も、 ``.so`` バイナリモジュールを、個別の、スタンドアローンで、適切なメタデー" "タと署名付きのフレームワークに変換する後処理を行わなければなりません。どのよ" "うに後処理を行うかの詳細は、 :ref:`プロジェクトに Python を追加する ` のガイドを参照してください。" #: ../../using/ios.rst:90 msgid "" "To help Python discover binaries in their new location, the original ``.so`` " "file on ``sys.path`` is replaced with a ``.fwork`` file. This file is a text " "file containing the location of the framework binary, relative to the app " "bundle. To allow the framework to resolve back to the original location, the " "framework must contain a ``.origin`` file that contains the location of the " "``.fwork`` file, relative to the app bundle." msgstr "" "Python が新しい場所にあるバイナリを見つけることを助けるために、 ``sys.path`` " "にある元の ``.so`` ファイルは ``.fwork`` ファイルに置き換えられます。 この" "ファイルは、アプリバンドルからのレームワークバイナリの相対パスを含むテキスト" "ファイルです。フレームワークが元の場所に解決できるようにするためには、フレー" "ムワークは、アプリバンドルからの ``.fwork`` ファイルの相対パスが含まれた、 " "``.origin`` ファイルを含む必要があります。" #: ../../using/ios.rst:97 msgid "" "For example, consider the case of an import ``from foo.bar import _whiz``, " "where ``_whiz`` is implemented with the binary module ``sources/foo/bar/" "_whiz.abi3.so``, with ``sources`` being the location registered on ``sys." "path``, relative to the application bundle. This module *must* be " "distributed as ``Frameworks/foo.bar._whiz.framework/foo.bar._whiz`` " "(creating the framework name from the full import path of the module), with " "an ``Info.plist`` file in the ``.framework`` directory identifying the " "binary as a framework. The ``foo.bar._whiz`` module would be represented in " "the original location with a ``sources/foo/bar/_whiz.abi3.fwork`` marker " "file, containing the path ``Frameworks/foo.bar._whiz/foo.bar._whiz``. The " "framework would also contain ``Frameworks/foo.bar._whiz.framework/foo.bar." "_whiz.origin``, containing the path to the ``.fwork`` file." msgstr "" "例えば、``from foo.bar import _whiz`` をインポートする場合を考えてみましょ" "う。 ``_whiz`` がバイナリモジュール ``sources/foo/bar/_whiz.abi3.so`` で実装" "されており、 ``sources`` のアプリケーションバンドルからの相対パスが ``sys." "path`` に登録されています。このモジュールは ``Frameworks/foo.bar._whiz." "framework/foo.bar._whiz`` (フレームワーク名はモジュールの完全なインポートパス" "から命名されています) として、バイナリをフレームワークとして識別する ``Info." "plist`` ファイルを ``.framework`` ディレクトリ内に設置して配布しなければなり" "ません。 ``foo.bar._whiz`` モジュールは、元の場所で、 ``Frameworks/foo.bar." "_whiz/foo.bar._whiz`` のパスを含む ``sources/foo/bar/_whiz.abi3.fwork`` マー" "カーファイルに記述されます。 また、フレームワークは、 ``.fwork`` へのパスを含" "む ``Frameworks/foo.bar._whiz.framework/foo.bar._whiz.origin`` も含まなければ" "なりません。" #: ../../using/ios.rst:110 msgid "" "When running on iOS, the Python interpreter will install an :class:" "`~importlib.machinery.AppleFrameworkLoader` that is able to read and import " "``.fwork`` files. Once imported, the ``__file__`` attribute of the binary " "module will report as the location of the ``.fwork`` file. However, the :" "class:`~importlib.machinery.ModuleSpec` for the loaded module will report " "the ``origin`` as the location of the binary in the framework folder." msgstr "" "iOS 上で実行している場合、 Python インタープリターは ``.fwork`` ファイルを読" "み込んでインポートすることができる :class:`~importlib.machinery." "AppleFrameworkLoader` をインストールします。インポートされると、バイナリモ" "ジュールの ``__file__`` 属性は ``.fwork`` ファイルの場所を返します。一方、読" "み込まれたモジュールの :class:`~importlib.machinery.ModuleSpec` はフレーム" "ワークフォルダのバイナリの場所として ``origin`` を返します。" #: ../../using/ios.rst:118 msgid "Compiler stub binaries" msgstr "コンパイラスタブバイナリ" #: ../../using/ios.rst:120 msgid "" "Xcode doesn't expose explicit compilers for iOS; instead, it uses an " "``xcrun`` script that resolves to a full compiler path (e.g., ``xcrun --sdk " "iphoneos clang`` to get the ``clang`` for an iPhone device). However, using " "this script poses two problems:" msgstr "" "Xcode は、 iOS 用の明示的なコンパイラーを提供していません。代わりに、完全なコ" "ンパイラーのパスを解決する ``xcrun`` スクリプトを使用します (たとえば " "``xcrun --sdk iphoneos clang`` は iPhone デバイス用の ``clang`` を取得しま" "す) 。しかし、これは2つの問題を引き起こします: " #: ../../using/ios.rst:125 msgid "" "The output of ``xcrun`` includes paths that are machine specific, resulting " "in a sysconfig module that cannot be shared between users; and" msgstr "" "``xcrun`` の出力はマシン固有のパスを含み、ユーザー間で共有できない sysconfig " "モジュールとなります。" #: ../../using/ios.rst:128 msgid "" "It results in ``CC``/``CPP``/``LD``/``AR`` definitions that include spaces. " "There is a lot of C ecosystem tooling that assumes that you can split a " "command line at the first space to get the path to the compiler executable; " "this isn't the case when using ``xcrun``." msgstr "" "これにより、 ``CC``/``CPP``/``LD``/``AR`` 定義にスペースが含まれることになり" "ます。多くの C エコシステムツールが、最初のスペースでコマンドラインを分割し、" "コンパイラー実行ファイルを取得できることを前提としています。しかし、 " "``xcrun`` を使用する場合はそうではありません。" #: ../../using/ios.rst:133 msgid "" "To avoid these problems, Python provided stubs for these tools. These stubs " "are shell script wrappers around the underingly ``xcrun`` tools, distributed " "in a ``bin`` folder distributed alongside the compiled iOS framework. These " "scripts are relocatable, and will always resolve to the appropriate local " "system paths. By including these scripts in the bin folder that accompanies " "a framework, the contents of the ``sysconfig`` module becomes useful for end-" "users to compile their own modules. When compiling third-party Python " "modules for iOS, you should ensure these stub binaries are on your path." msgstr "" "これらの問題を避けるため、 Python はこれらのツール用のスタブを提供しました。" "これらのスタブは、コンパイルされた iOS フレームワークとともに配布される " "``bin`` フォルダで配布される、基礎の ``xcrun`` ツールのシェルスクリプトラッ" "パーです。これらのスクリプトは再配置可能で、常に適切なローカルシステムパスに" "解決されます。これらのスクリプトをフレームワークを伴う bin フォルダーに含める" "ことで、 ``sysconfig`` モジュールはエンドユーザーが自身のモジュールをコンパイ" "ルするのに有用になります。iOS 用の サードパーティの Python モジュールをコンパ" "イルするときは、これらのスタブバイナリがパス上にあることを確認するべきです。" #: ../../using/ios.rst:143 msgid "Installing Python on iOS" msgstr "iOS での Python のインストール" #: ../../using/ios.rst:146 msgid "Tools for building iOS apps" msgstr "iOS アプリビルド用のツール" #: ../../using/ios.rst:148 msgid "" "Building for iOS requires the use of Apple's Xcode tooling. It is strongly " "recommended that you use the most recent stable release of Xcode. This will " "require the use of the most (or second-most) recently released macOS " "version, as Apple does not maintain Xcode for older macOS versions. The " "Xcode Command Line Tools are not sufficient for iOS development; you need a " "*full* Xcode install." msgstr "" "iOS 向けのビルドには、 Apple の Xcode のツールを使用します。Xcode の最新の安" "定リリースを使用することを強く推奨します。Apple は古い macOS のバージョン向け" "には Xcode をメンテナンスしないため、これには最も (または二番目に) 最近にリ" "リースされた macOS のバージョンが必要です。 Xcode コマンドラインツールは iOS " "開発には不十分であり、完全な Xcode のインストールが必要です。" #: ../../using/ios.rst:155 msgid "" "If you want to run your code on the iOS simulator, you'll also need to " "install an iOS Simulator Platform. You should be prompted to select an iOS " "Simulator Platform when you first run Xcode. Alternatively, you can add an " "iOS Simulator Platform by selecting from the Platforms tab of the Xcode " "Settings panel." msgstr "" "iOS シミュレーター上でコードを実行したい場合は、 iOS Simulator プラットフォー" "ムもインストールする必要があります。 Xcode を初めて実行したとき、 iOS " "Simulator プラットフォームを選択するプロンプトが表示されるはずです。代わり" "に、 Xcode の Settings パネルの Platforms タブから iOS Simulator プラット" "フォームを選択して追加することもできます。" #: ../../using/ios.rst:163 msgid "Adding Python to an iOS project" msgstr "iOS プロジェクトに Python を追加する" #: ../../using/ios.rst:165 msgid "" "Python can be added to any iOS project, using either Swift or Objective C. " "The following examples will use Objective C; if you are using Swift, you may " "find a library like `PythonKit `__ to " "be helpful." msgstr "" "Python は、 Swift または Objective-C を使って、どの iOS プロジェクトにでも追" "加できます。以下の例では、 Objective-C を使用しています。 Swift を使う場合" "は、 `PythonKit `__ のようなライブラリ" "が役に立つかもしれません。" #: ../../using/ios.rst:170 msgid "To add Python to an iOS Xcode project:" msgstr "Python を iOS Xcode プロジェクトに追加するには:" #: ../../using/ios.rst:172 msgid "" "Build or obtain a Python ``XCFramework``. See the instructions in :source:" "`Apple/iOS/README.md` (in the CPython source distribution) for details on " "how to build a Python ``XCFramework``. At a minimum, you will need a build " "that supports ``arm64-apple-ios``, plus one of either ``arm64-apple-ios-" "simulator`` or ``x86_64-apple-ios-simulator``." msgstr "" #: ../../using/ios.rst:178 msgid "" "Drag the ``XCframework`` into your iOS project. In the following " "instructions, we'll assume you've dropped the ``XCframework`` into the root " "of your project; however, you can use any other location that you want by " "adjusting paths as needed." msgstr "" "``XCframework`` を iOS プロジェクトにドラッグします。以降の説明では、 プロ" "ジェクトのルートに ``XCframework`` を設置したものと仮定しますが、パスを必要に" "応じて調整することで、他の場所を使用することも出来ます。" #: ../../using/ios.rst:183 msgid "" "Add your application code as a folder in your Xcode project. In the " "following instructions, we'll assume that your user code is in a folder " "named ``app`` in the root of your project; you can use any other location by " "adjusting paths as needed. Ensure that this folder is associated with your " "app target." msgstr "" "アプリケーションのコードを、 Xcode プロジェクトにフォルダーとして追加します。" "以降の説明では、 プロジェクトのルートに ``app`` という名前のユーザーコードが" "入ったフォルダを設置したものと仮定しますが、パスを必要に応じて調整すること" "で、他の場所を使用することも出来ます。フォルダがアプリのターゲットに関連付け" "られていることを確認してください。" #: ../../using/ios.rst:189 msgid "" "Select the app target by selecting the root node of your Xcode project, then " "the target name in the sidebar that appears." msgstr "" "Xcode プロジェクトのルートノードを選択することで、アプリのターゲットを選択し" "てください。すると、ターゲット名がサイドバーに現れるはずです。" #: ../../using/ios.rst:192 msgid "" "In the \"General\" settings, under \"Frameworks, Libraries and Embedded " "Content\", add ``Python.xcframework``, with \"Embed & Sign\" selected." msgstr "" "\"General\" の設定の \"Frameworks, Libraries and Embedded Content\" に、 " "\"Embed & Sign\" を選択して ``Python.xcframework`` を追加してください。" #: ../../using/ios.rst:195 msgid "In the \"Build Settings\" tab, modify the following:" msgstr "\"Build Settings\" タブで、次の項目を修正してください:" #: ../../using/ios.rst:197 msgid "Build Options" msgstr "Build Options" #: ../../using/ios.rst:199 msgid "User Script Sandboxing: No" msgstr "User Script Sandboxing: No" #: ../../using/ios.rst:200 msgid "Enable Testability: Yes" msgstr "Enable Testability: Yes" #: ../../using/ios.rst:202 msgid "Search Paths" msgstr "Search Paths" #: ../../using/ios.rst:204 msgid "Framework Search Paths: ``$(PROJECT_DIR)``" msgstr "Framework Search Paths: ``$(PROJECT_DIR)``" #: ../../using/ios.rst:205 msgid "" "Header Search Paths: ``\"$(BUILT_PRODUCTS_DIR)/Python.framework/Headers\"``" msgstr "" "Header Search Paths: ``\"$(BUILT_PRODUCTS_DIR)/Python.framework/Headers\"``" #: ../../using/ios.rst:207 msgid "Apple Clang - Warnings - All languages" msgstr "Apple Clang - Warnings - All languages" #: ../../using/ios.rst:209 msgid "Quoted Include In Framework Header: No" msgstr "Quoted Include In Framework Header: No" #: ../../using/ios.rst:211 msgid "" "Add a build step that processes the Python standard library, and your own " "Python binary dependencies. In the \"Build Phases\" tab, add a new \"Run " "Script\" build step *before* the \"Embed Frameworks\" step, but *after* the " "\"Copy Bundle Resources\" step. Name the step \"Process Python libraries\", " "disable the \"Based on dependency analysis\" checkbox, and set the script " "content to:" msgstr "" #: ../../using/ios.rst:218 msgid "" "set -e\n" "source $PROJECT_DIR/Python.xcframework/build/build_utils.sh\n" "install_python Python.xcframework app" msgstr "" #: ../../using/ios.rst:224 msgid "" "If you have placed your XCframework somewhere other than the root of your " "project, modify the path to the first argument." msgstr "" #: ../../using/ios.rst:227 msgid "" "Add Objective C code to initialize and use a Python interpreter in embedded " "mode. You should ensure that:" msgstr "" "Python インタープリタを埋め込みモードで初期化・使用する Objective C コードを" "追加します。次のことを確認する必要があります:" #: ../../using/ios.rst:230 msgid "UTF-8 mode (:c:member:`PyPreConfig.utf8_mode`) is *enabled*;" msgstr "" "UTF-8 モード (:c:member:`PyPreConfig.utf8_mode`) が有効になっていること" #: ../../using/ios.rst:231 msgid "Buffered stdio (:c:member:`PyConfig.buffered_stdio`) is *disabled*;" msgstr "" #: ../../using/ios.rst:232 msgid "Writing bytecode (:c:member:`PyConfig.write_bytecode`) is *disabled*;" msgstr "" #: ../../using/ios.rst:233 msgid "" "Signal handlers (:c:member:`PyConfig.install_signal_handlers`) are *enabled*;" msgstr "" #: ../../using/ios.rst:234 msgid "" "System logging (:c:member:`PyConfig.use_system_logger`) is *enabled* " "(optional, but strongly recommended; this is enabled by default);" msgstr "" #: ../../using/ios.rst:236 msgid "" ":envvar:`PYTHONHOME` for the interpreter is configured to point at the " "``python`` subfolder of your app's bundle; and" msgstr "" #: ../../using/ios.rst:238 msgid "The :envvar:`PYTHONPATH` for the interpreter includes:" msgstr "" #: ../../using/ios.rst:240 msgid "the ``python/lib/python3.X`` subfolder of your app's bundle," msgstr "アプリのバンドルの ``python/lib/python3.X`` サブフォルダ" #: ../../using/ios.rst:241 msgid "" "the ``python/lib/python3.X/lib-dynload`` subfolder of your app's bundle, and" msgstr "アプリのバンドルの ``python/lib/python3.X/lib-dynload`` サブフォルダ" #: ../../using/ios.rst:242 msgid "the ``app`` subfolder of your app's bundle" msgstr "アプリのバンドルの ``app`` サブフォルダ" #: ../../using/ios.rst:244 msgid "" "Your app's bundle location can be determined using ``[[NSBundle mainBundle] " "resourcePath]``." msgstr "" "アプリのバンドルの場所は ``[[NSBundle mainBundle] resourcePath]`` を用いて取" "得できます。" #: ../../using/ios.rst:247 msgid "" "Steps 7 and 8 of these instructions assume that you have a single folder of " "pure Python application code, named ``app``. If you have third-party binary " "modules in your app, some additional steps will be required:" msgstr "" #: ../../using/ios.rst:251 msgid "" "You need to ensure that any folders containing third-party binaries are " "either associated with the app target, or are explicitly copied as part of " "step 7. Step 7 should also purge any binaries that are not appropriate for " "the platform a specific build is targeting (i.e., delete any device binaries " "if you're building an app targeting the simulator)." msgstr "" #: ../../using/ios.rst:257 msgid "" "If you're using a separate folder for third-party packages, ensure that " "folder is added to the end of the call to ``install_python`` in step 7, and " "as part of the :envvar:`PYTHONPATH` configuration in step 8." msgstr "" #: ../../using/ios.rst:261 msgid "" "If any of the folders that contain third-party packages will contain ``." "pth`` files, you should add that folder as a *site directory* (using :meth:" "`site.addsitedir`), rather than adding to :envvar:`PYTHONPATH` or :attr:`sys." "path` directly." msgstr "" #: ../../using/ios.rst:267 msgid "Testing a Python package" msgstr "" #: ../../using/ios.rst:269 msgid "" "The CPython source tree contains :source:`a testbed project ` that is used to run the CPython test suite on the iOS simulator. " "This testbed can also be used as a testbed project for running your Python " "library's test suite on iOS." msgstr "" #: ../../using/ios.rst:273 msgid "" "After building or obtaining an iOS XCFramework (see :source:`Apple/iOS/" "README.md` for details), create a clone of the Python iOS testbed project. " "If you used the ``Apple`` build script to build the XCframework, you can run:" msgstr "" #: ../../using/ios.rst:277 msgid "" "$ python cross-build/iOS/testbed clone --app --app app-testbed" msgstr "" #: ../../using/ios.rst:281 msgid "Or, if you've sourced your own XCframework, by running:" msgstr "" #: ../../using/ios.rst:283 msgid "" "$ python Apple/testbed clone --platform iOS --framework --app --app app-testbed" msgstr "" #: ../../using/ios.rst:287 msgid "" "Any folders specified with the ``--app`` flag will be copied into the cloned " "testbed project. The resulting testbed will be created in the ``app-" "testbed`` folder. In this example, the ``module1`` and ``module2`` would be " "importable modules at runtime. If your project has additional dependencies, " "they can be installed into the ``app-testbed/Testbed/app_packages`` folder " "(using ``pip install --target app-testbed/Testbed/app_packages`` or similar)." msgstr "" #: ../../using/ios.rst:294 msgid "" "You can then use the ``app-testbed`` folder to run the test suite for your " "app, For example, if ``module1.tests`` was the entry point to your test " "suite, you could run:" msgstr "" #: ../../using/ios.rst:298 msgid "$ python app-testbed run -- module1.tests" msgstr "" #: ../../using/ios.rst:302 msgid "" "This is the equivalent of running ``python -m module1.tests`` on a desktop " "Python build. Any arguments after the ``--`` will be passed to the testbed " "as if they were arguments to ``python -m`` on a desktop machine." msgstr "" #: ../../using/ios.rst:306 msgid "You can also open the testbed project in Xcode by running:" msgstr "" #: ../../using/ios.rst:308 msgid "$ open app-testbed/iOSTestbed.xcodeproj" msgstr "" #: ../../using/ios.rst:312 msgid "This will allow you to use the full Xcode suite of tools for debugging." msgstr "" #: ../../using/ios.rst:314 msgid "" "The arguments used to run the test suite are defined as part of the test " "plan. To modify the test plan, select the test plan node of the project tree " "(it should be the first child of the root node), and select the " "\"Configurations\" tab. Modify the \"Arguments Passed On Launch\" value to " "change the testing arguments." msgstr "" #: ../../using/ios.rst:320 msgid "" "The test plan also disables parallel testing, and specifies the use of the " "``Testbed.lldbinit`` file for providing configuration of the debugger. The " "default debugger configuration disables automatic breakpoints on the " "``SIGINT``, ``SIGUSR1``, ``SIGUSR2``, and ``SIGXFSZ`` signals." msgstr "" #: ../../using/ios.rst:326 msgid "App Store Compliance" msgstr "App Store コンプライアンス" #: ../../using/ios.rst:328 msgid "" "The only mechanism for distributing apps to third-party iOS devices is to " "submit the app to the iOS App Store; apps submitted for distribution must " "pass Apple's app review process. This process includes a set of automated " "validation rules that inspect the submitted application bundle for " "problematic code. There are some steps that must be taken to ensure that " "your app will be able to pass these validation steps." msgstr "" #: ../../using/ios.rst:336 msgid "Incompatible code in the standard library" msgstr "" #: ../../using/ios.rst:338 msgid "" "The Python standard library contains some code that is known to violate " "these automated rules. While these violations appear to be false positives, " "Apple's review rules cannot be challenged; so, it is necessary to modify the " "Python standard library for an app to pass App Store review." msgstr "" "Python の標準ライブラリには、これらの自動ルールに違反することが知られている" "コードがいくつか含まれています。これらの違反は誤検出であると思われますが、 " "Apple の審査ルールに異議を唱えることはできません。そのため、 Python の標準ラ" "イブラリを、アプリが App Store 審査に合格するよう修正する必要があります。" #: ../../using/ios.rst:343 msgid "" "The Python source tree contains :source:`a patch file ` that will remove all code that is known to cause " "issues with the App Store review process. This patch is applied " "automatically when building for iOS." msgstr "" "Python のソースツリーは、 App Store 審査プロセスで問題を引き起こすことが知ら" "れているすべてのコードを削除する :source:`パッチファイル ` を含んでいます。このパッチは iOS 用のビルド時に自動" "的に適用されます。" #: ../../using/ios.rst:349 msgid "Privacy manifests" msgstr "プライバシーマニフェスト" #: ../../using/ios.rst:351 msgid "" "In April 2025, Apple introduced a requirement for `certain third-party " "libraries to provide a Privacy Manifest `__. As a result, if you have a binary module " "that uses one of the affected libraries, you must provide an ``.xcprivacy`` " "file for that library. OpenSSL is one library affected by this requirement, " "but there are others." msgstr "" #: ../../using/ios.rst:358 msgid "" "If you produce a binary module named ``mymodule.so``, and use you the Xcode " "build script described in step 7 above, you can place a ``mymodule." "xcprivacy`` file next to ``mymodule.so``, and the privacy manifest will be " "installed into the required location when the binary module is converted " "into a framework." msgstr ""