├── .gitignore ├── AVFAudio.m ├── AVFoundation.m ├── LICENSE ├── Makefile ├── PatchFallGuys.sh ├── PatchFortnite.sh ├── README.md ├── StoreKit.swift ├── StoreKit.x ├── SwiftUI.swift ├── libcpp.c ├── libswiftCore.c └── libswiftCoreFake.c /.gitignore: -------------------------------------------------------------------------------- 1 | .theos/ 2 | packages/ 3 | .DS_Store 4 | -------------------------------------------------------------------------------- /AVFAudio.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @implementation AVAudioApplication 4 | + (void)requestRecordPermissionWithCompletionHandler:(void (^)(BOOL granted))handler { 5 | [AVAudioSession.sharedInstance requestRecordPermission:handler]; 6 | } 7 | 8 | + (void)requestMicrophoneInjectionPermissionWithCompletionHandler:(void (^)(AVAudioApplicationMicrophoneInjectionPermission permission))response{ 9 | response(AVAudioApplicationMicrophoneInjectionPermissionServiceDisabled); 10 | } 11 | 12 | + (instancetype)sharedInstance { 13 | static AVAudioApplication *sharedInstance = nil; 14 | static dispatch_once_t onceToken; 15 | dispatch_once(&onceToken, ^{ 16 | sharedInstance = [[self alloc] init]; 17 | }); 18 | return sharedInstance; 19 | } 20 | 21 | - (BOOL) setInputMuted:(BOOL)muted error:(NSError **)outError { 22 | if(outError) { 23 | *outError = [NSError errorWithDomain:@"AVAudioApplicationErrorDomain" code:1 userInfo:@{NSLocalizedDescriptionKey:@"Not implemented"}]; 24 | } 25 | return NO; 26 | } 27 | @end 28 | -------------------------------------------------------------------------------- /AVFoundation.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | AVCaptureDeviceType const AVCaptureDeviceTypeExternal = @"AVCaptureDeviceTypeBuiltInWideAngleCamera"; 4 | AVCaptureDeviceType const AVCaptureDeviceTypeMicrophone = @"AVCaptureDeviceTypeBuiltInMicrophone"; 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 TrollStoreTV 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | TARGET := iphone:clang:latest:16.0 2 | ARCHS = arm64 3 | STRIP = 0 4 | include $(THEOS)/makefiles/common.mk 5 | 6 | LIBRARY_NAME = libcpp libswiftCore AVFAudio AVFoundation StoreKit SwiftUI 7 | 8 | libcpp_FILES = libcpp.c 9 | libcpp_LDFLAGS = -current_version 1.0 -compatibility_version 1.0 -Xlinker -reexport_library $(SYSROOT)/usr/lib/libc++.1.tbd 10 | libcpp_INSTALL_PATH = /usr/local/lib 11 | 12 | libswiftCore_FILES = libswiftCore.c 13 | libswiftCore_LDFLAGS = -Xlinker -reexport_library $(SYSROOT)/usr/lib/swift/libswiftCore.tbd 14 | libswiftCore_INSTALL_PATH = /usr/local/lib/swift 15 | 16 | AVFAudio_FILES = AVFAudio.m 17 | AVFAudio_LDFLAGS = -Xlinker -reexport_framework -Xlinker AVFAudio 18 | AVFAudio_INSTALL_PATH = /usr/local/lib 19 | 20 | AVFoundation_FILES = AVFoundation.m 21 | AVFoundation_LDFLAGS = -Xlinker -reexport_framework -Xlinker AVFoundation 22 | AVFoundation_INSTALL_PATH = /usr/local/lib 23 | 24 | StoreKit_FILES = StoreKit.swift StoreKit.x 25 | StoreKit_CFLAGS = -fobjc-arc 26 | StoreKit_SWIFTFLAGS = -enable-library-evolution 27 | StoreKit_INSTALL_PATH = /usr/local/lib 28 | 29 | SwiftUI_FILES = SwiftUI.swift 30 | SwiftUI_LDFLAGS = -Xlinker -reexport_framework -Xlinker SwiftUI 31 | SwiftUI_SWIFTFLAGS = -enable-library-evolution 32 | SwiftUI_INSTALL_PATH = /usr/local/lib 33 | 34 | include $(THEOS_MAKE_PATH)/library.mk 35 | -------------------------------------------------------------------------------- /PatchFallGuys.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [[ -z "$1" ]]; then 5 | echo "Usage: $0 /path/to/FallGuys_decrypted.ipa" 6 | exit 1 7 | fi 8 | 9 | unzip "$1" Payload/FallGuys.app/{Frameworks/UnityFramework.framework/UnityFramework,Info.plist} 10 | cp .theos/obj/{libswiftCore.dylib,StoreKit.dylib} Payload/FallGuys.app/Frameworks/ 11 | /usr/libexec/PlistBuddy -c "delete :UISupportedDevices" Payload/FallGuys.app/Info.plist 12 | 13 | install_name_tool \ 14 | -change /usr/lib/swift/libswiftCore.dylib @executable_path/Frameworks/libswiftCore.dylib \ 15 | -change /System/Library/Frameworks/MarketplaceKit.framework/MarketplaceKit @executable_path/Frameworks/StoreKit.dylib \ 16 | Payload/FallGuys.app/Frameworks/UnityFramework.framework/UnityFramework 17 | 18 | zip -r "$1" Payload 19 | rm -r Payload 20 | -------------------------------------------------------------------------------- /PatchFortnite.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [[ -z "$1" ]]; then 5 | echo "Usage: $0 /path/to/Fortnite_decrypted.ipa" 6 | exit 1 7 | fi 8 | 9 | unzip "$1" Payload/FortniteClient-IOS-Shipping.app/FortniteClient-IOS-Shipping 10 | mkdir -p Payload/FortniteClient-IOS-Shipping.app/Frameworks 11 | cp .theos/obj/*.dylib Payload/FortniteClient-IOS-Shipping.app/Frameworks/ 12 | 13 | # Fix a strange issue where map_images_nolock tries to write to __DATA_CONST 14 | gsed -i 's/__objc_protorefs/__xbjc_protorefs/g' Payload/FortniteClient-IOS-Shipping.app/FortniteClient-IOS-Shipping 15 | 16 | install_name_tool \ 17 | -change /usr/lib/libc++.1.dylib @executable_path/Frameworks/libcpp.dylib \ 18 | -change /usr/lib/swift/libswiftCore.dylib @executable_path/Frameworks/libswiftCore.dylib \ 19 | -change /System/Library/Frameworks/MarketplaceKit.framework/MarketplaceKit @executable_path/Frameworks/StoreKit.dylib \ 20 | -change /System/Library/Frameworks/SwiftUI.framework/SwiftUI @executable_path/Frameworks/SwiftUI.dylib \ 21 | -change /System/Library/Frameworks/AVFoundation.framework/AVFoundation @executable_path/Frameworks/AVFoundation.dylib \ 22 | -change /System/Library/Frameworks/AVFAudio.framework/AVFAudio @executable_path/Frameworks/AVFAudio.dylib \ 23 | Payload/FortniteClient-IOS-Shipping.app/FortniteClient-IOS-Shipping 24 | 25 | zip -r "$1" Payload 26 | rm -r Payload 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # StoreKit 2 | Solve StoreKit API compatibility issues for FCC on iOS17.0. This fork adds MarketplaceKit stub and Fall Guys patcher to work down to iOS 16. 3 | 4 | Initial MarketplaceKit stub by @verygenericname, replaced with a minimal implementation. 5 | 6 | **For personal testing only.** 7 | 8 | ## Build 9 | Build with [theos](https://github.com/theos/theos). 10 | 11 | ## Use 12 | ``` 13 | bash PatchFallGuys.sh /path/to/FallGuys_decrypted.ipa 14 | ``` 15 | -------------------------------------------------------------------------------- /StoreKit.swift: -------------------------------------------------------------------------------- 1 | 2 | @_silgen_name("$s8StoreKit03AppA0O4syncyyYaKFZ") 3 | public func fun001() -> Int { 4 | return 0 5 | } 6 | 7 | @_silgen_name("$s8StoreKit03AppA0O4syncyyYaKFZTu") 8 | public func fun002() -> Int { 9 | return 0 10 | } 11 | 12 | @_silgen_name("$s8StoreKit10StorefrontV11countryCodeSSvg") 13 | public func fun003() -> Int { 14 | return 0 15 | } 16 | 17 | @_silgen_name("$s8StoreKit10StorefrontV2idSSvg") 18 | public func fun004() -> Int { 19 | return 0 20 | } 21 | 22 | @_silgen_name("$s8StoreKit10StorefrontV7currentACSgvgZ") 23 | public func fun005() -> Int { 24 | return 0 25 | } 26 | 27 | @_silgen_name("$s8StoreKit10StorefrontV7currentACSgvgZTu") 28 | public func fun006() -> Int { 29 | return 0 30 | } 31 | 32 | @_silgen_name("$s8StoreKit10StorefrontVMa") 33 | public func fun007() -> Int { 34 | return 0 35 | } 36 | 37 | @_silgen_name("$s8StoreKit10StorefrontVMn") 38 | public func fun008() -> Int { 39 | return 0 40 | } 41 | 42 | @_silgen_name("$s8StoreKit11TransactionV10signedDate10Foundation0E0Vvg") 43 | public func fun009() -> Int { 44 | return 0 45 | } 46 | 47 | @_silgen_name("$s8StoreKit11TransactionV11productTypeAA7ProductV0fE0Vvg") 48 | public func fun010() -> Int { 49 | return 0 50 | } 51 | 52 | @_silgen_name("$s8StoreKit11TransactionV12TransactionsV13AsyncIteratorV4nextAA18VerificationResultOyACGSgyYaF") 53 | public func fun011() -> Int { 54 | return 0 55 | } 56 | 57 | @_silgen_name("$s8StoreKit11TransactionV12TransactionsV13AsyncIteratorV4nextAA18VerificationResultOyACGSgyYaFTu") 58 | public func fun012() -> Int { 59 | return 0 60 | } 61 | 62 | @_silgen_name("$s8StoreKit11TransactionV12TransactionsV13AsyncIteratorVMa") 63 | public func fun013() -> Int { 64 | return 0 65 | } 66 | 67 | @_silgen_name("$s8StoreKit11TransactionV12TransactionsV17makeAsyncIteratorAE0fG0VyF") 68 | public func fun014() -> Int { 69 | return 0 70 | } 71 | 72 | @_silgen_name("$s8StoreKit11TransactionV12TransactionsVMa") 73 | public func fun015() -> Int { 74 | return 0 75 | } 76 | 77 | @_silgen_name("$s8StoreKit11TransactionV12purchaseDate10Foundation0E0Vvg") 78 | public func fun016() -> Int { 79 | return 0 80 | } 81 | 82 | @_silgen_name("$s8StoreKit11TransactionV13OwnershipTypeV9purchasedAEvgZ") 83 | public func fun017() -> Int { 84 | return 0 85 | } 86 | 87 | @_silgen_name("$s8StoreKit11TransactionV13OwnershipTypeVMa") 88 | public func fun018() -> Int { 89 | return 0 90 | } 91 | 92 | @_silgen_name("$s8StoreKit11TransactionV13OwnershipTypeVSYAAMc") 93 | public func fun019() -> Int { 94 | return 0 95 | } 96 | 97 | @_silgen_name("$s8StoreKit11TransactionV13ownershipTypeAC09OwnershipE0Vvg") 98 | public func fun020() -> Int { 99 | return 0 100 | } 101 | 102 | @_silgen_name("$s8StoreKit11TransactionV14expirationDate10Foundation0E0VSgvg") 103 | public func fun021() -> Int { 104 | return 0 105 | } 106 | 107 | @_silgen_name("$s8StoreKit11TransactionV14revocationDate10Foundation0E0VSgvg") 108 | public func fun022() -> Int { 109 | return 0 110 | } 111 | 112 | @_silgen_name("$s8StoreKit11TransactionV19currentEntitlementsAC12TransactionsVvgZ") 113 | public func fun023() -> Int { 114 | return 0 115 | } 116 | 117 | @_silgen_name("$s8StoreKit11TransactionV19subscriptionGroupIDSSSgvg") 118 | public func fun024() -> Int { 119 | return 0 120 | } 121 | 122 | @_silgen_name("$s8StoreKit11TransactionV20originalPurchaseDate10Foundation0F0Vvg") 123 | public func fun025() -> Int { 124 | return 0 125 | } 126 | 127 | @_silgen_name("$s8StoreKit11TransactionV2ids6UInt64Vvg") 128 | public func fun026() -> Int { 129 | return 0 130 | } 131 | 132 | @_silgen_name("$s8StoreKit11TransactionV3allAC12TransactionsVvgZ") 133 | public func fun027() -> Int { 134 | return 0 135 | } 136 | 137 | @_silgen_name("$s8StoreKit11TransactionV5OfferV4typeAC0D4TypeVvg") 138 | public func fun028() -> Int { 139 | return 0 140 | } 141 | 142 | @_silgen_name("$s8StoreKit11TransactionV5OfferVMa") 143 | public func fun029() -> Int { 144 | return 0 145 | } 146 | 147 | @_silgen_name("$s8StoreKit11TransactionV5OfferVMn") 148 | public func fun030() -> Int { 149 | return 0 150 | } 151 | 152 | @_silgen_name("$s8StoreKit11TransactionV5offerAC5OfferVSgvg") 153 | public func fun031() -> Int { 154 | return 0 155 | } 156 | 157 | @_silgen_name("$s8StoreKit11TransactionV6finishyyYaF") 158 | public func fun032() -> Int { 159 | return 0 160 | } 161 | 162 | @_silgen_name("$s8StoreKit11TransactionV6finishyyYaFTu") 163 | public func fun033() -> Int { 164 | return 0 165 | } 166 | 167 | @_silgen_name("$s8StoreKit11TransactionV7updatesAC12TransactionsVvgZ") 168 | public func fun034() -> Int { 169 | return 0 170 | } 171 | 172 | @_silgen_name("$s8StoreKit11TransactionV9OfferTypeV11promotionalAEvgZ") 173 | public func fun035() -> Int { 174 | return 0 175 | } 176 | 177 | @_silgen_name("$s8StoreKit11TransactionV9OfferTypeV12introductoryAEvgZ") 178 | public func fun036() -> Int { 179 | return 0 180 | } 181 | 182 | @_silgen_name("$s8StoreKit11TransactionV9OfferTypeV4codeAEvgZ") 183 | public func fun037() -> Int { 184 | return 0 185 | } 186 | 187 | @_silgen_name("$s8StoreKit11TransactionV9OfferTypeVMa") 188 | public func fun038() -> Int { 189 | return 0 190 | } 191 | 192 | @_silgen_name("$s8StoreKit11TransactionV9OfferTypeVMn") 193 | public func fun039() -> Int { 194 | return 0 195 | } 196 | 197 | @_silgen_name("$s8StoreKit11TransactionV9OfferTypeVSQAAMc") 198 | public func fun040() -> Int { 199 | return 0 200 | } 201 | 202 | @_silgen_name("$s8StoreKit11TransactionV9OfferTypeVSYAAMc") 203 | public func fun041() -> Int { 204 | return 0 205 | } 206 | 207 | @_silgen_name("$s8StoreKit11TransactionV9productIDSSvg") 208 | public func fun042() -> Int { 209 | return 0 210 | } 211 | 212 | @_silgen_name("$s8StoreKit11TransactionVMa") 213 | public func fun043() -> Int { 214 | return 0 215 | } 216 | 217 | @_silgen_name("$s8StoreKit11TransactionVMn") 218 | public func fun044() -> Int { 219 | return 0 220 | } 221 | 222 | @_silgen_name("$s8StoreKit18VerificationResultO0C5ErrorOMn") 223 | public func fun045() -> Int { 224 | return 0 225 | } 226 | 227 | @_silgen_name("$s8StoreKit18VerificationResultOMn") 228 | public func fun046() -> Int { 229 | return 0 230 | } 231 | 232 | @_silgen_name("$s8StoreKit7ProductV0C4TypeV13autoRenewableAEvgZ") 233 | public func fun047() -> Int { 234 | return 0 235 | } 236 | 237 | @_silgen_name("$s8StoreKit7ProductV0C4TypeVMa") 238 | public func fun048() -> Int { 239 | return 0 240 | } 241 | 242 | @_silgen_name("$s8StoreKit7ProductV0C4TypeVSYAAMc") 243 | public func fun049() -> Int { 244 | return 0 245 | } 246 | 247 | @_silgen_name("$s8StoreKit7ProductV11descriptionSSvg") 248 | public func fun050() -> Int { 249 | return 0 250 | } 251 | 252 | @_silgen_name("$s8StoreKit7ProductV11displayNameSSvg") 253 | public func fun051() -> Int { 254 | return 0 255 | } 256 | 257 | @_silgen_name("$s8StoreKit7ProductV12displayPriceSSvg") 258 | public func fun052() -> Int { 259 | return 0 260 | } 261 | 262 | @_silgen_name("$s8StoreKit7ProductV12subscriptionAC16SubscriptionInfoVSgvg") 263 | public func fun053() -> Int { 264 | return 0 265 | } 266 | 267 | @_silgen_name("$s8StoreKit7ProductV14PurchaseResultO13userCancelledyA2EmFWC") 268 | public func fun054() -> Int { 269 | return 0 270 | } 271 | 272 | @_silgen_name("$s8StoreKit7ProductV14PurchaseResultO7pendingyA2EmFWC") 273 | public func fun055() -> Int { 274 | return 0 275 | } 276 | 277 | @_silgen_name("$s8StoreKit7ProductV14PurchaseResultO7successyAeA012VerificationE0OyAA11TransactionVGcAEmFWC") 278 | public func fun056() -> Int { 279 | return 0 280 | } 281 | 282 | @_silgen_name("$s8StoreKit7ProductV14PurchaseResultOMa") 283 | public func fun057() -> Int { 284 | return 0 285 | } 286 | 287 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0V06recentD9StartDate10Foundation0I0Vvg") 288 | public func fun058() -> Int { 289 | return 0 290 | } 291 | 292 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0V13willAutoRenewSbvg") 293 | public func fun059() -> Int { 294 | return 0 295 | } 296 | 297 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0V16ExpirationReasonV12billingErrorAIvgZ") 298 | public func fun060() -> Int { 299 | return 0 300 | } 301 | 302 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0V16ExpirationReasonV17autoRenewDisabledAIvgZ") 303 | public func fun061() -> Int { 304 | return 0 305 | } 306 | 307 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0V16ExpirationReasonV18productUnavailableAIvgZ") 308 | public func fun062() -> Int { 309 | return 0 310 | } 311 | 312 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0V16ExpirationReasonV28didNotConsentToPriceIncreaseAIvgZ") 313 | public func fun063() -> Int { 314 | return 0 315 | } 316 | 317 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0V16ExpirationReasonVMa") 318 | public func fun064() -> Int { 319 | return 0 320 | } 321 | 322 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0V16ExpirationReasonVMn") 323 | public func fun065() -> Int { 324 | return 0 325 | } 326 | 327 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0V16ExpirationReasonVSQAAMc") 328 | public func fun066() -> Int { 329 | return 0 330 | } 331 | 332 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0V16expirationReasonAG010ExpirationH0VSgvg") 333 | public func fun067() -> Int { 334 | return 0 335 | } 336 | 337 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0V16isInBillingRetrySbvg") 338 | public func fun068() -> Int { 339 | return 0 340 | } 341 | 342 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0V19PriceIncreaseStatusO2eeoiySbAI_AItFZ") 343 | public func fun069() -> Int { 344 | return 0 345 | } 346 | 347 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0V19priceIncreaseStatusAG05PricehI0Ovg") 348 | public func fun070() -> Int { 349 | return 0 350 | } 351 | 352 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0V25gracePeriodExpirationDate10Foundation0J0VSgvg") 353 | public func fun071() -> Int { 354 | return 0 355 | } 356 | 357 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0VMa") 358 | public func fun072() -> Int { 359 | return 0 360 | } 361 | 362 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV07RenewalE0VMn") 363 | public func fun073() -> Int { 364 | return 0 365 | } 366 | 367 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV12RenewalStateV10subscribedAGvgZ") 368 | public func fun074() -> Int { 369 | return 0 370 | } 371 | 372 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV12RenewalStateV13inGracePeriodAGvgZ") 373 | public func fun075() -> Int { 374 | return 0 375 | } 376 | 377 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV12RenewalStateV20inBillingRetryPeriodAGvgZ") 378 | public func fun076() -> Int { 379 | return 0 380 | } 381 | 382 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV12RenewalStateV7expiredAGvgZ") 383 | public func fun077() -> Int { 384 | return 0 385 | } 386 | 387 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV12RenewalStateV7revokedAGvgZ") 388 | public func fun078() -> Int { 389 | return 0 390 | } 391 | 392 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV12RenewalStateVMa") 393 | public func fun079() -> Int { 394 | return 0 395 | } 396 | 397 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV12RenewalStateVSQAAMc") 398 | public func fun080() -> Int { 399 | return 0 400 | } 401 | 402 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV12RenewalStateVSYAAMc") 403 | public func fun081() -> Int { 404 | return 0 405 | } 406 | 407 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV19subscriptionGroupIDSSvg") 408 | public func fun082() -> Int { 409 | return 0 410 | } 411 | 412 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV23isEligibleForIntroOffer3forSbSS_tYaFZ") 413 | public func fun083() -> Int { 414 | return 0 415 | } 416 | 417 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV23isEligibleForIntroOffer3forSbSS_tYaFZTu") 418 | public func fun084() -> Int { 419 | return 0 420 | } 421 | 422 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV6StatusV07renewalE0AA18VerificationResultOyAE07RenewalE0VGvg") 423 | public func fun085() -> Int { 424 | return 0 425 | } 426 | 427 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV6StatusV11transactionAA18VerificationResultOyAA11TransactionVGvg") 428 | public func fun086() -> Int { 429 | return 0 430 | } 431 | 432 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV6StatusV5stateAE12RenewalStateVvg") 433 | public func fun087() -> Int { 434 | return 0 435 | } 436 | 437 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV6StatusVMa") 438 | public func fun088() -> Int { 439 | return 0 440 | } 441 | 442 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV6StatusVMn") 443 | public func fun089() -> Int { 444 | return 0 445 | } 446 | 447 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV6status3forSayAE6StatusVGSS_tYaKFZ") 448 | public func fun090() -> Int { 449 | return 0 450 | } 451 | 452 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoV6status3forSayAE6StatusVGSS_tYaKFZTu") 453 | public func fun091() -> Int { 454 | return 0 455 | } 456 | 457 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoVMa") 458 | public func fun092() -> Int { 459 | return 0 460 | } 461 | 462 | @_silgen_name("$s8StoreKit7ProductV16SubscriptionInfoVMn") 463 | public func fun093() -> Int { 464 | return 0 465 | } 466 | 467 | @_silgen_name("$s8StoreKit7ProductV2idSSvg") 468 | public func fun094() -> Int { 469 | return 0 470 | } 471 | 472 | @_silgen_name("$s8StoreKit7ProductV4typeAC0C4TypeVvg") 473 | public func fun095() -> Int { 474 | return 0 475 | } 476 | 477 | @_silgen_name("$s8StoreKit7ProductV8products3forSayACGx_tYaKSlRzSS7ElementRtzlFZ") 478 | public func fun096() -> Int { 479 | return 0 480 | } 481 | 482 | @_silgen_name("$s8StoreKit7ProductV8products3forSayACGx_tYaKSlRzSS7ElementRtzlFZTu") 483 | public func fun097() -> Int { 484 | return 0 485 | } 486 | 487 | @_silgen_name("$s8StoreKit7ProductV8purchase7optionsAC14PurchaseResultOShyAC0F6OptionVG_tYaKF") 488 | public func fun098() -> Int { 489 | return 0 490 | } 491 | 492 | @_silgen_name("$s8StoreKit7ProductV8purchase7optionsAC14PurchaseResultOShyAC0F6OptionVG_tYaKFTu") 493 | public func fun099() -> Int { 494 | return 0 495 | } 496 | 497 | @_silgen_name("$s8StoreKit7ProductVMa") 498 | public func fun100() -> Int { 499 | return 0 500 | } 501 | 502 | @_silgen_name("$s8StoreKit7ProductVMn") 503 | public func fun101() -> Int { 504 | return 0 505 | } 506 | 507 | public enum AppDistributor { 508 | public static var current: AppDistributor { 509 | get async throws { 510 | marketplace("io.altstore.AltStore") 511 | } 512 | } 513 | case appStore 514 | case testFlight 515 | case marketplace(String) 516 | case other 517 | } 518 | -------------------------------------------------------------------------------- /StoreKit.x: -------------------------------------------------------------------------------- 1 | @import Foundation; 2 | 3 | @interface SKStoreReviewController : NSObject 4 | @end 5 | 6 | @implementation SKStoreReviewController 7 | @end -------------------------------------------------------------------------------- /SwiftUI.swift: -------------------------------------------------------------------------------- 1 | 2 | @_silgen_name("$s7SwiftUI19UIViewRepresentableP14_layoutOptionsyAA013_PlatformViewd6LayoutF0V0C4TypeQzFZTq") 3 | public func funSwiftUI001() -> Int { 4 | return 0 5 | } 6 | 7 | @_silgen_name("$s7SwiftUI19UIViewRepresentablePAAE14_layoutOptionsyAA013_PlatformViewd6LayoutF0V0C4TypeQzFZ") 8 | public func funSwiftUI002() -> Int { 9 | return 0 10 | } 11 | -------------------------------------------------------------------------------- /libcpp.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #define OS_REASON_LIBSYSTEM 18 6 | void abort_with_reason(uint32_t reason_namespace, uint64_t reason_code, const char *reason_string, uint64_t reason_flags) 7 | 8 | __attribute__((noreturn, cold)); 9 | int __ZNSt3__122__libcpp_verbose_abortEPKcz(const char *format, ...) { 10 | char message[1024]; 11 | va_list list; 12 | va_start(list, format); 13 | snprintf(message, sizeof(message), format, list); 14 | va_end(list); 15 | // libsystem, code fault and generate crash report 16 | abort_with_reason(18, 2, message, 2); 17 | } 18 | -------------------------------------------------------------------------------- /libswiftCore.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | uint64_t swift_getOpaqueTypeConformance(const void * const *arguments, uint64_t descriptor, unsigned index); 5 | uint64_t swift_getTypeByMangledNameInContext(const char *typeNameStart, uint64_t typeNameLength, const void *context, const void * const *genericArgs); 6 | uint64_t swift_getTypeByMangledNameInContextInMetadataState(uint64_t metadataState, const char *typeNameStart, uint64_t typeNameLength, const void *context, const void * const *genericArgs); 7 | 8 | void $sSa12_endMutationyyFyXl_Ts5() { 9 | // real implementation is also empty 10 | } 11 | 12 | uint64_t swift_getOpaqueTypeConformance2(const void * const *arguments, uint64_t descriptor, unsigned index) { 13 | return swift_getOpaqueTypeConformance(arguments, descriptor, index); 14 | } 15 | 16 | uint64_t swift_getTypeByMangledNameInContext2(const char *typeNameStart, uint64_t typeNameLength, const void *context, const void * const *genericArgs) { 17 | return swift_getTypeByMangledNameInContext(typeNameStart, typeNameLength, context, genericArgs); 18 | } 19 | 20 | uint64_t swift_getTypeByMangledNameInContextInMetadataState2(uint64_t metadataState, const char *typeNameStart, uint64_t typeNameLength, const void *context, const void * const *genericArgs) { 21 | return swift_getTypeByMangledNameInContextInMetadataState(metadataState, typeNameStart, typeNameLength, context, genericArgs); 22 | } 23 | -------------------------------------------------------------------------------- /libswiftCoreFake.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // Fake lib used for reexport_library 4 | 5 | 6 | uint64_t swift_getOpaqueTypeConformance(const void * const *arguments, uint64_t descriptor, unsigned index) { 7 | return 0; 8 | } 9 | 10 | uint64_t swift_getTypeByMangledNameInContext() { 11 | return 0; 12 | } 13 | uint64_t swift_getTypeByMangledNameInContextInMetadataState() { 14 | return 0; 15 | } 16 | --------------------------------------------------------------------------------