2014-09-22 105 views
4

很多iOS的第三方框架是圍繞定製框架打造的,也就是說你要在你的依賴應用集成。 新的IOS嵌入式框架,只有在iOS8上工作(參見我的文章here)之前,有用於兩個優雅的解決方案(如果你不選擇爲一個時間問題和知識創造腳本)Xcode的6和iOS靜態框架

iOS Universal Framework通過kstenerud

iOS Framework通過jverkoey

他們都工作,必須創建一個.framework分配爲您的客戶解決方案時是很好的解決方案。

Xcode6一出來,我就無法第一次工作,因爲編譯錯誤不同(詳見here)。

所以我搬到了iOS的框架,並與我吃驚的是它仍然適用於XCode6。

所以這個建議是針對與iOS的通用框架掙扎,沒有找到任何解決方案,使它適用於Xcode6的人。

由於如1所示,如果您的部署目標> = iOS7,這是目前最佳的定製解決方案,並且iOS通用框架的修補程序也可以幫助您接受嵌入式框架。 所有我已經在上面發現問題5

+1

我使用相同。讓我明天檢查我的。 – bllakjakk 2014-09-22 16:19:09

+0

目前還不清楚你的*問題*是什麼。但是,動態框架可以由在較早版本的iOS上運行的應用程序加載。 http://quellish.tumblr.com/post/103107323582/dynamic-frameworks-on-ios-7 – quellish 2014-12-07 19:14:05

回答

4

這一步描繪在Xcode 6

開放的Xcode創建靜態可可觸摸框架,並通過單擊文件\新建\項目創建一個新的靜態框架項目並選擇iOS \ Framework和Library \ Cocoa Touch框架。

您可以提供框架項目名稱和保存到一個空目錄。

自動爲我們的框架創建標頭。在這頭,你應該使用之類的語句#進口

靜態框架項目是由頭文件和執行文件,這些文件被編譯,使框架本身的導入我們的框架中所有的公共報頭。您可以使用Cocoa Touch類創建課程。

驗證您的生成設置轉到您的項目的生成設置目標並確認或將「體系結構」設置爲「標準體系結構」。這些是arm64和armv7,可能是默認設置。除此之外,我們還需要設置幾個架構,因爲iOS應用程序需要在許多不同的架構上運行。 armv7:用於最早的iOS 7支持設備armv7s:用於iPhone 5和5C arm64:用於iPhone 5S中的64位ARM處理器i386:用於32位模擬器x86_64:用於64位處理器,位模擬器

這意味着版本是一樣快,因爲他們可以。當您存檔應用程序或在發佈模式下構建時,Xcode將爲所有ARM體系結構構建,從而允許應用程序在大多數設備上運行。

Mach-O的設置:靜態庫:

最終建成項目:

的總目標,通過使用脂的設備和模擬器框架結合起來,你可以在下面的腳本添加到您的總目標。

FRAMEWORK_NAME="${PROJECT_NAME}" 


SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${FRAMEWORK_NAME}.framework" 

DEVICE_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/${FRAMEWORK_NAME}.framework" 

UNIVERSAL_LIBRARY_DIR="${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal" 

FRAMEWORK="${UNIVERSAL_LIBRARY_DIR}/${FRAMEWORK_NAME}.framework" 

xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphonesimulator -arch i386 -arch x86_64 -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphonesimulator | echo 

xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphoneos -arch arm64 -arch armv7 -arch armv7s -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphoneos | echo 


rm -rf "${UNIVERSAL_LIBRARY_DIR}" 

mkdir "${UNIVERSAL_LIBRARY_DIR}" 

mkdir "${FRAMEWORK}" 


cp -r "${DEVICE_LIBRARY_PATH}/." "${FRAMEWORK}" 


lipo "${SIMULATOR_LIBRARY_PATH}/${FRAMEWORK_NAME}""${DEVICE_LIBRARY_PATH}/${FRAMEWORK_NAME}" -create -output"${FRAMEWORK}/${FRAMEWORK_NAME}" | echo 
+0

好帖子!非常感謝! – e2l3n 2015-12-21 10:37:39

0

可以在iOS的7使用的Xcode 6通用框架, - 見我的回答here