2015-09-01 25 views
10

Tôi đã tạo một khung công tác iOS tùy chỉnh sử dụng Xcode 6.Và tôi đã thử nhiều tập lệnh để tạo khung phổ quát (cho trình mô phỏng và thiết bị). Nhưng không ai trong số họ làm việc cho tôi. cách để tạo ra một khuôn khổ tùy chỉnh phổ biến dành cho iOS trong Xcode 6.Phổ biến iOS framework bằng cách sử dụng Xcode 6.4

+0

một số hãy cho tôi giải pháp – haritha

Trả lời

6

để hợp nhất hai tập tin nhị phân thành một nhị phân phổ thông qua các thiết bị đầu cuối:

Đầu tiên biên dịch thiết bị nhị phân, sau đó biên dịch nhị phân giả riêng.

Tìm cả hai tệp nhị phân. Nếu bạn muốn kiểm tra mà kiến ​​trúc được biên dịch vào mỗi bạn có thể chạy lệnh này trong terminal: sản lượng

lipo -info /path/to/binary

Ví dụ:

Kiến trúc trong file chất béo:/path/to/nhị phân là: ARMv7 arm64

Bây giờ bạn có thể kết hợp cả hai binari es thành một:

lipo -create /path/to/simulator/binary /path/to/device/binary -output /path/to/output/binary

Các nhị phân đầu ra sẽ có cả hai mô phỏng và thiết bị kiến ​​trúc.

3

Để xây dựng và phân phối các khuôn khổ:

Trong dự án khuôn khổ:

  1. Đặt thiết cho mục tiêu xây dựng (và cho dự án, chỉ để được an toàn) 'Xây dựng chỉ Kiến trúc tích cực 'KHÔNG. Chúng tôi muốn xây dựng tất cả các kiến ​​trúc để nhị phân có thể được sử dụng trong tất cả các thiết bị được hỗ trợ, không chỉ là thiết bị mà chúng tôi đã tạo để xây dựng. Tùy thuộc vào mục tiêu triển khai của bạn (và do đó, các thiết bị bạn hỗ trợ), bạn có thể cần phải thêm kiến ​​trúc ARMv7s
  2. Xây dựng cho trình mô phỏng và xây dựng cho thiết bị, điều này sẽ tạo hai khung trong thư mục dữ liệu có nguồn gốc.

Trong Terminal:

  1. Tìm đường dẫn dữ liệu có nguồn gốc cho dự án. Tìm thư mục 'Xây dựng-> Sản phẩm'. Bên trong nó phải là '-iphoneos' và '-iphonesimulator'. Bên trong mỗi thư mục .framework. Sao chép một trong số đó vào một số thư mục đẹp. Từ mỗi thư mục .frawework, sao chép tệp nhị phân trong đó vào một thư mục.
  2. Trong terminal chạy lệnh 'lipo -tạo -output <outputName> <binaryFromiphoneos> <binaryFromiphonesimulator>'. Điều này sẽ tạo ra một nhị phân chất béo với tất cả các kiến ​​trúc cho cả mô phỏng và thiết bị. Thay thế thư mục trong thư mục .framework được sao chép bằng mới được tạo ra .

Để sử dụng khung bằng ứng dụng khác:

  1. Chọn dự án trong Navigator Project, chọn mục tiêu, và chọn tab 'General'.
  2. kéo thư mục .framework vào vị trí hiển thị 'Thêm tệp nhị phân được nhúng vào đây'.
  3. Trong cài đặt xây dựng của mục tiêu, thêm đường dẫn đến thư mục .framework vào 'Đường dẫn tìm kiếm khung'.
  4. Nhập các tập tin trong mã nguồn của bạn sử dụng #import <frameworkName/frameworkName.h>
3

theo câu hỏi của bạn để làm cho khung tùy chỉnh phổ biến bạn cần phải làm theo các bước này hoặc truy cập “http://www.raywenderlich.com/65964/create-a-framework-for-ios” như có làm khuôn khổ giới thiệu raywenderlich.

1.) Tạo dự án.

2.) Thêm mục tiêu mới vào dự án của bạn bằng cách chọn Cocoa Touch Static Library. (Để tham khảo thêm: http://www.raywenderlich.com/65964/create-a-framework-for-ios)

3.) Bây giờ bạn cần làm là đặt thư viện tĩnh làm sơ đồ hoạt động. Hãy chắc chắn rằng bạn đã thêm "arm64" trong Cài đặt Xây dựng trong thư viện tragets.

4.) Chọn thiết bị iO và tạo bản dựng. Nhưng cho rằng bạn cần phải thêm kịch bản dưới đây để làm cho nó phổ quát cho tất cả các thiết bị.

Script:

# define output folder environment variable 
 
UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal 
 
UNIVERSAL_OUTPUTFOLDERx64=${BUILD_DIR}/${CONFIGURATION}-universalx64 
 

 
# Step 1. Build Device and Simulator versions 
 
xcodebuild -target DKHelperLib ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" 
 
xcodebuild -target DKHelperLib -configuration ${CONFIGURATION} -sdk iphonesimulator -arch i386 BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" 
 
xcodebuild -target DKHelperLib -configuration ${CONFIGURATION} -sdk iphonesimulator -arch x86_64 BUILD_DIR="${UNIVERSAL_OUTPUTFOLDERx64}" BUILD_ROOT="${BUILD_ROOT}" 
 

 
# make sure the output directory exists 
 
mkdir -p "${UNIVERSAL_OUTPUTFOLDER}" 
 

 
# Step 2. Create universal binary file using lipo 
 
lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}.a" "${UNIVERSAL_OUTPUTFOLDERx64}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}.a" 
 

 
# Last touch. copy the header files. Just for convenience 
 
cp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/include" "${UNIVERSAL_OUTPUTFOLDER}/"
enter image description here Hope kịch bản này sẽ giúp bạn.

Các vấn đề liên quan