Closed4
zxing-cppをios用にビルドする手順
$ git clone https://github.com/nnabeyang/zxing-cpp.git
$ cd zxing-cpp
$ git checkout -b ios origin/ios
$ mkdir -p build/bin
$ curl -OL https://raw.githubusercontent.com/leetal/ios-cmake/master/ios.toolchain.cmake
$ touch build_ios.bash
build_ios.bash
#!/bin/bash
cmake -Sios -G Xcode .. \
-B bin/ios_arm64 \
-DDEPLOYMENT_TARGET=9.0 \
-DPLATFORM=OS64 \
-DBUILD_WRITERS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_BLACKBOX_TESTS=OFF \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_IOS_LIB=ON \
-DCMAKE_TOOLCHAIN_FILE=./build/ios.toolchain.cmake
cmake --build ./bin/ios_arm64 --config Release
cmake -Sios -G Xcode .. \
-B bin/ios_x86_64 \
-DDEPLOYMENT_TARGET=9.0 \
-DPLATFORM=SIMULATOR64 \
-DBUILD_WRITERS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_BLACKBOX_TESTS=OFF \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_IOS_LIB=ON \
-DCMAKE_TOOLCHAIN_FILE=./build/ios.toolchain.cmake
cmake --build ./bin/ios_x86_64 --config Release
xcodebuild -create-xcframework \
-library bin/ios_arm64/libZXing.a \
-headers ../wrappers/ios/include \
-library bin/ios_x86_64/libZXing.a \
-headers ../wrappers/ios/include \
-output ZXing.xcframework
$ chmod +x build_ios.bash
$ ./build_ios.bash
以上の操作でZXing.xcframework
がbuild_ios.bash
と同じディレクトリに出来上がる。SPMで利用する前提の場合はこれをzipで圧縮してgithubのリリースとかに添付する。
SPMでZXing.xcframework
を使うときはPackage.swift
の中のtargets
にbinaryTarget
を追加する。
.binaryTarget(
name: "ZXing",
url: "https://github.com/nnabeyang/zxing-cpp/releases/download/ios-v0.0.2/ZXing.xcframework.zip",
checksum: "ae6ce97c6ad85dcd2afad2ba034db09090bd4dcacf94807b12d1624ae722acf5")
checksum
の確認の仕方は一度ZXing.xcframework.zip
を落としてswift
コマンドで確かめる。
$ cd
$ curl -OL https://github.com/nnabeyang/zxing-cpp/releases/download/ios-v0.0.2/ZXing.xcframework.zip
$ cd /path/to/project
$ swift package compute-checksum ~/ZXing.xcframework.zip
プロジェクトの外でチェックサムを計算しようとするとerror: root manifest not found
というエラーが出る。
ZXing.xcframework.zip
の利用方法の完全な例は次のプロジェクトを参照
このスクラップは2021/06/12にクローズされました