4

拡張機能とともに WatchOS2 ターゲットを含むプロジェクトがあります。WatchOS アプリ ターゲットと拡張機能の両方を複製したいと考えています。ただし、WatchOS アプリ ターゲットを複製すると、古い拡張機能にリンクされたままになります。WatchOS アプリのビルド フェーズにアクセスできなくなったため、Embed App Extension フェーズで変更できません。

初期状態

  • WatchAppTarget1 (埋め込み拡張機能 - WatchAppExtension1)
  • WatchAppExtension1

最終状態

  • WatchAppTarget1 (埋め込み拡張機能 - WatchAppExtension1)
  • WatchAppExtension1
  • WatchAppTarget-Duplicate (埋め込み拡張機能がまだ WatchAppExtension1 を指している)
  • WatchAppExtension-Duplicate

WatchOS App Target を変更して、複製された拡張機能を埋め込みの選択として受け入れる方法はありますか (.pbxproj を手動で編集する以外に)

4

1 に答える 1

6

今のところ、多くの時間を無駄にした後にこれを達成するために見つけた最も刺激の少ない方法は、WatchOS アプリをフレームワークのように動作するように変更して、Xcode がビルドフェーズセクションを提供することです。

project.pbxprojテキスト エディターで を開き、/* Begin PBXNativeTarget section */構成で WatchOS ターゲット (変更するターゲット) を見つけるようなセクションに移動します。次の行が必要です。

productType = "com.apple.product-type.application.watchapp2";

これを次のように変更します。

productType = "com.apple.product-type.application";またproductType = "com.apple.product-type.framework";

Xcode でプロジェクトを開き、[ビルド フェーズ] セクションを表示して、そこに移動し、「ターゲット依存関係」と「アプリ拡張機能を埋め込む」の古い拡張参照を削除して、新しいものに置き換えます。完了したら、 に戻ってproject.pbxproj変更を元に戻し、WatchOS ターゲットを に戻します。productType = "com.apple.product-type.application.watchapp2";

場合によっては、WatchOS と iOS アプリの両方に対して新しいビルド スキームを作成する必要があるかもしれませんが、これでうまくいくはずです!

于 2015-10-15T13:11:56.943 に答える