2013-05-07 13 views
21

iOSアプリケーションに非jailbrokenデバイス用の資格を追加する方法を誰かが知っていますか?

  • iOSの操作システムは、 "資格" という概念を持っているいくつかの背景。一般に、アプリケーションに付与される許可です。他のシステムサービスやアプリは、この権限をチェックして、一部の機能の実行を許可/拒否することができます。

  • これらのエンタイトルメントは、プロビジョニング・プロファイルで指定する必要があります。

  • システム・アプリケーションには、さまざまなエンタイトルメントがあります。

  • ユーザアプリケーションは、(iCloudへのアクセスや開発者ポータルで設定可能なものなど)いくつかの資格のみに制限されています。

問題は次のとおりです。NON jailbrokenデバイス用のユーザーアプリケーションにエンタイトルメントを追加する方法を知っている人はいますか?

開発したアプリケーションに資格を追加して、システムサービスを使用するためのアクセス権を増やすことを考えています。

ノート&免責

  • 私はジェイルブレイク電話のためにこれを行う方法を知っています。ただし、非jailbrokenデバイスでは動作しません。

  • 私はAppleがそれを拒否することを認識しています。それはAppStoreには行きません。

  • 解決策は、コンパイル時の解決策(つまり、ファイルを変更する方法)である必要はありません。ランタイム・ソリューションとなる可能性があります.1つのアプリケーションは、何らかの形でエンタイトルメントを追加したり、サードパーティ製のアプリケーションに追加することができます。

+0

jailbrokenデバイス用のエンタイトルメントとして可能かどうかは不明です!それがAppStoreに行かないなら、あなたはなぜ権利を使ってそれをしたいのだろうと思っていますか?必要な機能をオン/オフするためのクライアント固有のフラグを持つことはできませんか?それが私のエンタープライズアプリのやり方です。それとも、私はあなたが完全に間違っているかもしれませんか? – applefreak

+0

@AppleDeveloper:あいまいさがあるので、質問を更新しました。私は開発されたアプリケーションに資格を追加して、システムサービスを使用するためのより多くの権限を得たいと考えています。したがって、私たちの機能をオン/オフするのではなく、権限保護されたシステム機能にアクセスすることです。 –

+0

興味深い!申し訳ありませんが、私はここで投票する以外の助けをすることはできません。がんばろう。 – applefreak

答えて

3

いいえエンタイトルメントは、アプリケーションのコード署名内に含まれています。それらを変更すると、もちろん署名が破られ、在庫iOSデバイスはコード署名が壊れたコードを実行しません。あなたが求めるものは不可能です。

+0

一部のファイルに格納されているエンタイトルメントとこれらのエンタイトルメントの実際の実行の間には、かなり長い実行パスがあります。したがって、署名付きのファイルを変更できないということは、実行パスを変更できないことを意味するものではありません。即座に資格を追加したり、資格を一時的に無効にするなど、いくつかのフラグやプライベートアピスなどが存在する可能性があります。 –

+0

私はこれを行う方法の具体的な知識を持っていません。念頭に置かれる唯一のメカニズムは、.plist内の静的フラグを変更すること、またはランタイム変更を達成するためにいくつかのメソッドをスウィズリングすることです。 (http://cocoadev.com/wiki/MethodSwizzling)最初のケースでは、コード署名が壊れていることは明らかです。 2番目の方法では、署名を破ることなくスウィズルコードを追加する方法はありません。 – CuriousRabbit

関連する問題