On Jun 24, 2016, at 9:13 PM, Roland King wrote:
Go find the log lines which actually compile the files in the lib project to object files and the lines which then link it into a static library.
To the bast of my knowledge, I already pasted them in to the email thread.
compare those with the lines which compile your final project sources into object files and link them into your app. Are there min deployment target arguments on all of them? I’d expect if there was no such argument you’d get ‘latest’ by default. Search for 8.0 instead of 8.3 if you like and find the places that 8.0 isn’t specified instead of looking for places where 8.3 is specified.
Are you sure it’s the right library you’re linking in and not an old one in a differently-named directory to where it’s currently being built which is sitting there from days/weeks ago?
This is just a job of methodically tracking back through each of the build lines for any one of the, it seems, dozens and dozens of source files which are being built in a way which tags their minimum deployment as 8.3, or put into a library in such a way that they’re tagged 8.3, and finding where that happens.
Good point. This other project forces me to use legacy build settings, so I can see how that could happen, but if I am using a unique build location, clean, then rebuild and at every step in the process, the iOS Deployment Target is set to 8.0, there should be no 8.3, riiiight?
These are fresh goods. I looked at the .sh build script for pjsip.a. i looked at the target build settings on on pjsip.a. Is there anything else that I'm missing? Obviously, I'm missing something, but seriously, I've been looking for this all day and have no clue.
I've grepped for the 8.3 pattern within the enclosing project folders. I've looked through the project.pbx to see if there is an 8.3 present - in the pjsip project, in the directFramework project, in the enclosing folder for the project that contains all the sub projects. There is no string match on 8.3 within the project folder of the project that encloses pjsip and the framework and the sample app, if I am to trust grep, EasyFind and filtering within Xcode.
I just made sure that I destroyed my derived data folder. Made sure that Xcode was pointing to Unique build locations, made sure that the iOS Deployment target was 8.0, cleaned, built, then build the framework that has it listed as a dependency and guess what?
Every single file was built for newer iOS version (8.3) than being linked (8.0)
Ld /Users/zav/Library/Developer/Xcode/DerivedData/DirectFramework-enjpwwddxjevztftswnqliwzwrjf/Build/Intermediates/DirectFramework.build/Debug-iphoneos/DirectFramework.build/Objects-normal/arm64/DirectFramework normal arm64
cd /Users/zav/Developer/SWNDirectFramework/DirectFramework
export IPHONEOS_DEPLOYMENT_TARGET=8.0
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk -L/Users/zav/Library/Developer/Xcode/DerivedData/DirectFramework-enjpwwddxjevztftswnqliwzwrjf/Build/Products/Debug-iphoneos -F/Users/zav/Library/Developer/Xcode/DerivedData/DirectFramework-enjpwwddxjevztftswnqliwzwrjf/Build/Products/Debug-iphoneos -filelist /Users/zav/Library/Developer/Xcode/DerivedData/DirectFramework-enjpwwddxjevztftswnqliwzwrjf/Build/Intermediates/DirectFramework.build/Debug-iphoneos/DirectFramework.build/Objects-normal/arm64/DirectFramework.LinkFileList -install_name @rpath/DirectFramework.framework/DirectFramework -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -miphoneos-version-min=8.0 -dead_strip -Xlinker -no_deduplicate -fobjc-arc -fobjc-link-runtime -framework Foundation -framework AudioToolbox -framework AVFoundation -framework CFNetwork -framework CoreGraphics -framework UIKit -framework WebKit /Users/zav/Library/Developer/Xcode/DerivedData/DirectFramework-enjpwwddxjevztftswnqliwzwrjf/Build/Products/Debug-iphoneos/libpjsip-ios.a -single_module -compatibility_version 1 -current_version 11 -Xlinker -dependency_info -Xlinker /Users/zav/Library/Developer/Xcode/DerivedData/DirectFramework-enjpwwddxjevztftswnqliwzwrjf/Build/Intermediates/DirectFramework.build/Debug-iphoneos/DirectFramework.build/Objects-normal/arm64/DirectFramework_dependency_info.dat -o /Users/zav/Library/Developer/Xcode/DerivedData/DirectFramework-enjpwwddxjevztftswnqliwzwrjf/Build/Intermediates/DirectFramework.build/Debug-iphoneos/DirectFramework.build/Objects-normal/arm64/DirectFramework
ld: warning: object file (/Users/zav/Library/Developer/Xcode/DerivedData/DirectFramework-enjpwwddxjevztftswnqliwzwrjf/Build/Products/Debug-iphoneos/libpjsip-ios.a(log.o)) was built for newer iOS version (8.3) than being linked (8.0)
ld: warning: object file (/Users/zav/Library/Developer/Xcode/DerivedData/DirectFramework-enjpwwddxjevztftswnqliwzwrjf/Build/Products/Debug-iphoneos/libpjsip-ios.a(string.o)) was built for newer iOS version (8.3) than being linked (8.0)
And in the EXACT build before:
cd /Users/zav/Developer/SWNDirectFramework/DXI-PjSIP
export IPHONEOS_DEPLOYMENT_TARGET=8.0
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -static -arch_only arm64 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk -L/Users/zav/Library/Developer/Xcode/DerivedData/DirectFramework-enjpwwddxjevztftswnqliwzwrjf/Build/Products/Debug-iphoneos -L/Users/zav/Developer/SWNDirectFramework/DXI-PjSIP/pjsip/all_libs -filelist /Users/zav/Library/Developer/Xcode/DerivedData/DirectFramework-enjpwwddxjevztftswnqliwzwrjf/Build/Intermediates/pjsip-ios.build/Debug-iphoneos/pjsip-ios.build/Objects-normal/arm64/pjsip-ios.LinkFileList -lg7221codec-arm-apple-darwin9 -lgsmcodec-arm-apple-darwin9 -lilbccodec-arm-apple-darwin9 -lmilenage-arm-apple-darwin9 -lmilenage-i686-apple-darwin9 -lpj-arm-apple-darwin9 -lpjlib-util-arm-apple-darwin9 -lpjmedia-arm-apple-darwin9 -lpjmedia-audiodev-arm-apple-darwin9 -lpjmedia-codec-arm-apple-darwin9 -lpjmedia-videodev-arm-apple-darwin9 -lpjnath-arm-apple-darwin9 -lpjsdp-arm-apple-darwin9 -lpjsip-arm-apple-darwin9 -lpjsip-simple-arm-apple-darwin9 -lpjsip-ua-arm-apple-darwin9 -lpjsua-arm-apple-darwin9 -lpjsua2-arm-apple-darwin9 -lresample-arm-apple-darwin9 -lspeex-arm-apple-darwin9 -lsrtp-arm-apple-darwin9 -framework CFNetwork -framework Security -o /Users/zav/Library/Developer/Xcode/DerivedData/DirectFramework-enjpwwddxjevztftswnqliwzwrjf/Build/Intermediates/pjsip-ios.build/Debug-iphoneos/pjsip-ios.build/Objects-normal/arm64/libpjsip-ios.a
There's nothing there in the build instructions that tells it to build for 8.3! Fresh clean, freshly deleted intermediate files.
Oh, hell. The libs that come in PJSIP, how can tell what they are built for?
What's odd is that this app when built and run form Xcode will runs on iOS 8.1, but will not install in an ad hoc profile to an 8.1.3 device.
Ugh, what a day.
On 25 Jun 2016, at 09:51, Alex Zavatone <
email@hidden> wrote:
Thanks. I have a dependency for it and I build it from source. Building the app has a dependency for the target framework. The target framework has a dependency for pjsip, and there it ends.
After I clean, the build will go from 54 warnings to over 300, all with that all the 8.3 issues.
Searching for 8.3 returns nothing in the build settings for the pjsip-ios target
Am i searching in the right place?
iOS Deployment Target 8.0
???
On Jun 24, 2016, at 8:39 PM, Roland King wrote:
On 25 Jun 2016, at 09:26, Alex Zavatone <
email@hidden> wrote:
On Jun 24, 2016, at 7:30 PM, Roland King wrote:
On 25 Jun 2016, at 03:48, Alex Zavatone <email@hidden> wrote:
Any idea why it might be doing this?
The deployment targets are set to iOS 8.0 for the .a file, the framework
and the app.
Can you double-check the compilation log for log.o in the libpjsip
target?
--Kyle Sluder
The only file i can find that's called log.o isn't in a readable format and Xcode crashed several times since this morning, so I don't have clear access. What should I be looking for?
How does one get to a a file that is specified as:Debug-iphoneos/libpjsip-ios.a(log.o))?
I've been switching back and forth between legacy build settings due to the build requirements of a 3rd party project and this has helped Xcode 7.3 to crash pretty frequently when building. Is the log.0 file inside the .a file? I'm not familiar with how the file's location is being accessed, nor how to access it.
Thanks, Kyle. All the iPHONE_DEPLOYMENT_TARGET settings that I can find are 8.0.
He didn’t ask you to find log.o, which of course is in an unreadable format because it’s an object file. He asked you to find the build log for the file log.o in the libpjsp target. Kyle reasonably wants to see the command line used to compile log.c (or log.somethingorother) into log.o.
So go to the build logs tab after you’ve performed a build, possibly after doing some cleaning to make sure that libpjsp has been rebuilt, look down the list of steps until you find the one where log.o was created from source, expand that and post the command line(s) used to build it. If it references 8.3 as the minimum architecture, then you know where that’s coming from and you fix the build settings for libpjsp.
Thanks, Roland. You helped me find it.
It just happened again after a clean.
When pressing command 7 to view the Build Navigator, selecting the latest buios and filtering on log.o these are the only two command lines that appear,
Ld build/DirectFramework.build/Debug-iphoneos/DirectFramework.build/Objects-normal/arm64/DirectFramework normal arm64
cd /Users/zav/Developer/SWNDirectFramework/DirectFramework
export IPHONEOS_DEPLOYMENT_TARGET=8.0
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk -L/Users/zav/Developer/SWNDirectFramework/DirectFramework/build/Debug-iphoneos -F/Users/zav/Developer/SWNDirectFramework/DirectFramework/build/Debug-iphoneos -filelist /Users/zav/Developer/SWNDirectFramework/DirectFramework/build/DirectFramework.build/Debug-iphoneos/DirectFramework.build/Objects-normal/arm64/DirectFramework.LinkFileList -install_name @rpath/DirectFramework.framework/DirectFramework -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -miphoneos-version-min=8.0 -dead_strip -Xlinker -no_deduplicate -fobjc-arc -fobjc-link-runtime -framework Foundation -framework AudioToolbox -framework AVFoundation -framework CFNetwork -framework CoreGraphics -framework UIKit -framework WebKit /Users/zav/Developer/SWNDirectFramework/DXI-PjSIP/build/Debug-iphoneos/libpjsip-ios.a -single_module -compatibility_version 1 -current_version 11 -Xlinker -dependency_info -Xlinker /Users/zav/Developer/SWNDirectFramework/DirectFramework/build/DirectFramework.build/Debug-iphoneos/DirectFramework.build/Objects-normal/arm64/DirectFramework_dependency_info.dat -o /Users/zav/Developer/SWNDirectFramework/DirectFramework/build/DirectFramework.build/Debug-iphoneos/DirectFramework.build/Objects-normal/arm64/DirectFramework
/Users/zav/Developer/SWNDirectFramework/DXI-PjSIP/build/Debug-iphoneos/libpjsip-ios.a
is where the 8.3 version file is coming from, which the error message tells you. So where’s that being built? That’s the build you need to find, if it’s a dependency in Xcode then there will be a build log for building it, if it’s been built as some other project somewhere and added in as a prebuilt library, that’s why it doesn’t rebuild and that’s why you get the same warning. That library was built for 8.3.