12

スタックオーバーフローで質問するのはこれが初めてで、必死です。

私の仕事は、dylib をロードするか、静的ライブラリを IOS デバイス用の既存の実行可能ファイルに結合することです。

を使用しstatic void __attribute__((constructor)) initialize(void)てスウィズリングを開始します。この実行可能ファイルは社内エンタープライズ アプリストア用であるため、Apple アプリストアを経由する必要はありません (拒否されるため)。

これは、顧客から既存の IPA と署名キーを取得し、開発者の介入を必要とせずにアプリケーションに新しい機能を追加するためです。

nukonaという会社があります。ここで映画を見ることができます: https://www.youtube.com/watch?feature=player_embedded&v=z9rrOB6lOxY

LSEnvironment を plist ファイル内に配置しようとしたことはわかりますDYLD_INSERT_LIBRARIESが、IOS アプリケーションのサンドボックスでは LSEnvironment は何の効果もないようです。

また、依存関係の1つを変更し、それをdylib(その依存関係もある)に置き換えるためにinstall_name_toolを試しました。理由がわからずにクラッシュします。

明らかに、XCode のテスト アプリケーションに dylib を追加して再コンパイルすると、完全に動作します。しかし、これは私が会社の管理者などに尋ねることはできません。再構築すると、顧客がこのライブラリを使用するのを思いとどまらせる可能性があります。

これは、スタックオーバーフローで見つけた関連リンクですが、osx 用であり、IOS 用に必要です。 LC_LOAD_DYLIB コマンドを Mach-O バイナリに挿入する方法 (OSX)

私が考えることができる唯一のことは、バイナリロードコマンドを何らかの方法で編集することですが、再配置テーブルなどを考慮してそれを行う方法と方法がわかりません...

どんな代替案でも大歓迎です。

お時間をいただきありがとうございます。

4

1 に答える 1

7

まさにこれを行うオープンソースoptoolを作成しました (iOS ではテストしていませんが、動作するはずです。問題がある場合は、問題を開いてください)。

于 2014-08-05T05:56:55.140 に答える