@marat.giliazov Did you notice any issue with your library since the build server got updated with iOS 14.5?
We can probably assist in your investigations soon, but we are both tied up with other tasks at this moment.
Any possibility this could be looked up this week? Let me know so I can estimate with my team. (Of course I understand you have higher priorities).
Yes, tomorrow or Wednesday. But with no guarantee of a solution!
Great!!
No such thing as guaranteed solution in developer’s world
Hi @Lex !
I can offer you a workaround (as I’ve done in my project). You can make prebuilt dynamic framework in XCode with all necessary ad network inside. If you target prebuilt framework to iOS <14.5 you don’t have dependency to AVFAudio and you can run game on older devices.
Drop these dynamic framework inside ironsource extension to lib/ios and to res/ios/Frameworks.
Add in ext.manifest linkFlags: [’-Wl,-rpath,@executable_path/Frameworks’].
Thanks for the help!
Can you a bit more specific on how you make this prebuilt dynamic framework with Xcode? I’m not too familiar with Xcode. I added IronSource to the project and build correctly, but I’m not sure where to find the good files to put into lib/ios
Also, what’s the value of the “@executable_path” parameter that you put in the manifest?
edit: it does confirm the diagnostic made by @Mathias_Westerdahl stating the issue arises from the iOS 14.5 update on server side
I’ve looked into the issue but not found a solution yet. I started by updating to the latest version, and it worked well on Android, but same behaviour on iOS - an instant shutdown off the app.
Next step is to try and attach to a debugger and see what happens.
@executable_path points to location where application is installed. Framewroks folder is packed inside application bundle and contains our dynamic framework. During startup application wants to load dynamic framework and need to know where is it located. So -rpath linker option add necessary path.
In XCode I created new project, choose ‘Framework’. After add all libraries I need inside (Ironsource and other ads network sdks), turn off ‘Bitcode option’ in project settings (because I got error about bitcode support from iTunes when first time upload application). Also change build configuration for Run stage (‘Edit Scheme’), hit Product->Build. When build is done find folder Products in Project tree, right click on result framework → Show in Finder. Copy it and drop inside lib/ios.
@ekharkunov thanks for your answer. However when I try to build the framework project in Xcode I get this error
Did you encounter it?
Sorry to be so asking, but I struggle a lot with Xcode.
Here is my pod file:
# Uncomment the next line to define a global platform for your project
platform :ios, '14.3'
target 'irontest' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
pod 'IronSourceSDK','7.1.9.0'
# Pods for irontest
end
When I try to build the project I get the following error:
ld: warning: directory not found for option '-F/Users/alex/Desktop/irontest/IronSource'
ld: warning: directory not found for option '-F/Users/alex/Desktop/irontest/irontest/IronSource'
ld: framework not found Pods_irontest
clang: error: linker command failed with exit code 1 (use -v to see invocation)
What am I doing wrong? Btw if someone is willing to spend some freelance time and make this ironSource SDK work on iOS, please PM me.
If I recall correctly, after using the cocoapods to sync the dependencies, one sould open the new generated Xcode project, not the original one. I often make that mistake, and I end up with an error (not sure if it’s the same error though)
I’m using the generated .xcodeproj file but I still get this error.
Did you manage to make any progress on your investigation? Do you see any resolution possible server-side?
The solution is for us to set up a separate macOS environment for building iOS and OSX builds. It is quite expensive but it’s the only reasonable solution for us at this point. We will start this process next week.
Note: We’ve had this kind of setup in the past so we just need to reactivate it and confirm that things are still working like last time.
OK, noted, thanks for the feedback!
Thanks to @ekharkunov 's help, I managed to make it work on a standalone project (Yay! I thought I was done with it).
And yet, when I integrate it with my real project. I crashes at the beginning, this time it’s a different kind of crash
Incident Identifier: 06FF7D00-08C8-4D80-B574-C35DE50782DB
CrashReporter Key: b9d76e9430febb35d9b285f3cb47e7b9b32c8e0a
Hardware Model: iPhone8,1
Process: MobblesCards [18462]
Path: /private/var/containers/Bundle/Application/7FEE809B-E6DA-4E59-B401-10EE02618201/MobblesCards.app/MobblesCards
Identifier: com.test.cards
Version: 0.10.40 (0.10.40)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.test.card [491]
Date/Time: 2021-09-02 17:25:54.4513 +0200
Launch Time: 2021-09-02 17:25:54.4111 +0200
OS Version: iPhone OS 14.6 (18F72)
Release Type: User
Baseband Version: 8.71.01
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 0
Application Specific Information:
abort() called
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x00000001d40597b0 __pthread_kill + 8
1 libsystem_pthread.dylib 0x00000001f07d49c0 pthread_kill + 212
2 libsystem_c.dylib 0x00000001b0ed3a44 abort + 100
3 libswiftCore.dylib 0x0000000103d08028 0x103a84000 + 2637864
4 libswiftCore.dylib 0x0000000103d001c8 0x103a84000 + 2605512
5 libdyld.dylib 0x00000001a7f1509c invocation function for block in dyld3::AllImages::runAllInitializersInImage+ 65692 (dyld3::closure::Image const*, dyld3::MachOLoaded const*) + 136
6 libdyld.dylib 0x00000001a7f072d8 dyld3::closure::Image::forEachInitializer(void const*, void + 8920 (void const*) block_pointer) const + 96
7 libdyld.dylib 0x00000001a7f14ef8 invocation function for block in dyld3::AllImages::runInitialzersBottomUp+ 65272 (dyld3::closure::Image const*) + 296
8 libdyld.dylib 0x00000001a7f07b94 dyld3::closure::Image::forEachImageToInitBefore(void + 11156 (unsigned int, bool&) block_pointer) const + 92
9 libdyld.dylib 0x00000001a7f14980 dyld3::AllImages::runStartupInitialzers+ 63872 () + 248
10 libdyld.dylib 0x00000001a7f31d18 dyld3::entry_runInitialzersBottomUp+ 183576 (mach_header const*) + 28
11 dyld 0x0000000102e896ec dyld::launchWithClosure+ 38636 (dyld3::closure::LaunchClosure const*, DyldSharedCache const*, dyld3::MachOLoaded const*, unsigned long, int, char const**, char const**, char const**, Diagnostics&, unsigned long*, unsigned long*, bool*, bool*) + 1436
12 dyld 0x0000000102e87488 dyld::_main+ 29832 (macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) + 3624
13 dyld 0x0000000102e81208 dyldbootstrap::start+ 4616 (dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) + 396
14 dyld 0x0000000102e81038 _dyld_start + 56
Thread 1:
0 libsystem_pthread.dylib 0x00000001f07d8864 start_wqthread + 0
Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x0000000000000000 x1: 0x0000000000000000 x2: 0x0000000000000000 x3: 0x0000000000000000
x4: 0x0000000102d6b080 x5: 0x0000000000000020 x6: 0x0049000004210143 x7: 0x000000000000003e
x8: 0x0000000102f27880 x9: 0x9281d3c64f137272 x10: 0x0000000000000002 x11: 0x0000000000000001
x12: 0x0000000000000000 x13: 0x7270206e6f697372 x14: 0x31206f7420726f69 x15: 0x000a2e302e322e32
x16: 0x0000000000000148 x17: 0x0000000000000001 x18: 0x0000000000000000 x19: 0x0000000000000006
x20: 0x0000000000000103 x21: 0x0000000102f27960 x22: 0x0000000000000005 x23: 0x0000000103a84000
x24: 0x0000000102b067e8 x25: 0x00000001a7f149e8 x26: 0x0000000201308f60 x27: 0x00000001a7f14dd0
x28: 0x0000000201308ff0 fp: 0x000000016dde44e0 lr: 0x00000001f07d49c0
sp: 0x000000016dde44c0 pc: 0x00000001d40597b0 cpsr: 0x40000000
esr: 0x56000080 Address size fault
Binary Images:
0x102018000 - 0x102507fff MobblesCards arm64 <6e78679604d1380dbae4902c63adb8ba> /var/containers/Bundle/Application/7FEE809B-E6DA-4E59-B401-10EE02618201/MobblesCards.app/MobblesCards
0x102b34000 - 0x102b3bfff libswiftObjectiveC.dylib arm64 <1180ac100a9239db84972b6d4217b8eb> /var/containers/Bundle/Application/7FEE809B-E6DA-4E59-B401-10EE02618201/MobblesCards.app/Frameworks/libswiftObjectiveC.dylib
0x102b5c000 - 0x102b6bfff libswiftCoreGraphics.dylib arm64 <dc548ef900f93a15b5db05e39d9b5c5b> /var/containers/Bundle/Application/7FEE809B-E6DA-4E59-B401-10EE02618201/MobblesCards.app/Frameworks/libswiftCoreGraphics.dylib
0x102bd8000 - 0x102bdffff libswiftCoreFoundation.dylib arm64 <25114ae14ae93dbcb3de7f9f9a5b45d2> /var/containers/Bundle/Application/7FEE809B-E6DA-4E59-B401-10EE02618201/MobblesCards.app/Frameworks/libswiftCoreFoundation.dylib
0x102bf0000 - 0x102bfbfff libswiftDarwin.dylib arm64 <999c29678a063cd582d7d156e9440a0c> /var/containers/Bundle/Application/7FEE809B-E6DA-4E59-B401-10EE02618201/MobblesCards.app/Frameworks/libswiftDarwin.dylib
0x102c34000 - 0x102c4ffff libswiftDispatch.dylib arm64 <9fcba8edd8fd3c1697405e2a31f3e959> /var/containers/Bundle/Application/7FEE809B-E6DA-4E59-B401-10EE02618201/MobblesCards.app/Frameworks/libswiftDispatch.dylib
0x102db8000 - 0x102dc3fff libobjc-trampolines.dylib arm64 <65269ec65e0437b7ab08b56b817dee19> /usr/lib/libobjc-trampolines.dylib
0x102e80000 - 0x102eebfff dyld arm64 <c5d2aaed4aeb3e18a5d2c8b681a2d6eb> /usr/lib/dyld
0x102f6c000 - 0x103557fff IronSource arm64 <9b56bc18cad23571b955e80ad9d8ee2e> /var/containers/Bundle/Application/7FEE809B-E6DA-4E59-B401-10EE02618201/MobblesCards.app/Frameworks/IronSource.framework/IronSource
0x103a84000 - 0x103da3fff libswiftCore.dylib arm64 <ad0cad3b1b51332786448be1ff1f0ae9> /var/containers/Bundle/Application/7FEE809B-E6DA-4E59-B401-10EE02618201/MobblesCards.app/Frameworks/libswiftCore.dylib
0x1050cc000 - 0x105247fff libswiftFoundation.dylib arm64 <9702769f1f063001ab755ad38e1f7d66> /var/containers/Bundle/Application/7FEE809B-E6DA-4E59-B401-10EE02618201/MobblesCards.app/Frameworks/libswiftFoundation.dylib
0x1a7e86000 - 0x1a7f04fff libdispatch.dylib arm64 <3bbe17ac597b3b7991ac21a5523e7bd7> /usr/lib/system/libdispatch.dylib
0x1a7f05000 - 0x1a7f3bfff libdyld.dylib arm64 <5fffb96439d63ccfbd34c6ca4a148d1a> /usr/lib/system/libdyld.dylib
0x1a7f3c000 - 0x1a8193fff libicucore.A.dylib arm64 <bbfcb70e67f33efd9a4de17286e33628> /usr/lib/libicucore.A.dylib
0x1a8194000 - 0x1a853ffff CoreFoundation arm64 <4d6dd6dd22e438589a0c3cb77c2f13d6> /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
...
EOF
The settings are the same. Only the dependencies are different:
dependencies#0 = https://github.com/rgrams/rendercam/archive/1.0.3.zip
dependencies#1 = https://github.com/britzl/defold-input/archive/2.10.0.zip
dependencies#2 = https://github.com/subsoap/defsave/archive/v1.2.1.zip
dependencies#3 = https://github.com/selimanac/defold-random/archive/master.zip
dependencies#4 = https://github.com/AGulev/set_screen_position/archive/master.zip
dependencies#5 = https://github.com/defold/extension-iap/archive/refs/tags/3.1.1.zip
dependencies#6 = https://github.com/GameAnalytics/GA-SDK-DEFOLD/archive/3.3.10.zip
dependencies#7 = https://github.com/GameAnalytics/defold-openssl/archive/master.zip
dependencies#8 = https://github.com/heroiclabs/nakama-defold/archive/2.0.0.zip
dependencies#9 = https://github.com/defold/extension-websocket/archive/refs/tags/3.0.0.zip
dependencies#10 = https://github.com/defold/extension-facebook/archive/refs/tags/6.2.1.zip
dependencies#11 = https://github.com/britzl/gooey/archive/9.1.1.zip
dependencies#12 = https://github.com/defold/extension-push/archive/3.0.2.zip
dependencies#13 = https://github.com/defold/extension-review/archive/3.0.1.zip
dependencies#14 = https://github.com/defold/extension-gpgs/archive/refs/tags/2.3.0.zip
dependencies#15 = https://github.com/subsoap/defos/archive/v2.5.0.zip
dependencies#16 = https://github.com/defold/extension-iac/archive/master.zip
dependencies#17 = https://github.com/Insality/druid/archive/refs/tags/0.6.0.zip
dependencies#18 = https://github.com/britzl/defold-lfs/archive/master.zip
dependencies#19 = https://github.com/defold/extension-firebase/archive/refs/tags/1.1.3.zip
dependencies#20 = https://github.com/defold/extension-firebase-analytics/archive/refs/tags/2.1.0.zip
dependencies#21 = https://github.com/selimanac/defold-random/archive/master.zip
dependencies#22 = https://github.com/defold/extension-adinfo/archive/master.zip
Could it come from one of those dependencies??
I’m pulling my hair to make this SDK work…
Do you run sample project with only ironsource dependency?