Unable to compile TestFlight dll with bindings for monotouch - binding

I'm trying to make the TestFlight binding for monotouch DLL without succeeding. The bindings are made for TestFlight SDK 1.2.1, but the only available versions from TestFlight are 1.2.5 and 1.2.6. So I tried the pull request #125 version which should work with 1.2.5 and 1.2.6. However, I get the same errors:
/var/folders/ ... /TestFlight/TestFlight.g.cs(89,69): error CS0103: The name `class_ptr' does not exist in the current context
/var/folders/ ... /TestFlight/TestFlight.g.cs(103,62): error CS0103: The name `class_ptr' does not exist in the current context
/var/folders/ ... /TestFlight/TestFlight.g.cs(114,62): error CS0103: The name `class_ptr' does not exist in the current context
/var/folders/ ... /TestFlight/TestFlight.g.cs(125,62): error CS0103: The name `class_ptr' does not exist in the current context
/var/folders/ ... /TestFlight/TestFlight.g.cs(134,55): error CS0103: The name `class_ptr' does not exist in the current context
/var/folders/ ... /TestFlight/TestFlight.g.cs(145,62): error CS0103: The name `class_ptr' does not exist in the current context
/var/folders/ ... /TestFlight/TestFlight.g.cs(158,62): error CS0103: The name `class_ptr' does not exist in the current context
These seven errors correspond to the seven abstract methods in the interface, but I don't know that to do with that information.
I had a look at the iOSRegUpdater posted in the only similar SO question I found, but it only solves the issue if you already have a DLL (which is what I fail to make).
What am I missing or doing wrong?

You need this commit too: 9dc256b8

I've re-written the ReadMe for the Monotouch Testflight bindings on GitHub, because it took me three hours to make this work, as the setup explanation was missing a few vital steps...
TestFlight
1) This is a MonoTouch binding for the TestFlight SDK which can be found at
DOWNLOAD THIS FIRST - https://testflightapp.com/sdk/
2) Download the monotouch bindings zip file. It is huge.
3) Navigate to monotouch-bindings-master/testflight/binding & copy the testflight SDK ZIP file (do not unzip it), to this directory.
4) IMPORTANT - The make file in this monotouch-bindings-master/testflight/binding directory is setup to target a particular named version of the testflight SDK zip file. When I ran it, it was searching for "TestFlightSDK1.2.1.zip". HOWEVER, the version of the TestFlight SDK zip file that I downloaded was named "TestFlightSDK2.0.0.zip". Thus, you need to rename your zip file to "TestFlightSDK1.2.1.zip".
4) Open terminal, navigate to monotouch-bindings-master/testflight/binding. Run MAKE (just type MAKE into the terminal).
5) Once this has built, you will see two files that you need in the binding directory. "testflightlib.a" and "TestFlight.dll".
6) Copy both of these to the root of your Monotouch project.
7) Open your project in the Xamarin IDE and add a new reference to the TestFlight.dll.
8) Start using the methods in the dll - You will need to get your AppToken from the TestFlight page after you have setup an app on testflightapp.com.
9) Run the TestFlight.TakeOff method to initialize TestFlight in your app. To use the thread safe TakeOff method. Change TestFlight.TakeOff(token) to TestFlight.TakeOffThreadSafe(token)
10) You can then use the other methods such as TestFlight.PassCheckpoint, Testflight.OpenFeedback etc. (as shown on the sample project in the monotouch-binding TestFlight sample project.
Happy testing.....That was an absolute mission!
Simon - www.segnoapp.com

Related

iOS Build Error: missing file Icon102.png

I have a Xamarin Forms App running on Android and iOS. Everything works fine on a Simulator and on lokal devices.
When I push the Buid to AppCenter, the Android Version gets build without a problem, but the iOS Build alsways fails with the following error:
(_CoreCompileImageAssets target) -> /Users/runner/runners/2.165.1/work/1/s/O365Info/O365Info.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png : error : File not found: /Users/runner/runners/2.165.1/work/1/s/O365Info/O365Info.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png [/Users/runner/runners/2.165.1/work/1/s/O365Info/O365Info.iOS/O365Info.iOS.csproj]
24 Warning(s)
1 Error(s)
Time Elapsed 00:01:01.73
[error]Xamarin.iOS task failed with error Error: /Library/Frameworks/Mono.framework/Versions/6_6_1/bin/msbuild failed with return code: 1. For guidance on setting up the build definition, see https://go.microsoft.com/fwlink/?LinkId=760847.
[section]Finishing: Build Xamarin.iOS solution.
In the first builds I didn't even had a Iconset called AppIcon.appiconset (my Iconset was named appiconset1) and the whole project didn't include a file named "Icon1024.png".
I then renamed my Iconset to appioconset and included a file named "Icon1024.png", but I'm still getting the same error.
No ideas, where this error might come from. Any suggestions?
Copied From ColeX at:
https://forums.xamarin.com/discussion/179775/build-error-with-missing-file-icon1024-png
Edit csproj file to remove the bogus entries (just delete them)
Ensure that a 1024*21024 png icon (file does not have Alpha or transparent) add into Assets.xcassets
Ensure the 1024 file information included in csproj file
Refer
Where to find 'Missing Marketing Icon'
https://forums.xamarin.com/discussion/129252/problems-with-missing-appicons-files

error: failed to remove /Users/gs/Library/Developer/Xcode/DerivedData - “Info.plist” couldn’t be removed

I’ve hit a problem working on iOS app development using Xcode outside Australia. Yesterday I was using Xcode inflight to compile and build the app and again for a short time upon arriving in Mumbai. The moment I removed an obsolete source file that was no longer needed in the app - i.e. just removing the reference and not deleting the file - I started getting compiler and linker problems.
The first message said my developer’s license had expired on March 27. But as I had used Xcode successfully on a daily basis since that date I assumed the problem might be related to Xcode being licensed only for use within Australia.
I logged onto the Apple Developers site where I agreed to accept terms and conditions and found no indication that my license had expired. So I restored the obsolete file and deep cleaned (command+option+shift+K) and rebuilt the project and now have multiple Dependency Analysis Warnings
Showing All Issues
error: failed to remove /Users/gs/Library/Developer/Xcode/DerivedData/xxx-ehpokmdvcmvspodonmckmjkbbfzj/Build/Products/Release-iphonesimulator/xxx.app/Info.plist: “Info.plist” couldn’t be removed.
Showing All Issues
: error: couldn't remove '/Users/gs/Library/Developer/Xcode/DerivedData/xxx-ehpokmdvcmvspodonmckmjkbbfzj/Build/Products/Release-iphonesimulator/xxx.app/Info.plist' after command failed: No such file or directory
Warning: The Copy Bundle Resources build phase contains this target's Info.plist file 'Info.plist'.
and multiple of the next warning
Warning: Multiple build commands for output file /Users/gs/Library/Developer/Xcode/DerivedData/SatGam-ehpokmdvcmvspodonmckmjkbbfzj/Build/Products/Debug-iphonesimulator/xxx.app/xxx.ipa
with the following files
xxx.app/xxx.mobileprovision
xxx.app/HelpText.xcf
xxx.app/ios_distribution.cer
xxx.app/PhoneDeviceID.txt
xxx.app/iOS Human Interface Guidelines: Icon and Image Sizes.pdf
xxx.app/AppleWWDRCA.cer
and two that I wouldn't expect to be part of an Xcode project
xxx.app/ios_development.cer
xxx.app/HelpText.xcf
(I attended AppleWWD in 2009. The GIMP project file was used to create .PNG assets in 2013)
I’ve repeated the deep clean procedure, closed Xcode, rebooted the simulator (hoping to erase any old versions from the simulator) but I can’t get rid of the problem. The multiple build commands suggest that Xcode is getting confused keeping track of old versions of the app.
Does anyone have any suggestions how I can restore Xcode to good health ?
My problem was solved once I understood and trusted what Xcode was saying. By selecting the target in the navigation window, I found many Info.plist files from earlier versions of my project. I carefully removed all but the latest version but still the project would not compile.
Then in the navigation window I discovered groups containing every file from earlier versions of my project. While I had made backups of my project I most certainly had not created groups within the project so I can only assume Xcode did this as it tried to make sense of backup copies I had made. There was even a project file in each group that allowed me to build and run earlier versions of the project successfully. Once I removed all references to these file groups from the navigation window, I was able to compile the latest version of the project successfully.

Upload new package version to the nuget.org

I 've tried to upload a new verion of my package. I have not seen any special instructions for new version uploading, so i have tried to repeat the usual steps with the nuget.exe:
1) create .nuspec file
2) correct generated .nuspec file. Package id was not changed so it is simmilar to the already existing package name. Also i've correct dll name, version (1.0.0->1.1.1) and description
3) create .Nupkg file.
But when i am trying to upload new package, it ends up with an error:
'The title of your package, 'Gin', is similar to the ID of an existing package, which can cause confusion with our users. Please modify the title of your package and try uploading again.'
Yes of coruse, previous Gin-package is already in the nuget. So what am i missing?
How can i upload a new version of my package?
The problem occurs if your title and/or assembly name of new version package differs from the origin title and/or assembly name.

XCode Error itms-90035 - Invalid signature? [duplicate]

This question already has answers here:
Error itms-90035 - Xcode
(16 answers)
Closed 7 years ago.
I've been building with Chrome-Mobile-Apps for the last few weeks in XCode with no problems until this morning, where I'm getting this Erorr itms-90035 when I try to submit my archive to the App Store. It will validate fine, but when I try to submit -- nada. Here is the error I get:
I found this thread that has the same issue, but the highest rated solution is not working for me. The file it points to in my erorr is a Unix Executable File that when I run doesn't do anything and I'm not sure if it's safe to delete. I searched by project for .sh files but only found one that is required to run the project. I'm not sure where the error is actually coming from? Any assistance? I'm incredibly confused here. I think apple changed something on their end.
edit Yes I am aware that there is another thread on this topic, that's where I first checked, as I said in my post. Unfortunately, the solutions in that thread are not related to my issue. I only have one .sh file in my project and it is required to copy the contents of my www folder w/ cordova to the iOS project, I think. If I remove the file my project will not build.
edit2 the only things in my copy bundle resources bit in the build phases tab are all of my icon/splash image files and MainViewController.xib. I don't think these are the issue
You need to delete the .sh file under your bower components folder. So just follow the instruction path for your binary file, find the file end with .sh and delete it. You should be good to go. Apple recently enforce this, and it is super annoying.
Refer the original solution working for me here: Error itms-90035 - Xcode
For me, it was with git. I removed .git file by running rm -rf .git
and the app got submitted successfully.
A similar thing happened to me.
I was using phonegap build for creating my .ipa file.
My Tip is to look at the path of the file mentioned in the error message.
When I looked at it it seemed to refer to a file that was not part of my project at all.
It turned out that my build process did not do a proper cleaning of the folder into which it copied the files to be zipped and sent to phonegap build - so that old files where still included.
Adding a proper cleanup initial step to my build proccess fixed the issue right away.
Please check if you are using crittercsim version prior to 5.2.0, it has a file name dsym_upload.sh which is also causing problem, if that is the case, please update your crittercism source.
For me the error was related to having a file in 'Copy Bundle Resources' that did not belong there. Reading other threads it appears to be a common theme. It's not so much of a particular type of file but more about 'any' file that shouldn't be there. If you go into your app target/Build Phases/Copy Bundle Resources...I expect you will find a file that does not belong there (with the name 'marked'? - assuming you have all your proper Code Signing authorities). Remove the file from the Copy Bundle Resources...(not necessarily from your project - you may need that file for you App to work)...just get it out of 'Copy Bundle Resources'. If you are still uncertain of what file is causing your problem, try Archiving and Validating your App. Although, it will Validate fine it will indicate a file with Zero Entitlements. That file should be the problem.
I fixed this by just removing the entire unix executable file. My project didn't need it apparently. Not a great solution (actually the worst) but it works!

strings command in command line tool is not doing anything

I'm trying to push my code to apple. I am at the stage of validating my code in Xcode.
I am following along this post:
http://developer.xamarin.com/guides/ios/deployment,_testing,_and_metrics/app_distribution_overview/publishing_to_the_app_store/
But I receive an error saying "The app reference non-public selectors /myproject/path:artwork, command, finished, initWithSendPort
I have read that some says to run the command line tool in xcode against the dll to find the culprit like so:
strings /path/to/dllfolder.dll | grep artwork
but my app doesn't have any dll in it. After doing build against my configuration in Xamarin, the receiving folder only has myapp, myapp.dsym, myapp.exe, my app.xcent and the resources folder which is empty.
I'm stuck. What should I do?
SOLUTION:
#Rolf, I will mark your answer as the solution because part of it is what I did to solve the problem. I downloaded the latest Xamarin update, version 3.0 and then did "link all assemblies" and it worked right away.
These selectors most likely show up inside monotouch.dll. However most of these selectors are in fact documented publicly [1], those that aren't have been removed (from your list I believe initWithSendPort:receivePort:components is the only one) from future versions of Xamarin.iOS.
The current workaround is to enable the managed linker in the project's iOS Build options (set "Linker Behavior" to "Link all assemblies" or "Link SDK assemblies only"). This will remove unused code from monotouch.dll, and unless you actually use the API in question, the usage of these selectors will be removed.
[1] http://forums.xamarin.com/discussion/comment/59264/#Comment_59264
Use this option to strings:
´´´
-a
--all
- Do not scan only the initialized and loaded sections of object
files; scan the whole files.
´´´
http://www.freebsd.org/cgi/man.cgi?query=strings&sektion=1&n=1

Resources