Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 我应该如何以静态库的形式分发iOS SDK?_Xcode_Ios_Sdk_Distribution_Static Libraries - Fatal编程技术网

Xcode 我应该如何以静态库的形式分发iOS SDK?

Xcode 我应该如何以静态库的形式分发iOS SDK?,xcode,ios,sdk,distribution,static-libraries,Xcode,Ios,Sdk,Distribution,Static Libraries,我目前正在为iOS编译一个静态库,我们称之为libMySDK.a。我复制最终用户需要的任何头文件,并将它们放入libMySDK.a文件夹中。如果我在新项目的构建设置(在“其他链接器标志”下)中设置-all_load linker标志,则可以将此文件夹拖到新的Xcode项目中,并且一切正常 我从来没有分发过静态库-它是一个包含一些头文件和一个.a文件的文件夹,如果您想使用MySDK,您希望收到这个文件?Openfeint将其框架作为静态框架提供。我们可以将该框架用作iOS SDK中的框架 中的“

我目前正在为iOS编译一个静态库,我们称之为libMySDK.a。我复制最终用户需要的任何头文件,并将它们放入libMySDK.a文件夹中。如果我在新项目的构建设置(在“其他链接器标志”下)中设置-all_load linker标志,则可以将此文件夹拖到新的Xcode项目中,并且一切正常


我从来没有分发过静态库-它是一个包含一些头文件和一个.a文件的文件夹,如果您想使用MySDK,您希望收到这个文件?

Openfeint将其框架作为静态框架提供。我们可以将该框架用作iOS SDK中的框架

  • 中的“将OpenFeint添加为框架”
请看一看。打开OpenFeint项目,进入“OpenFeint iOS”目标。它有“构建静态库”、“构建通用库”、“复制头”和“复制资源”阶段。这些阶段使用shell脚本创建静态框架。它将帮助您分发静态库

编辑:

关键在于“构建通用库”阶段的shell脚本。正确创建框架目录(Versions/A/Headers和Resources),从编译的静态库中创建通用二进制文件,复制头文件和通用二进制文件,并正确创建符号链接

# Create framework directory structure.
rm -rf "${FRAMEWORK}" &>/dev/null
mkdir -p "${UNIVERSAL_LIBRARY_DIR}"
mkdir -p "${FRAMEWORK}/Versions/A/Headers"
mkdir -p "${FRAMEWORK}/Versions/A/Resources"

# Generate universal binary from desktop, device, and simulator builds.
lipo "${SIMULATOR_LIBRARY_PATH}" "${DEVICE_LIBRARY_PATH}" -create -output "${UNIVERSAL_LIBRARY_PATH}"

# Move files to appropriate locations in framework paths.
cp "${UNIVERSAL_LIBRARY_PATH}" "${FRAMEWORK}/Versions/A"
cd "${FRAMEWORK}"
ln -sf "A" "Versions/Current"
ln -sf "Versions/Current/Headers" "Headers"
ln -sf "Versions/Current/Resources" "Resources"
ln -sf "Versions/Current/${PRODUCT_NAME}" "${PRODUCT_NAME}"

我希望收到源代码。为什么不分发它,而不是编译库呢?我正在关闭源代码。谢谢Kazuki!我把这个作为答案。如果有人通过谷歌发现了这一点,我最初的方法似乎也可以接受。Flurry SDK附带一个.a文件和一个FlurryAPI.h头。我认为静态框架方法在版本控制方面有一些优势,但我还不确定这些优势是什么!