@@ -208,7 +208,7 @@ EXAMPLE="example/iOS Test App"
208208ARCHIVE=" archive/libcurl-$LIBCURL -openssl-$OPENSSL -nghttp2-$NGHTTP2 "
209209
210210echo
211- echo -e " ${bold} Creating archive for release v$LIBCURL ...${dim} "
211+ echo -e " ${bold} Creating archive with XCFrameworks for release v$LIBCURL ...${dim} "
212212echo " See $ARCHIVE "
213213mkdir -p " $ARCHIVE "
214214mkdir -p " $ARCHIVE /include/openssl"
@@ -226,106 +226,147 @@ mkdir -p "$ARCHIVE/bin"
226226mkdir -p " $ARCHIVE /framework"
227227mkdir -p " $ARCHIVE /xcframework"
228228
229- # libraries
229+ # libraries for libcurl, libcrypto and libssl
230230cp curl/lib/libcurl_iOS.a $ARCHIVE /lib/iOS/libcurl.a
231231cp curl/lib/libcurl_iOS-simulator.a $ARCHIVE /lib/iOS-simulator/libcurl.a
232232cp curl/lib/libcurl_iOS-fat.a $ARCHIVE /lib/iOS-fat/libcurl.a
233233cp curl/lib/libcurl_tvOS.a $ARCHIVE /lib/tvOS/libcurl.a
234234cp curl/lib/libcurl_tvOS-simulator.a $ARCHIVE /lib/tvOS-simulator/libcurl.a
235235cp curl/lib/libcurl_Mac.a $ARCHIVE /lib/MacOS/libcurl.a
236236
237- xcodebuild -create-xcframework \
238- -library $ARCHIVE /lib/iOS/libcurl.a \
239- -library $ARCHIVE /lib/iOS-simulator/libcurl.a \
240- -library $ARCHIVE /lib/tvOS/libcurl.a \
241- -library $ARCHIVE /lib/tvOS-simulator/libcurl.a \
242- -output $ARCHIVE /xcframework/libcurl.xcframework
243-
244237cp openssl/iOS/lib/libcrypto.a $ARCHIVE /lib/iOS/libcrypto.a
245238cp openssl/iOS-simulator/lib/libcrypto.a $ARCHIVE /lib/iOS-simulator/libcrypto.a
246239cp openssl/iOS-fat/lib/libcrypto.a $ARCHIVE /lib/iOS-fat/libcrypto.a
247240cp openssl/tvOS/lib/libcrypto.a $ARCHIVE /lib/tvOS/libcrypto.a
248241cp openssl/tvOS-simulator/lib/libcrypto.a $ARCHIVE /lib/tvOS-simulator/libcrypto.a
249242cp openssl/Mac/lib/libcrypto.a $ARCHIVE /lib/MacOS/libcrypto.a
250243
251- xcodebuild -create-xcframework \
252- -library $ARCHIVE /lib/iOS/libcrypto.a \
253- -library $ARCHIVE /lib/iOS-simulator/libcrypto.a \
254- -library $ARCHIVE /lib/tvOS/libcrypto.a \
255- -library $ARCHIVE /lib/tvOS-simulator/libcrypto.a \
256- -output $ARCHIVE /xcframework/libcrypto.xcframework
257-
258-
259244cp openssl/iOS/lib/libssl.a $ARCHIVE /lib/iOS/libssl.a
260245cp openssl/iOS-simulator/lib/libssl.a $ARCHIVE /lib/iOS-simulator/libssl.a
261246cp openssl/iOS-fat/lib/libssl.a $ARCHIVE /lib/iOS-fat/libssl.a
262247cp openssl/tvOS/lib/libssl.a $ARCHIVE /lib/tvOS/libssl.a
263248cp openssl/tvOS-simulator/lib/libssl.a $ARCHIVE /lib/tvOS-simulator/libssl.a
264249cp openssl/Mac/lib/libssl.a $ARCHIVE /lib/MacOS/libssl.a
265250
266- xcodebuild -create-xcframework \
267- -library $ARCHIVE /lib/iOS/libssl.a \
268- -library $ARCHIVE /lib/iOS-simulator/libssl.a \
269- -library $ARCHIVE /lib/tvOS/libssl.a \
270- -library $ARCHIVE /lib/tvOS-simulator/libssl.a \
271- -output $ARCHIVE /xcframework/libssl.xcframework
272-
273251if [ " $catalyst " == " -m" ]; then
252+ # Add catalyst libraries
274253 cp curl/lib/libcurl_Catalyst.a $ARCHIVE /lib/Catalyst/libcurl.a
275254 cp openssl/Catalyst/lib/libcrypto.a $ARCHIVE /lib/Catalyst/libcrypto.a
276255 cp openssl/Catalyst/lib/libssl.a $ARCHIVE /lib/Catalyst/libssl.a
256+
257+ # Build XCFrameworks with Catalyst library
258+ xcodebuild -create-xcframework \
259+ -library $ARCHIVE /lib/iOS/libcurl.a \
260+ -library $ARCHIVE /lib/iOS-simulator/libcurl.a \
261+ -library $ARCHIVE /lib/tvOS/libcurl.a \
262+ -library $ARCHIVE /lib/tvOS-simulator/libcurl.a \
263+ -library $ARCHIVE /lib/Catalyst/libcurl.a \
264+ -output $ARCHIVE /xcframework/libcurl.xcframework
265+ xcodebuild -create-xcframework \
266+ -library $ARCHIVE /lib/iOS/libcrypto.a \
267+ -library $ARCHIVE /lib/iOS-simulator/libcrypto.a \
268+ -library $ARCHIVE /lib/tvOS/libcrypto.a \
269+ -library $ARCHIVE /lib/tvOS-simulator/libcrypto.a \
270+ -library $ARCHIVE /lib/Catalyst/libcrypto.a \
271+ -output $ARCHIVE /xcframework/libcrypto.xcframework
272+ xcodebuild -create-xcframework \
273+ -library $ARCHIVE /lib/iOS/libssl.a \
274+ -library $ARCHIVE /lib/iOS-simulator/libssl.a \
275+ -library $ARCHIVE /lib/tvOS/libssl.a \
276+ -library $ARCHIVE /lib/tvOS-simulator/libssl.a \
277+ -library $ARCHIVE /lib/Catalyst/libssl.a \
278+ -output $ARCHIVE /xcframework/libssl.xcframework
279+ else
280+ # Build XCFrameworks
281+ xcodebuild -create-xcframework \
282+ -library $ARCHIVE /lib/iOS/libcurl.a \
283+ -library $ARCHIVE /lib/iOS-simulator/libcurl.a \
284+ -library $ARCHIVE /lib/tvOS/libcurl.a \
285+ -library $ARCHIVE /lib/tvOS-simulator/libcurl.a \
286+ -output $ARCHIVE /xcframework/libcurl.xcframework
287+ xcodebuild -create-xcframework \
288+ -library $ARCHIVE /lib/iOS/libcrypto.a \
289+ -library $ARCHIVE /lib/iOS-simulator/libcrypto.a \
290+ -library $ARCHIVE /lib/tvOS/libcrypto.a \
291+ -library $ARCHIVE /lib/tvOS-simulator/libcrypto.a \
292+ -output $ARCHIVE /xcframework/libcrypto.xcframework
293+ xcodebuild -create-xcframework \
294+ -library $ARCHIVE /lib/iOS/libssl.a \
295+ -library $ARCHIVE /lib/iOS-simulator/libssl.a \
296+ -library $ARCHIVE /lib/tvOS/libssl.a \
297+ -library $ARCHIVE /lib/tvOS-simulator/libssl.a \
298+ -output $ARCHIVE /xcframework/libssl.xcframework
277299fi
278300
279301cp openssl/* .a $ARCHIVE /framework
280302
303+ # libraries for nghttp2
281304if [ " $buildnghttp2 " != " " ]; then
305+ # nghttp2 libraries
282306 cp nghttp2/lib/libnghttp2_iOS.a $ARCHIVE /lib/iOS/libnghttp2.a
283307 cp nghttp2/lib/libnghttp2_iOS-simulator.a $ARCHIVE /lib/iOS-simulator/libnghttp2.a
284308 cp nghttp2/lib/libnghttp2_iOS-fat.a $ARCHIVE /lib/iOS-fat/libnghttp2.a
285309 cp nghttp2/lib/libnghttp2_tvOS.a $ARCHIVE /lib/tvOS/libnghttp2.a
286310 cp nghttp2/lib/libnghttp2_tvOS-simulator.a $ARCHIVE /lib/tvOS-simulator/libnghttp2.a
287311 cp nghttp2/lib/libnghttp2_Mac.a $ARCHIVE /lib/MacOS/libnghttp2.a
288312 if [ " $catalyst " == " -m" ]; then
289- cp nghttp2/lib/libnghttp2_Catalyst.a $ARCHIVE /lib/Catalyst/libnghttp2.a
313+ cp nghttp2/lib/libnghttp2_Catalyst.a $ARCHIVE /lib/Catalyst/libnghttp2.a
314+ xcodebuild -create-xcframework \
315+ -library $ARCHIVE /lib/iOS/libnghttp2.a \
316+ -library $ARCHIVE /lib/iOS-simulator/libnghttp2.a \
317+ -library $ARCHIVE /lib/tvOS/libnghttp2.a \
318+ -library $ARCHIVE /lib/tvOS-simulator/libnghttp2.a \
319+ -library $ARCHIVE /lib/Catalyst/libnghttp2.a \
320+ -output $ARCHIVE /xcframework/libnghttp2.xcframework
321+ else
322+ xcodebuild -create-xcframework \
323+ -library $ARCHIVE /lib/iOS/libnghttp2.a \
324+ -library $ARCHIVE /lib/iOS-simulator/libnghttp2.a \
325+ -library $ARCHIVE /lib/tvOS/libnghttp2.a \
326+ -library $ARCHIVE /lib/tvOS-simulator/libnghttp2.a \
327+ -output $ARCHIVE /xcframework/libnghttp2.xcframework
290328 fi
291-
292- xcodebuild -create-xcframework \
293- -library $ARCHIVE /lib/iOS/libnghttp2.a \
294- -library $ARCHIVE /lib/iOS-simulator/libnghttp2.a \
295- -library $ARCHIVE /lib/tvOS/libnghttp2.a \
296- -library $ARCHIVE /lib/tvOS-simulator/libnghttp2.a \
297- -output $ARCHIVE /xcframework/libnghttp2.xcframework
298-
299329fi
330+
300331# archive header files
301332cp openssl/iOS/include/openssl/* " $ARCHIVE /include/openssl"
302333cp curl/include/curl/* " $ARCHIVE /include/curl"
334+
303335# grab root certs
304336curl -sL https://curl.se/ca/cacert.pem > $ARCHIVE /cacert.pem
337+
305338# create README for archive
306339sed -e " s/ZZZLIBCURL/$LIBCURL /g" -e " s/ZZZOPENSSL/$OPENSSL /g" -e " s/ZZZNGHTTP2/$NGHTTP2 /g" archive/release-template.md > $ARCHIVE /README.md
307340echo
308- # update test app
341+
342+ # EXAMPLE App - update test app with latest includes and XCFrameworks
309343echo -e " ${bold} Copying libraries to Test App ...${dim} "
310344echo " See $EXAMPLE "
311345mkdir -p " $EXAMPLE /libs"
312346mkdir -p " $EXAMPLE /include"
313- cp openssl/iOS-fat/lib/libcrypto.a " $EXAMPLE /libs/libcrypto.a"
314- cp openssl/iOS-fat/lib/libssl.a " $EXAMPLE /libs/libssl.a"
347+ # Includes
315348cp openssl/iOS-fat/include/openssl/* " $EXAMPLE /include/openssl/"
316- if [ " $catalyst " == " -m" ]; then
317- cp openssl/openssl-ios-x86_64-maccatalyst.a " $EXAMPLE /libs/openssl-ios-x86_64-maccatalyst.a"
318- cp curl/lib/libcurl_Catalyst.a " $EXAMPLE /libs/libcurl_Catalyst.a"
319- if [ " $buildnghttp2 " != " " ]; then
320- cp nghttp2/lib/libnghttp2_Catalyst.a " $EXAMPLE /libs/libnghttp2_Catalyst.a"
321- fi
322- fi
323349cp curl/include/curl/* " $EXAMPLE /include/curl/"
324- cp curl/lib/libcurl_iOS-fat.a " $EXAMPLE /libs/libcurl.a"
350+ cp $ARCHIVE /cacert.pem " $EXAMPLE /cacert.pem"
351+ # XCFrameworks
352+ cp -R $ARCHIVE /xcframework/libcrypto.xcframework " $EXAMPLE /libs/"
353+ cp -R $ARCHIVE /xcframework/libssl.xcframework " $EXAMPLE /libs/"
354+ cp -R $ARCHIVE /xcframework/libcurl.xcframework " $EXAMPLE /libs/"
325355if [ " $buildnghttp2 " != " " ]; then
326- cp nghttp2/lib/libnghttp2_iOS-fat.a " $EXAMPLE /libs/libnghttp2.a"
356+ # cp nghttp2/lib/libnghttp2_iOS-fat.a "$EXAMPLE/libs/libnghttp2.a"
357+ cp -R $ARCHIVE /xcframework/libnghttp2.xcframework " $EXAMPLE /libs/"
327358fi
328- cp $ARCHIVE /cacert.pem " $EXAMPLE /cacert.pem"
359+ # cp openssl/iOS-fat/lib/libcrypto.a "$EXAMPLE/libs/libcrypto.a"
360+ # cp openssl/iOS-fat/lib/libssl.a "$EXAMPLE/libs/libssl.a"
361+ # cp curl/lib/libcurl_iOS-fat.a "$EXAMPLE/libs/libcurl.a"
362+ # if [ "$catalyst" == "-m" ]; then
363+ # cp openssl/openssl-ios-x86_64-maccatalyst.a "$EXAMPLE/libs/openssl-ios-x86_64-maccatalyst.a"
364+ # cp curl/lib/libcurl_Catalyst.a "$EXAMPLE/libs/libcurl_Catalyst.a"
365+ # if [ "$buildnghttp2" != "" ]; then
366+ # cp nghttp2/lib/libnghttp2_Catalyst.a "$EXAMPLE/libs/libnghttp2_Catalyst.a"
367+ # fi
368+ # fi
369+
329370echo
330371# create universal Mac binaries and run test
331372echo -e " ${bold} Archiving Mac binaries for curl and openssl...${dim} "
0 commit comments