問題の説明
iOS デバイスで任意のアプリケーションを制御する必要があります。私の計画は、実行可能ファイルを IPA (リモート制御ロジックが実装されている場所) に挿入し、再パッケージ化することです。
アプリケーションは制御された環境 (特定のデバイス) で実行する必要があるため、プロビジョニング プロファイルと開発証明書を使用して再パッケージ化/署名する予定です。
まず、コードを挿入せずにサードパーティのアプリを再パッケージ化しようとしています。これは次の方法で行われます。
1. Unzip the existing IPA
2. Copy the provisioning profile to %APP_NAME%.app/embedded.mobileprovisioning
3. export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate"
4. signcode --force --deep -s "%Dev Cert Name%" "%Path/To/APP_NAME%.app"
5. zip the re-signed code back together
上記は、Xcode を使用して手動でビルドしたアプリケーションではうまく機能しますが、AppStore からダウンロードした IPA を使用すると、次のデバイス ログ エラーで機能しません。
<Debug>: AppleFairplayTextCrypterSession::fairplayOpen() failed, error -42112
アプリケーションの「Mach-O」実行可能ファイルを調べたところ、関連するアーキテクチャの「コード署名」セクションが (「signcode」ツールによって) 完全に変更されていることが確認されました。
質問
- Xcode を使用して手動で作成したアプリが正常に再パッケージ化/署名されているのに、AppStore からダウンロードしたアプリを再パッケージ化できないのはなぜですか?
- 開発証明書とプロビジョニング プロファイルを使用して AppStore アプリを再パッケージ化/署名するにはどうすればよいですか?
- FairPaly は、(Xcode を使用して) 手動で作成したアプリと、アプリストアからダウンロードしたアプリをどのように区別しますか? 手動で作成されたアプリにはない、アプリストアアプリにある残差は何ですか?