2

この回答で説明されている規則に従って、同じアプリのアプリ ストア バージョンとエンタープライズ バージョンの両方を管理しようとしていますが、非常に興味深い動作が見られます。

リンクされた回答で説明されているように、新しいスキームを作成し、新しい「エンタープライズ」ビルド構成を定義し、別の新しいバンドル ID を使用するようにエンタープライズ スキームを設定しました。両方のスキームは、新しいビルド構成に依存して動作を切り替える同じターゲットを指します。エンタープライズ ビルドを生成して無線で配布することはできますが、同じアプリの両方のバージョンを同じシミュレーターまたは電話にインストールすると、実際にはエンタープライズ バージョンがアプリのアプリ ストア バージョンを実行します。私が行った企業固有の変更は反映されません。アプリを閉じても、ホーム画面に戻るiOS7のアニメーションは、エンタープライズアイコンではなく、アプリストアのアイコンに戻ります。

明らかに、これらを独立して実行される個別のバージョンとして維持できるようにしたいと考えています。この種の行動を起こすには、ターゲットとスキームを根本的に誤解しているに違いないと感じています。どんな助けでも大歓迎です。

4

2 に答える 2

2

かなり興味深いバグ。

何が起こっていたのですか:

  • エンタープライズ版では、Facebook ログインを使用して独自のサービスで認証を行っていました。
  • FB SDK は、独自のロジックに応じて、引き継ぎ、Web/ビューまたは fb アプリにキックアウトします。重要なことに、開発者サイトで構成された同じ facebook "アプリ" を使用していました。
  • fb が返されると、次の URL スキームが呼び出されます。fb{app_id}
  • iOS は (一貫して) その URL スキームに応答する最初にインストールされたアプリを開くことを決定しました。ほとんどの場合、これはエンタープライズ バージョンではなくアプリ ストア バージョンでした。

これに対する解決策は、おそらくこの時点では明らかに、2 つの異なる Facebook アプリを使用して、iOS が返された OAuth 応答を適切なアプリにルーティングできるようにすることです。私が最初に取り組んでいたという答えに沿って、これは...

  • というタイトルの新しいユーザー定義ビルド設定の作成FACEBOOK_ID
  • デバッグとリリースには実稼働アプリ ID を使用し、エンタープライズには新しい ID を使用します。
  • info.plist で、値を次のように変更しますFacebookAppID${FACEBOOK_ID}
  • URL タイプで、facebook スキームを次のように変更します。fb${FACEBOOK_ID}
  • これにより、Facebook ログインが正常にルーティングされます。

これは、Facebook ログインだけでなく、すべてのディープ リンクの一般的な潜在的なバグであることに注意してください。

于 2014-03-11T17:19:42.817 に答える