す。またそこから今後やるべきこともまとめたいです。 現時点でやってみたこと(途中・成功してなくても可) きた Rosetta前提のCarthageのXCFramework化は完了 https://github.com/ Rosetta前提 = arm64-simulatorなし carthage-fixのxconfigはそのままで、--use-xcframeworksをつかう手法 下記でopencvのXCFramework化もできた https://medium.com/strava-engineering/convert-a-universal-fat-framework-to-an-xcframework-39e33b7bd861 carthageコマンドに上記のXCFramework化をフックさせる方法が不明 Rosettaフリーに向けたstatic libraryのXCFramework化はこれでできるかも?(再ビルド不要なやり方もありそう) これはまだ成功してない https://anuragajwani.medium.com/how-to-build-universal-ios-static-libraries-using-xcframework-a3f70f998c38 ばんじゅんさん Carthageを消して(つまりZOZOMATも消して)、Rosettaフリー化できるか試して、(おそらく)成功した Rosettaフリー化 = ios-arm64 と ios-arm64-simulator の両方を達成する ZOZOGLASSなどCocoaPodsのもの、 については、Rosettaフリー用の特別なビルドをする ことはなく、xcframeworkに置き換えていくことでできる。ただしちょっと裏技っぽい ↑ bogoの手法による(mach-oの書き換え) https://bogo.wtf/arm64-to-sim.html ZOZOGLASSのopencvもこれでやった x86_64は実験手順短縮のために、入れていない。けど入れられるんじゃないかな?予想 手でつくれるだけで、手順化はしてない Carthageのときのフックみたいなシナリオは、つくらないといけない。つくってない 最悪は、post installで、最終形へのdiffをpatchにしたやつをapplyでも、ギリギリ許容? Carthage側で同様の手法は、別種の課題があることまでが分かっている Lottieですでにつまずく dynamic frameworkだから? swiftmoduleだから? みたいな。よくわかってない。 としさん CarthageでZOZOMATのXCFramework化 OpenCVはXCFrameworkにする必要がある この時はそれぞれビルドしてまとめる方法で実現した Arm64-simulatorとArm64-iPhone持っている https://www.cathand.app/entry/2020/11/23/214000 ここのbuild.shが改修の必要がありそうだなーと直感的にみています。 https://github.com/ 現状の分岐だとArm64-iPhoneとArm64-simulatorの違いを見分けるのが難しい → (ばんじゅん) bogoの手法でごまかしてもいいんじゃない? ZOZOMATのCocoaPods移行 計測チームよきさんによる解析 https://github.com 自分が挑戦した際のログ https://github.com 当時はx86_64のsimulatorに対してやっていた(かも) これに関しては致命的ではないのだが、CocoaPods移行に際して、ライブラリの参照の衝突があるので、grpcのアップデートは必 要になる StaticFrameworksについては GoogleMapsは一応公式でもXCFrameworkは提供されている(beta表記ではあるが) ただし手動で入れる必要あり CocoaPodsやCarthageでは現状無理 BuildSettingsのExcluded ArchitectureにArm64を追加する(XcodeはRosettaを外すことができる) 実際の動きとしては、x86_64向けのバイナリが作成されているので、Simulatorの慣性は効かない 細かいメモ