@@ -112,7 +112,7 @@ func TestBindIOS(t *testing.T) {
112
112
}()
113
113
buildN = true
114
114
buildX = true
115
- buildO = "Asset.framework "
115
+ buildO = "Asset.xcframework "
116
116
buildTarget = "ios/arm64"
117
117
118
118
tests := []struct {
@@ -126,7 +126,7 @@ func TestBindIOS(t *testing.T) {
126
126
prefix : "Foo" ,
127
127
},
128
128
{
129
- out : "Abcde.framework " ,
129
+ out : "Abcde.xcframework " ,
130
130
},
131
131
}
132
132
for _ , tc := range tests {
@@ -160,7 +160,7 @@ func TestBindIOS(t *testing.T) {
160
160
BitcodeEnabled bool
161
161
}{
162
162
outputData : output ,
163
- Output : buildO [:len (buildO )- len (".framework " )],
163
+ Output : buildO [:len (buildO )- len (".xcframework " )],
164
164
Prefix : tc .prefix ,
165
165
BitcodeEnabled : bitcodeEnabled ,
166
166
}
@@ -194,26 +194,28 @@ jar c -C $WORK/javac-output .
194
194
var bindIOSTmpl = template .Must (template .New ("output" ).Parse (`GOMOBILE={{.GOPATH}}/pkg/gomobile
195
195
WORK=$WORK
196
196
GOOS=darwin CGO_ENABLED=1 gobind -lang=go,objc -outdir=$WORK -tags=ios{{if .Prefix}} -prefix={{.Prefix}}{{end}} golang.org/x/mobile/asset
197
+ rm -r -f "{{.Output}}.xcframework"
197
198
mkdir -p $WORK/src
198
- PWD=$WORK/src GOOS=darwin GOARCH=arm64 CC=iphoneos-clang CXX=iphoneos-clang++ CGO_CFLAGS=-isysroot=iphoneos -miphoneos-version-min=7.0 {{if .BitcodeEnabled}}-fembed-bitcode {{end}}-arch arm64 CGO_CXXFLAGS=-isysroot=iphoneos -miphoneos-version-min=7.0 {{if .BitcodeEnabled}}-fembed-bitcode {{end}}-arch arm64 CGO_LDFLAGS=-isysroot=iphoneos -miphoneos-version-min=7.0 {{if .BitcodeEnabled}}-fembed-bitcode {{end}}-arch arm64 CGO_ENABLED=1 GOPATH=$WORK:$GOPATH go build -tags ios -x -buildmode=c-archive -o $WORK/{{.Output}}-arm64.a ./gobind
199
- rm -r -f "{{.Output}}.framework"
200
- mkdir -p {{.Output}}.framework/Versions/A/Headers
201
- ln -s A {{.Output}}.framework/Versions/Current
202
- ln -s Versions/Current/Headers {{.Output}}.framework/Headers
203
- ln -s Versions/Current/{{.Output}} {{.Output}}.framework/{{.Output}}
204
- xcrun lipo -create -arch arm64 $WORK/{{.Output}}-arm64.a -o {{.Output}}.framework/Versions/A/{{.Output}}
205
- cp $WORK/src/gobind/{{.Prefix}}Asset.objc.h {{.Output}}.framework/Versions/A/Headers/{{.Prefix}}Asset.objc.h
206
- mkdir -p {{.Output}}.framework/Versions/A/Headers
207
- cp $WORK/src/gobind/Universe.objc.h {{.Output}}.framework/Versions/A/Headers/Universe.objc.h
208
- mkdir -p {{.Output}}.framework/Versions/A/Headers
209
- cp $WORK/src/gobind/ref.h {{.Output}}.framework/Versions/A/Headers/ref.h
210
- mkdir -p {{.Output}}.framework/Versions/A/Headers
211
- mkdir -p {{.Output}}.framework/Versions/A/Headers
212
- mkdir -p {{.Output}}.framework/Versions/A/Resources
213
- ln -s Versions/Current/Resources {{.Output}}.framework/Resources
214
- mkdir -p {{.Output}}.framework/Resources
215
- mkdir -p {{.Output}}.framework/Versions/A/Modules
216
- ln -s Versions/Current/Modules {{.Output}}.framework/Modules
199
+ PWD=$WORK/src GOOS=darwin GOARCH=arm64 CC=iphoneos-clang CXX=iphoneos-clang++ CGO_CFLAGS=-isysroot=iphoneos -miphoneos-version-min=7.0 {{if .BitcodeEnabled}}-fembed-bitcode {{end}}-arch arm64 CGO_CXXFLAGS=-isysroot=iphoneos -miphoneos-version-min=7.0 {{if .BitcodeEnabled}}-fembed-bitcode {{end}}-arch arm64 CGO_LDFLAGS=-isysroot=iphoneos -miphoneos-version-min=7.0 {{if .BitcodeEnabled}}-fembed-bitcode {{end}}-arch arm64 CGO_ENABLED=1 ARCH=arm64 GOPATH=$WORK:$GOPATH go build -tags ios -x -buildmode=c-archive -o $WORK/{{.Output}}-arm64.a ./gobind
200
+ mkdir -p $WORK/arm64/{{.Output}}.framework/Versions/A/Headers
201
+ ln -s A $WORK/arm64/{{.Output}}.framework/Versions/Current
202
+ ln -s Versions/Current/Headers $WORK/arm64/{{.Output}}.framework/Headers
203
+ ln -s Versions/Current/{{.Output}} $WORK/arm64/{{.Output}}.framework/{{.Output}}
204
+ xcrun lipo -create -arch arm64 $WORK/{{.Output}}-arm64.a -o $WORK/arm64/{{.Output}}.framework/Versions/A/{{.Output}}
205
+ cp $WORK/src/gobind/{{.Prefix}}Asset.objc.h $WORK/arm64/{{.Output}}.framework/Versions/A/Headers/{{.Prefix}}Asset.objc.h
206
+ mkdir -p $WORK/arm64/{{.Output}}.framework/Versions/A/Headers
207
+ cp $WORK/src/gobind/Universe.objc.h $WORK/arm64/{{.Output}}.framework/Versions/A/Headers/Universe.objc.h
208
+ mkdir -p $WORK/arm64/{{.Output}}.framework/Versions/A/Headers
209
+ cp $WORK/src/gobind/ref.h $WORK/arm64/{{.Output}}.framework/Versions/A/Headers/ref.h
210
+ mkdir -p $WORK/arm64/{{.Output}}.framework/Versions/A/Headers
211
+ mkdir -p $WORK/arm64/{{.Output}}.framework/Versions/A/Headers
212
+ mkdir -p $WORK/arm64/{{.Output}}.framework/Versions/A/Resources
213
+ ln -s Versions/Current/Resources $WORK/arm64/{{.Output}}.framework/Resources
214
+ mkdir -p $WORK/arm64/{{.Output}}.framework/Resources
215
+ mkdir -p $WORK/arm64/{{.Output}}.framework/Versions/A/Modules
216
+ ln -s Versions/Current/Modules $WORK/arm64/{{.Output}}.framework/Modules
217
+ xcrun lipo $WORK/arm64/{{.Output}}.framework/Versions/A/{{.Output}} -thin arm64 -output $WORK/arm64/{{.Output}}.framework/Versions/A/{{.Output}}
218
+ xcodebuild -create-xcframework -framework $WORK/arm64/{{.Output}}.framework -framework $WORK/amd64/{{.Output}}.framework -framework $WORK/catalyst/{{.Output}}.framework -output {{.Output}}.xcframework
217
219
` ))
218
220
219
221
func TestBindIOSAll (t * testing.T ) {
@@ -230,7 +232,7 @@ func TestBindIOSAll(t *testing.T) {
230
232
}()
231
233
buildN = true
232
234
buildX = true
233
- buildO = "Asset.framework "
235
+ buildO = "Asset.xcframework "
234
236
buildTarget = "ios"
235
237
236
238
buf := new (bytes.Buffer )
@@ -290,7 +292,7 @@ func TestBindWithGoModules(t *testing.T) {
290
292
case "android" :
291
293
out = filepath .Join (dir , "cgopkg.aar" )
292
294
case "ios" :
293
- out = filepath .Join (dir , "Cgopkg.framework " )
295
+ out = filepath .Join (dir , "Cgopkg.xcframework " )
294
296
}
295
297
296
298
tests := []struct {
0 commit comments