参考//remoting/host/it2me/BUILD.gn生成

    导入头文件

    1. import("//build/config/features.gni")
    2. import("//build/config/mac/rules.gni")
    3. import("//third_party/icu/config.gni")

    其中”//build/config/mac/rules.gni定义了非常有用的模版可以打包App。
    我们要用的是mac_app_bundle

    首先,需要指定Info.plist, Info.plist 可以使用Xcode自动生成,然后移动到目录中。
    extra_substitutions用于替换Info.plist中的变量。

    1. info_plist = "shadowmac-Info.plist"
    2. extra_substitutions = [
    3. "BUNDLE_ID=$remote_assistance_host_bundle_id",
    4. "MACOSX_DEPLOYMENT_TARGET=10.10",
    5. ]

    OK, 附上完整的配置

    1. import("//build/config/features.gni")
    2. import("//build/config/mac/rules.gni")
    3. import("//third_party/icu/config.gni")
    4. target("mac_app_bundle", "shadowmac") {
    5. info_plist = "shadowmac-Info.plist"
    6. extra_substitutions = [
    7. "MACOSX_DEPLOYMENT_TARGET=10.10",
    8. ]
    9. sources = [
    10. "main.mm",
    11. ]
    12. libs = [
    13. "Foundation.framework",
    14. "AppKit.framework",
    15. ]
    16. }

    包就大好了,直接运行,App崩溃,因为NSApplicationMain函数需要加载storyboard,但是没有找到。

    找找看工程里面有没有地方用了NSApplicationMain, 学习下
    Screen Shot 2019-10-24 at 2.35.37 PM.png