我自动创建了一个简单视图应用程序,因此创建了一个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。如果您了解我的目标的另一种方式,那么欢迎您。