iOS Fabric compile fails after GIT branching - ios

I have an iOS project effectively using Fabric and Crashlytics. Everything works as expected until I branch my project and switch to the new branch.
The error is from the run script.
./foo/Library/Developer/Xcode/DerivedData/bar-emsepzlotmiqgrbvfhqgiyivytkr/Build/Intermediates.noindex/bar.build/Debug-iphoneos/bar.build/Script-010652C22130393400A7E40F.sh: line 2: ./Fabric.framework/run: No such file or directory
Command PhaseScriptExecution failed with a nonzero exit code
Most importantly seems to be the
./Fabric.framework/run: No such file or directory
and the question is, why does this happen on a GIT branch and that's the solution?

I was able to work around the issue by changing my run script to:
${PODS_ROOT}/Fabric/Fabric.framework/run
But I still would like to know what in the GIT branch causes the issue and if there is a better solution.

Related

Fastlane: Running commit version bump in a project with multiple targets and cocoa pods gives error of uncommitted files

So I am using Fastlane. Now everything was smooth until we had only 1 target, now I have about 6 targets.
Also, another change now is that I use cocoapods now.
when my Fastlane lane runs. And it tries to perform commit_version_bump action.
I get the following error.
[!] Found unexpected uncommitted changes in the working directory. Expected these files to
have changed:
Target1.xcodeproj/project.pbxproj
Target1/Resources/Target1-Info.plist
Target2/Resources/Target2-Info.plist
Target2/Target2-Info.plist
Target3/Target3-Info.plist
Target4/Target4-Info.plist
Target6/Target6-Info.plist.
But found these actual changes:
.... some files from project....
Externals/Down/
Externals/FastImageCache/
Make sure you have cleaned up the build artifacts and
are only left with the changed version files at this stage in your lane, and don't touch the
working directory while your lane is running. You can also use the :force option to bypass this
check, and always commit a version bump regardless of the state of the working directory.
Can someone help. Your time is really appreciated. Thanks

compileKotlinIos FAILED - Could not find stdlib

I am trying to compile kotlin multiplatform, which contains iOS target.
I tried different examples over github, but most of them are outdated and don't work, probably because of incompatibility with current tools. Thing, that seems most reasonable is creating Mobile Android/iOS | Gradle or Mobile Shared Library | Gradle project using IntelliJ Idea.
When I create brand new project, I am still getting same error:
> Task :app:compileKotlinIos FAILED
e: Could not find "stdlib" in [~/git/iosandroidtest, ~/.konan/klib, ~/.konan/kotlin-native-macos-1.3.61/klib/common, ~/.konan/kotlin-native-macos-1.3.61/klib/platform/ios_x64].
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:compileKotlinIos'.
> Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
I am using kotlin 1.3.61, xcode 11.3. Any ideas?
Edit:
I pushed empty project (without any changes from me) to github:
https://github.com/hovi/iostest
I think you just ran into a bug with partial archive download.
Per the author there, "I got a snapshot of the .konan directory. It's interesting as it looks like part of the runtime download is there, but some parts are missing. Specifically in this case the common folder in klib, but also the licenses folder.
I was able to repro this locally by killing the build process while the archive is being extracted. For reference, see NativeCompilerDownloader. It looks to see if the folder is there. If not, it'll download and extract. If yes, the build process assumes everything is OK. ... Their local build will certainly be broken from then on until they clean and rebuild ~.konan." I suggest you report your issue there as well. (btw - tried your project in IJ and AS (as well as creating new lib project in IJ), didn't have any issues. Somehow your bad luck with an interrupted download (:))
Link to GitHub issue

Intellij generated Project for Kotlin Multiplatform always show build failed

I am using intellij to create a Kotlin Multiplatform Project for Android and iOS. I have not done any changes to the generated template but when opening the iOS Project in xcode and running it, it shows Build Failed with this logs.
/Users/archie.quinones/Library/Developer/Xcode/DerivedData/iosApp-bwuvtubwlwgrwofszlveznlcosbj/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/app.build/Script-F861D812207FA4320085E80D.sh: line 2: /Users/archie.quinones/IdeaProjects/MppApplication/iosApp/../gradlew: No such file or directory
Command PhaseScriptExecution failed with a nonzero exit code
Can some guide me how to make this work?
Thank you very much.
There is a small confusion here. AFAIK, there should be a note in your Gradle script, with something like
//Before opening the project from iosApp directory in Xcode,
// make sure all Gradle infrastructure exists (gradle.wrapper, gradlew).
So please, open the project directory in Terminal and execute gradle wrapper task manually.
This is a known issue of the Kotlin/MPP wizard, here is the ticket. It is not a problem, as you can produce the wrapper by yourself, but I agree, that it might be unobvious.

Teamcity Step tests (Command Line) failed when testing an iOS app

I am trying to run tests automatically using Teamcity, but it seems that when the agent is compiling the project, it is not done correctly because when I run the command like for running test, I am getting the following error:
fatal error: 'Pushwoosh/PushNotificationManager.h' file not found
#import <Pushwoosh/PushNotificationManager.h>
[16:48:51][Step 2/2] ^
[16:48:51][Step 2/2] 1 error generated.
However, when I run manually the same commands I get no errors, but my test running. The application that I want to run was written in objective-c, and the command lines I am using are the following:
$ git clone REPOSITORY_URL (runs sucessfully)
$ pod install (runs sucessfully)
$ xctool -workspace Supermaxi.xcworkspace -scheme Supermaxi test -only FunctionalTests:TestCase000_Registration/test00_WrongEmail -sdk iphonesimulator (fails and I get the previous described error)
After being helped by I friend of mine, we found the solution to this issue in this link.
It turns out that the main problem was, as the link states, that CocoaPods uses symbolic links in it’s directory structure, and TeamCity can have trouble copying symbolic links in the VCS checkout to build agent, so I had to set the Version Control Settings of Teamcity as it is explained in the previous link.
Therefore, I have just changed the VCS checkout mode from Automatically on server to Automatically on agent (if supported by VCS roots). After that I run the agent again, and it worked properly.

fatal error: 'Fabric/Fabric.h' file not found

I am working on xcode 6.3.1, OSX 10.10.3 and I have configure crashlytics successfully with my local system. it work fine and it release the build via fabric app. But when I transfer same codebase to teamcity it was showing me following error
fatal error: 'Fabric/Fabric.h' file not found
fatal error: 'Crashlytics/Crashlytics.h' file not found
After investigation, I found that following unknown issue in my teamcity server. Teamcity got the source from git and when I see the source code in teamcity, Crashlytics.framworks & fabric.framworks are available but when you look into folder structure it could not figure out shortcuts for all headers, modules, resources, crashlytics folder (pic-1).
I get the other git clone in other folder and manually pull source code, here I can see the all shortcuts for crashlytics & fabrics sub folders. (pic-2).
I just copied all folders and pasted in teamcity source code. Now it works but every time when source code changed, teamcity reset to non-shortcut folder structure which will fail my builds. I am not sure this is GIT issue or teamcity or crashlytics issue. Please let me know how to figure out. I appreciate you answers.
Thanks
Manoj
Its a Teamcity configuration issue.
When you include libraries, if using git to get the code you have to change the Version Control Settings.
Change VCS checkout mode to Automatically on agent. This will fix your issue. There is a problem with the teamcity git client which messes up the symlinks so the libraries dont actually download correctly.

Resources