これは.ipa
、メインの Cordova アプリケーションのファイルを編集することで実現できます。.appex
一般に、フォルダの下にファイルを追加し、ホスト iPhone/iPad アプリケーション用のファイルをPlugins
作成.entitlements
し、最後にバイナリを再設計しPayload
て、.ipa
ファイルに再度圧縮する必要があります。以下は、Telerik AppBuilder を使用して開発された Cordova アプリと WatchKit アプリ (拡張機能 + ウォッチキット アプリ) を組み合わせる方法を説明する手順です。
- まず
.ipa
、ホスト アプリケーション用のファイルと.appex
WatchKit アプリ用のパッケージが必要です。ファイルは、他の.ipa
アーカイブと同様に圧縮解除できる通常の iOS アプリケーション アーカイブ ファイルです。たとえば、unzip
コマンド ライン ツール (例: unzip <my_ipa_file>.ipa
) を使用できます。Telerik AppBuilder.ipa
と WatchKit アプリの両方を解凍します。
注: 各.ipa
アーカイブにはPayload
、実際の.app
アプリケーション パッケージが配置されている名前のフォルダーが含まれています。このフォルダを圧縮するときは、この命名規則を維持する必要があります。
_CodeSignature
のフォルダを削除しますPayload/<cordova_application_name>.app/_CodeSignature
。この_CodeSignature
フォルダーには、アプリケーションのバイナリ コード署名プロセス中に作成されたハッシュ テーブルを表す xml ファイルが含まれています。主にアプリのリソースに関する情報が含まれています。私たちの目的は新しいものを生成することなので、これは必要ありません。
.appex
WatchKit 拡張機能をコピーしPayload/cordova_application_name>.app/Plugins
ます (ほとんどの場合、フォルダーを作成する必要がありPlugins
ます)。
archived-expanded-entitlements.xcent
テンプレートを使用して作成する
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>'App_Identifier_Prefix'.'Main_Application_Bundle_Identifier'</string>
<key>keychain-access-groups</key>
<array>
<string>'App_Identifier_Prefix'.'Main_Application_Bundle_Identifier'</string>
</array>
</dict>
</plist>
archived-expanded-entitlements.xcent
下に を追加しますPayload/<cordova_application_name>.app/archived-expanded-entitlements.xcent
注: は、コルドバ アプリケーションMain_Application_Bundle_Identifier
の値です。CFBundleIdentifier
詳細については、App_Identifier_Prefix
この SO の質問を確認してください$(AppIdentifierPrefix) プロパティを手動で変更しますか?
- すべての
.mobileprovision
ファイルで、正しいアプリ ID と同じ証明書を使用する必要があります。最初.ipa
に、Cordova アプリケーションのファイルを正しい.mobileprovision
規定で署名することをお勧めします。それ以外の場合は、.mobileprovision
下に配置する必要がありますPayload/<cordova_application_name>.app/embedded.mobileprovision
。
- ツールを使用
codesign
して、Cordova アプリケーションのバイナリに再署名します。
codesign -f -s "Certificate_Name" --entitlements Payload/<cordova_application_name>.app/archived-expanded-entitlements.xcent Payload/<cordova_application_name>.app/<cordova_application_name>
- 編集したものを圧縮
Payload
してファイルに戻し.ipa
ます。(例zip -r <expected_ipa_name>.ipa Payload/
)
- 準備万端です!
この問題についてさらにサポートが必要な場合はお知らせください。