フラッター株式のiOSアプリケーションアクセスフラッタ

序文

ブログの記事に基づいてこの記事:フラッタービルドIOS製品分析

あなたが使用したい場合は、現在のフラッター初期段階のためには、そう、それは、ネイティブフラッター、緩やかかつ完全なのフラッターのすなわち緩やかな統合進化の段階的なプロセスである必要があります。

デバッグ統合ソリューション

  • デバッグソリューションを統合デバッグするために、あなたは直接ソースレベルデバッグすることができますし、問題への展開、簡単な外観。(フラッタプラグ共感)

ネイティブ依存フラッター解析

最後の章番組の内容に応じて、コアコンテンツのネイティブ依存フラッタ依存フラッタエンジン(Flutter.framework)、解析され、フラッタプラグイン、並びに依存フラッタビジネスレイヤコード(App.framework)に依存しています。

フラッターをインストールポッドネイティブ

次のようにそのため、設定プロセスプラグインフラッターを試運転ネイティブ工学の直接の開発は、次のとおりです。

  • 分析Generated.xcconfig買収FLUTTER_ROOT
  • 依存フラッターエンジン
  • 依存フラッタビジネスコード
  • プラグインの依存フラッタレジストリ
  • プラグインの依存フラッター
  • 偽ビットコードに設定します

したがって、エンジニアリングのネイティブ依存フラッターは、flutter_podhelper.rb上記のセクションに含まれます。

アクセス処理

修正xcode_backend.sh

フラッター1.9.1バージョンでは、スクリプトを変更する必要があります。一時的に不明で他のバージョン。

  • vim $FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh
--- a/packages/flutter_tools/bin/xcode_backend.sh
+++ b/packages/flutter_tools/bin/xcode_backend.sh
@@ -141,7 +141,7 @@ BuildApp() {
     mkdir "${derived_dir}/engine"
     RunCommand cp -r -- "${flutter_podspec}" "${derived_dir}/engine"
     RunCommand cp -r -- "${flutter_framework}" "${derived_dir}/engine"
-    RunCommand find "${derived_dir}/engine/Flutter.framework" -type f -exec chmod a-w "{}" \;
+    RunCommand find "${derived_dir}/engine/Flutter.framework" -type f -iname '.h' -exec chmod a-w "{}" \;
   else
     RunCommand rm -rf -- "${derived_dir}/Flutter.framework"
     RunCommand cp -r -- "${flutter_framework}" "${derived_dir}"

プロジェクト階層

  • フラッタープロジェクト(アプリ)と同じディレクトリにネイティブエンジニアリング(アンドロイド、iOSの)を確保するために。
➜  temp tree -L 1
.
├── Android
├── flutter_module
└── iOS

3 directories, 0 files

修正のiOS / Podfile

ios/Podfile使用app/flutter_podhelper.rb

# 配置Flutter Module的目录
flutter_application_path = '../flutter_module'
# 加载.ios/Flutter/podhelper.rb来注入依赖
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')

target 'MyApp' do
  # 依赖注入:Flutter引擎、Flutter业务代码、Flutter插件依赖
  install_all_flutter_pods(flutter_application_path)
end

コンパイルフラッター製品

ではapp次のディレクトリは、以下を追加しますbuild.sh

# !/bin/sh

# 当前目录为app
echo "当前路径为:`pwd`" 

# 先清除.ios和.android
flutter clean

# 拉包
flutter pub get
flutter packages get

# 安装依赖
cd .ios  # 从当前目录为app进入.ios
# 插件依赖
pod install --verbose --no-repo-update
cd ../   # 从当前目录为app/.ios退出

# 编译
flutter build ios

その後にflutter_module、ディレクトリ、実行./build.sh、コンパイル、製品の成功を待ちます。

➜  flutter_module flutter build ios
Building com.wtfexample.flutterModule for device (ios-release)...
Found saved certificate choice "Apple Development: [email protected] (xxxxxxxx)". To clear, use
"flutter config".
Signing iOS app for device deployment using developer identity: "Apple Development:
[email protected] (xxxxxxxx)"
Running Xcode build...

 ├─Building Dart code...                                    20.0s
 ├─Generating dSYM file...                                   0.3s
 ├─Stripping debug symbols...                                0.0s
 ├─Assembling Flutter resources...                           0.7s
 └─Compiling, linking and signing...                         3.9s
Xcode build done.                                           29.6s
Built /Users/.../flutter_module/build/ios/iphoneos/Runner.app.

製品に依存

ではiOS、プロジェクトの実行pod install --verbose --no-repo-update、完全な依存性注入します。

リリース統合スキーム

統合されたソリューションに基づいて依存デバッグプログラムをリリース、単にフラッターエンジン、フラッタービジネスレイヤコード、静的ライブラリにコンパイルFlutterPluginRegistrant、フラッタープラグインとその依存関係は、ポッドを通じて統合することができます。

pod 'Flutter', :git => GitPath, :tag => GitTag
pod 'FlutterApp', :git => GitPath, :tag => GitTag
pod 'FlutterPluginRegistrant',  :git => GitPath,:tag => GitTag
モジュール 説明
ときめきます フラッターエンジン
FlutterApp フラッタービジネス層のコードとそのリソースファイル
FlutterPluginRegistrant フラッタープラグイン登録システム、プラグインフラッタ含みます
  • より多くのために、この記事を参照してくださいフラッターCIスクリプト制作フラッターiOSの最終製品のプログラムを作成する方法、分析。
    • このスクリプトは、静的ライブラリこれらのプログラムを作るための唯一の静的なホスティングプラットフォームとしてPodspec製品に静的ライブラリをアップロードする必要が続くかショーがすることができます。

付録

彼は183元の記事を発表 ウォンの賞賛217 ビュー46万+

おすすめ

転載: blog.csdn.net/Notzuonotdied/article/details/103746222