Xcode 9.2でビルドする場合、xcodebuild
で生成されるバイナリは、Xcodeの通常の「ビルド用プロファイリング」コマンドよりもわずかに大きくなります。両方ともリリースビルドを生成するように設定されている場合、コマンドラインビルドの設定も 'リリース'に設定されていますが、これは以前のバージョンのXcodeでは発生しませんでした。 Xcodeの中から構築するときXcode 9.2:Xcode内のリリースビルドとxcodebuildを使用した場合のサイズの差異
これらは、それぞれのサイズのフレームワークです:
そして、これらはxcodebuild
によって生成されます。
私はいくつかのデバッグやコードのことを疑いますxcodebuild
を使用すると、一部のフレームワークでカバレッジデータが残されます。
FYI:以前のビルドでは、より大きなCバイナリがありました(たとえば、sqlite3.frameworkは数メガバイトでした)。 https://github.com/Carthage/Carthage/issues/2056を発見した後、私はビルドスキームの 'Test'アクションでコードカバレッジを無効にし、 "Undefined Behavior"サニタイザを無効にしました。その前に、フレームワークは(再び、ノートsqlite3.framework)にも大きかったし、リリースに存在してはならないどの消毒剤「未定義の動作」からdylibがあったのビルド:
でした誰の出会いを似たようなことや、この問題を解決できましたか?例えば、 nm
またはotool
の場合は役立ちます(また、意味のある情報を生成するためにこれらのツールに渡すオプションを教えてください)。
PS: 私はxcodebuild
ために、このコマンドを使用しています:
xcodebuild -workspace Timing.xcworkspace -scheme 'Timing 2' -configuration 'Release' -derivedDataPath build clean build
を私はパラレル
defaults write com.apple.dt.Xcode BuildSystemScheduleInherentlyParallelCommandsExclusively -bool NO
を構築し、新しいXcodeのビルドシステムを使用しています、しかし問題も表示されます可能でした「通常の」ビルド設定を使用します。さらに、Xcodeのビルドステップの出力と、いずれの場合もxcodebuild
の出力に違いはありません。また、sqlite3.frameworkはCocoaPodsを介して構築されていますが、それは問題ではありません。