如何通过命令行创建Xcode项目?

时间:2017-05-17 13:29:42

标签: ios xcode cmake

我自动创建了一个简单视图应用程序,因此创建了一个Xcode项目。

这必须是一个空白的应用程序。一个简单应用程序的基础,Xcode向导中的第一个。

在Stackoverflow上搜索和搜索,似乎我的目标的最佳选择是使用 Cmake 。不幸的是,这个工具的文档imho非常糟糕。

我发现的最佳答案是this。但结果虽然存在一些差异,却无法奏效。 我使用的另一个来源是this

我的CMakeLists.txt如下:

cmake_minimum_required (VERSION 3.7)

project(tempProject)
set(NAME tempProject)
set(DEPLOYMENT_TARGET 10.1)
set(CODESIGNIDENTITY "iPhone Developer: XXX")
set(DEVELOPMENT_TEAM_ID "team id")

set(CMAKE_OSX_SYSROOT iphoneos10.3)
set(CMAKE_OSX_ARCHITECTURES $(ARCHS_STANDARD))
set(CMAKE_CXX_FLAGS "-x objective-c++")

set(APP_TYPE MACOSX_BUNDLE)
set(PRODUCT_NAME ${NAME})
set(EXECUTABLE_NAME ${NAME})
set(MACOSX_BUNDLE_EXECUTABLE_NAME ${NAME})
set(MACOSX_BUNDLE_INFO_STRING "bundle")
set(MACOSX_BUNDLE_GUI_IDENTIFIER "bundle")
set(MACOSX_BUNDLE_BUNDLE_NAME "bundle")
set(MACOSX_BUNDLE_ICON_FILE "")
set(MACOSX_BUNDLE_LONG_VERSION_STRING "1.0")
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "1.0")
set(MACOSX_BUNDLE_BUNDLE_VERSION "1.0")
set(MACOSX_BUNDLE_COPYRIGHT "Copyright YOU")
set(MACOSX_DEPLOYMENT_TARGET ${DEPLOYMENT_TARGET})

set(APP_HEADER_FILES
./AppDelegate.h
./ViewController.h
)

set(APP_SOURCE_FILES
./AppDelegate.m
./ViewController.m
)

set(RESOURCES
./Main.storyboard
./LaunchScreen.storyboard
)

add_executable(
${NAME}
${APP_TYPE}
${APP_HEADER_FILES}
${APP_SOURCE_FILES}
${RESOURCES}
)

find_library(UIKIT UIKit)
find_library(FOUNDATION Foundation)
find_library(MOBILECORESERVICES MobileCoreServices)
find_library(CFNETWORK CFNetwork)
find_library(SYSTEMCONFIGURATION SystemConfiguration)

set_target_properties(${NAME} PROPERTIES
    XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym"
    RESOURCE "${RESOURCES}"
    XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER "YES"
    XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET ${DEPLOYMENT_TARGET}
    XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODESIGNIDENTITY}
    XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
    XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1"
    XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES
    XCODE_ATTRIBUTE_COMBINE_HIDPI_IMAGES "NO")

我遇到的主要问题是:

  • dirs的结构与通过向导生成的Xcode项目不同;

  • 禁用项目的自动签名;

  • 如果我尝试运行App,则会出现以下错误: clang: error: linker command failed with exit code 1 (use -v to see invocation)

P.S。如果您了解我的目标的另一种方式,那么欢迎您。

0 个答案:

没有答案