解決 CocoaPods 因為 Build Settings 中 Build Active Architecture Only 設為 YES 造成的 build error

CocoaPods 很方便,不過它有個設定我實在搞不懂,就是預設會把 Pods project 的 Build Settings > Build Active Architecture OnlyDebug 模式下設為 YES,導致每次執行完 pod install 之後就會發生編譯錯誤,要手動把這個選項刪掉(回復預設值 NO)或直接改成 NO 才行。

本來這種事其實也沒什麼,反正不是天天跑 pod install,但是久了還是很煩。找了一下網路,一般的解法是利用 post_install 這個 method,在裡面把每個 target 的 Build Active Architecture Only 設為 NO

Podfile 中加入下面這段:(Ref: http://samwize.com/2014/05/15/resolving-cocoapods-build-error-due-to-targets-building-for-only-active-architecture/

# Append to your Podfile
post_install do |installer_representation|
    installer_representation.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
        end
    end
end

不過這段是把 project 下的每個 target 中的 Build Active Architecture Only 設為 NO,事實上只要改 project 的設定,把 CocoaPods 自己加進去的 Build Active Architecture Only = YES 拿掉就可以了,所以修改如下:

# Append to your Podfile
post_install do |installer_representation|
    installer_representation.pods_project.build_configurations.each do |configuration|
        configuration.build_settings.delete 'ONLY_ACTIVE_ARCH'
    end
end

Contents

comments powered by Disqus