2017-04-10 4 views
1

Xamarinフォームを使用してiOSとAndroid用のクロスプラットフォームを開発しました。私のアプリはいくつかのスクリーンと、Facebook、Googleマップ、firebaseなどのtjirdパーティの依存関係をいくつか使用しています。Xamarin iOSのビットコードを有効にする

リリースモードでコンパイルするまで、すべてうまくいきます。私がarmv7とarm64の両方をサポートしたいと仮定すると、これらはアプリケーションのサイズです: *リンクと最適化なし:103mb。 *完全最適化あり(全リンク+ LLVM):73mv。

最適化を行い、armv7を使用しない場合、私は40MBを得ています。これが望ましい結果サイズです。

この問題を解決するために、私はビットコードのコンパイルを有効にする必要があると考えました。しかし、Mac用のビジュアルスタジオやモノラルv5などのアルファツールを使用しても、この機能を有効にすると「サポートされていないプラットフォーム:iOS」になります。一方、私はソースコードを参照し、モノが許可されているのを見ただけでなく、彼らはビットコードを必要とする時計やテレビアプリケーションを許可しています...

誰かがiOS用に有効にする方法を知っていますか?私は私のために巨大な(!)援助になるでしょう!

ありがとうございます!

答えて

0

私は解決策を見つけることができず、ビットコードサポートなしでアプリケーションを提出しなければなりませんでした。 しかし、今後この問題に取り組む可能性があり、アプリサイズのためにビットコードを使用したいと思っている皆様には、私はこれを明確にしたいと思います:ビットコードは、iOS 9 App Thiningの一部として、将来のアーキテクチャリリースAppleはあなたの側から何もしなくても(あなたのコードをリンクする( "Link All")と両方のアーキテクチャをサポートする以外に)、あなたのarm7 + arm64アプリをApp Storeにアップロードするときに、自動的にスライスします。

推定されるアプリのサイズは確認できますが、Xamarin Studioではユニバーサルアプリのバージョンが表示され、デバイス固有の間引きのバージョンは表示されません。デバイスXのサイズを確認するには、

  • Ad-Hoc DistributionプロファイルApple Developer Siteを作成する必要があります。
  • Xamarin Studioでアーカイブを作成します。
  • Xcodeを開く(以前に開いていた場合は、再度開いてください)。
  • オーガナイザを開きます。
  • [エクスポート]をクリックし、次に[アドホック]をクリックします。
  • ユニバーサルipaまたはデバイス固有のipaが必要かどうかを確認するダイアログが表示されます。 ユニバーサルIPAのデータを含む汎用IPAで、すべてデバイスなので、誰にでも送信できます。このipaのサイズは、圧縮前のXamarin Studioで見たサイズになります。デバイス固有のipaは、Thiningを実行した後の特定のデバイスのipaです。これはユーザーがダウンロードするipaです。そのため、確認するデバイスを選択してください。

この特定のデバイスのサイズに一致するデバイス固有のipaを取得できるようになります。ビルドをアップロードすると、iTunes Connectに同じ情報が表示されます。

参照: iTunes Connect Example

ので、それを要約する:現在、あなたはXamarinのアプリ(iOSと明らかフォーム、)でビットコードを使用することはできません。このオプションはモノラルで存在しますが、含まれていません(出荷されたモノラルランタイムでは明示的に無効になっています)。しかし、これはXamarin Studioで表示されている推定アプリサイズがユーザーのアプリサイズになることを意味するものではありません。なぜなら、iOS 9以上のアプリThining機能(ビットコードをアクティブにする必要はない)によって異なります。

関連する問題