1

現在、bash スクリプトを使用して iOS アプリケーションをビルドおよびアーカイブしています。「Watch」の導入により、以前のようにスクリプトが必要な .ipa ファイルを作成できなくなっていることがわかりました。

ビルドは、.ipa を作成するためXCRUNに呼び出すために使用する単一の .app ファイルを生成します。PackageApplication現在、2 つの .app ファイルと 1 つの .appex ファイルをアーカイブしようとしています。

複数の .app ファイルを使用してコマンドライン/スクリプトを使用して .ipa ファイルを正常に作成できた人はいますか?

Xcode 6.2 の使用

アップデート

現在、OSX 10.10.4 と共に Xcode 7 GM を使用しています。

「テスト」ビルドでは、開発者が常にプロファイルを変更するのに苦労したため、2 つのビルドを作成しました。1 つはコマンド ラインから、もう 1 つは IDE (Xcode) 経由です。.ipa 拡張子を .zip に変更し、2 を比較しました。

IDE からの適切なビルドにより、すべての署名 ID が正しく定義された「archived-expanded-entitlements.xcent」というファイルが生成されました。

このファイルを別のディレクトリにコピーし、それを使用して他のすべての後続のビルドに挿入しました。ビルドを電話にロードしてテストできるようになりました。

以下は、その方法の例です。ちょっとしたハックですが、うまくいきます。

security -v unlock-keychain -p "password" "keychainPath"

xcodebuild -configuration Test -scheme YourAppName -archivePath somePath/YourAppName.xcarchive archive

xcodebuild -exportArchive -exportFormat IPA -archivePath somePath/YourAppName.xcarchive -exportPath somePath/YourAppName.ipa

unzip -o somePath/YourAppName.ipa -d somePath

cp somePath/archived-expanded-entitlements.xcent somePath/Payload/YourAppName.app

zip -qr somePath/YourAppName.ipa Payload
4

2 に答える 2

-1

iPhone アプリと Apple Watch アプリを含む .ipa を生成するための回避策があります。

Xcodebuild を使用して .app が生成された後、bash スクリプトで次のことを行います。

A)

  1. アプリケーション名でディレクトリを作成

  2. Application ディレクトリ内に、Payload という名前のサブディレクトリを作成します

  3. .app をペイロード ディレクトリにコピーします

B)

  1. Application ディレクトリ内に、WatchKitSupport という名前のサブディレクトリを Payload の兄弟として作成します。

  2. Xcode の iOS 8.2 SDK から「WK」という名前のバイナリを新しい WatchKitSupport ディレクトリにコピーします。このバイナリは次の場所にあります: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/Library/Application Support/WatchKit/

  3. 「WK」バイナリが何らかの方法で変更/再署名されていないことを確認してください。これは、デバイスでの検証に重要です。

  4. アプリケーションフォルダーを圧縮します

  5. .zip の名前を .ipa に変更します

展開すると、IPA には (少なくとも) xxx.ipa |________Payload/ |________WatchKitSupport/ |_____WK が含まれている必要があります。

これはうまくいきます。

于 2015-04-24T20:24:25.667 に答える