Golang binary on Mac OS error "operation not permitted" - ios

I'm trying to ship a golang binary inside a Mac application. It is ideally just an HTTP server with some basic functions on folders and files.
The binary seems to work just fine when I run it from a terminal but when I try to call it from my Mac application programmatically it gives me an error "operation not permitted" and quits.
After code-signing with a valid identity file I get the same error.
Error:
go build -ldflags -s .
codesign -s "Developer ID Application: *** *tesco" binaryFile
Golang ENV:
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/srinivas/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/3n/vpg5bnks45n75n
d91qh7sy3c0000gn/T/go-build925744934=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"

This is not related to Go. Go to your system preferences and just give full disk access to the ide you're using.

Related

Gluon Mobile GraalVM iOS 14.1

Since I’ve updated Xcode to version 12.2 because of update iOS to 14.1 I’m not able to build my Gluon Mobile project. An error occurs at the end of the build process by linking. I saw that the object files. They are created but not linked.
Object file folder :
.../target/client/arm64-ios/gvm/tmp/SVM-1605296582688/llvm
I’ve tried to link only and got following errors in .../GraalVMGluonSample/target/client/log :
Process
=======
link
Command Line
============
clang /Users/kojojo/NetBeansProjects/GraalVMGluonSample/target/client/arm64-ios/gvm/Hello Gluon/AppDelegate.o /Users/kojojo/NetBeansProjects/GraalVMGluonSample/target/client/arm64-ios/gvm/tmp/SVM-1605296582688/com.GraalVMgluonsample.GraalVMgluonsample.o /Users/kojojo/NetBeansProjects/GraalVMGluonSample/target/client/arm64-ios/gvm/tmp/SVM-1605296582688/llvm/llvm.o -ljava -lnio -lzip -lnet -lprefs -ljvm -lfdlibm -lz -ldl -lj2pkcs11 -lsunec -ljaas -lextnet -lstdc++ -w -fPIC -arch arm64 -mios-version-min=11.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.1.sdk -Wl,-force_load,/Users/kojojo/.gluon/substrate/javafxStaticSdk/15-ea+gvm22/ios-arm64/sdk/lib/libprism_es2.a -Wl,-force_load,/Users/kojojo/.gluon/substrate/javafxStaticSdk/15-ea+gvm22/ios-arm64/sdk/lib/libglass.a -Wl,-force_load,/Users/kojojo/.gluon/substrate/javafxStaticSdk/15-ea+gvm22/ios-arm64/sdk/lib/libjavafx_font.a -Wl,-force_load,/Users/kojojo/.gluon/substrate/javafxStaticSdk/15-ea+gvm22/ios-arm64/sdk/lib/libprism_common.a -Wl,-force_load,/Users/kojojo/.gluon/substrate/javafxStaticSdk/15-ea+gvm22/ios-arm64/sdk/lib/libjavafx_iio.a -lpthread -llibchelper -lffi -ldarwin -Wl,-framework,Foundation -Wl,-framework,UIKit -Wl,-framework,CoreGraphics -Wl,-framework,MobileCoreServices -Wl,-framework,OpenGLES -Wl,-framework,CoreText -Wl,-framework,QuartzCore -Wl,-framework,ImageIO -Wl,-framework,CoreBluetooth -Wl,-framework,CoreImage -Wl,-framework,CoreLocation -Wl,-framework,CoreMedia -Wl,-framework,CoreMotion -Wl,-framework,CoreVideo -Wl,-framework,Accelerate -Wl,-framework,AVFoundation -Wl,-framework,AudioToolbox -Wl,-framework,MediaPlayer -Wl,-framework,UserNotifications -Wl,-framework,ARKit -Wl,-framework,AVKit -Wl,-framework,SceneKit -Wl,-framework,StoreKit -o /Users/kojojo/NetBeansProjects/GraalVMGluonSample/target/client/arm64-ios/Hello Gluon.app/Hello Gluon -L/Users/kojojo/.gluon/substrate/javafxStaticSdk/15-ea+gvm22/ios-arm64/sdk/lib -L/opt/graalvm/lib/svm/clibraries/ios-arm64 -L/Users/kojojo/.gluon/substrate/javaStaticSdk/11-ea+1/ios-arm64/labs-staticjdk/lib/static -L/Users/kojojo/NetBeansProjects/GraalVMGluonSample/target/client/arm64-ios/gvm/lib -Wl,-force_load,/Users/kojojo/NetBeansProjects/GraalVMGluonSample/target/client/arm64-ios/gvm/lib/libLifecycle.a -Wl,-force_load,/Users/kojojo/NetBeansProjects/GraalVMGluonSample/target/client/arm64-ios/gvm/lib/libStatusbar.a -Wl,-force_load,/Users/kojojo/NetBeansProjects/GraalVMGluonSample/target/client/arm64-ios/gvm/lib/libDisplay.a -Wl,-force_load,/Users/kojojo/NetBeansProjects/GraalVMGluonSample/target/client/arm64-ios/gvm/lib/libUtil.a -Wl,-force_load,/Users/kojojo/NetBeansProjects/GraalVMGluonSample/target/client/arm64-ios/gvm/lib/libStorage.a
Output
======
ld: building for iOS, but linking in object file built for macOS, file '/Users/kojojo/NetBeansProjects/GraalVMGluonSample/target/client/arm64-ios/gvm/tmp/SVM-1605296582688/llvm/llvm.o'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Result
======
result: 1
I upgraded the plugin <client.plugin.version>0.1.34</client.plugin.version> and then I folowed the instruction in the error message. I installed graalvm-ce-java11-20.2.0.hotfix-xcode12.zip and changed GRAALVM_HOME but anyway I get error during build :
Process
=======
compile
Command Line
============
/Library/Java/JavaVirtualMachines/graalvm-ce-java11-20.2.0.hotfix-xcode12/bin/native-image -Djdk.internal.lambda.eagerlyInitialize=false --no-server -H:+ExitAfterRe$
Output
======
env: bash: No such file or directory
Result
======
result: 127
I noticed that the structure of the graalvm-ce-java11-20.2.0.hotfix-xcode12.zip is different than a regular relaese 20.2.0. It doesn‘t contain /Contents/Home folders. Can it cause an issue?
There is a solution based on the hints from José Pereda:
Upgrade Gluon Client Plugin in pom.xml <client.plugin.version>0.1.34</client.plugin.version>
Build your project. You will get a message with the instruction to upgrade GraalVM. Download graalvm-ce-java11-20.2.0.hotfix-xcode12.zip (Link is in the message)
Unpack the zip file move to /Library/Java/JavaVirtualMachines/graalvm-ce-java11-20.2.0.hotfix-xcode12
Set environment variable GRAALVM_HOME=/Library/Java/JavaVirtualMachines/graalvm-ce-java11-20.2.0.hotfix-xcode12
Check if environment variable PATH contains at least 
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Cordova build does not update project

something weird is happening and I don't know why (The first time this happens to me).
I have my Cordova project that I'm testing in my iPhone (I work on MacBook Pro), but, the 3rd time I did cordova build ios I noticed somethig weird in my app as nothing had changed. (That happened yesterday)
Since then I've been making changes (even deleting complete files) but it doesn't matter how many times I build, nothing changes in my phone.
When building, it ends with ** BUILD SUCCEEDED ** so I really don't understand why this is happening.
$ cordova build ios
Running command: /Users/myuser/Documents/project/platforms/ios/cordova/build
2015-04-10 10:41:33.992 xcodebuild[1943:1007] [MT] PluginLoading: Required plug-in compatibility UUID A16FF353-8441-459E-A50C-B071F53F51B7 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/SparkInspectorXcodePlugin.xcplugin' not present in DVTPlugInCompatibilityUUIDs
Build settings from command line:
ARCHS = i386
CONFIGURATION_BUILD_DIR = /Users/myuser/Documents/project/platforms/ios/build/emulator
SDKROOT = iphonesimulator8.2
SHARED_PRECOMPS_DIR = /Users/myuser/Documents/project/platforms/ios/build/sharedpch
VALID_ARCHS = i386
=== BUILD TARGET CordovaLib OF PROJECT CordovaLib WITH CONFIGURATION Debug ===
Check dependencies
=== BUILD TARGET LolApi OF PROJECT LolApi WITH CONFIGURATION Debug ===
Check dependencies
PhaseScriptExecution Copy\ www\ directory build/LolApi.build/Debug-iphonesimulator/LolApi.build/Script-304B58A110DAC018002A0835.sh
cd /Users/myuser/Documents/project/platforms/ios
/bin/sh -c /Users/myuser/Documents/project/platforms/ios/build/LolApi.build/Debug-iphonesimulator/LolApi.build/Script-304B58A110DAC018002A0835.sh
real 0m0.243s
user 0m0.032s
sys 0m0.058s
ProcessInfoPlistFile build/emulator/LolApi.app/Info.plist LolApi/LolApi-Info.plist
cd /Users/myuser/Documents/project/platforms/ios
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/sw/bin:/sw/sbin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin"
builtin-infoPlistUtility /Users/myuser/Documents/project/platforms/ios/LolApi/LolApi-Info.plist -genpkginfo /Users/myuser/Documents/project/platforms/ios/build/emulator/LolApi.app/PkgInfo -expandbuildsettings -format binary -platform iphonesimulator -additionalcontentfile /Users/myuser/Documents/project/platforms/ios/build/LolApi.build/Debug-iphonesimulator/LolApi.build/MainViewController-PartialInfo.plist -o /Users/myuser/Documents/project/platforms/ios/build/emulator/LolApi.app/Info.plist
GenerateDSYMFile build/emulator/LolApi.app.dSYM build/emulator/LolApi.app/LolApi
cd /Users/myuser/Documents/project/platforms/ios
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/sw/bin:/sw/sbin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil /Users/myuser/Documents/project/platforms/ios/build/emulator/LolApi.app/LolApi -o /Users/myuser/Documents/project/platforms/ios/build/emulator/LolApi.app.dSYM
Touch build/emulator/LolApi.app
cd /Users/myuser/Documents/project/platforms/ios
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/sw/bin:/sw/sbin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin"
/usr/bin/touch -c /Users/myuser/Documents/project/platforms/ios/build/emulator/LolApi.app
** BUILD SUCCEEDED **
Any ideas?
Edit:
All changes where made in project/www folder, not in project/platform/ios/
I had the same problem, however, I was using Cordova with React and I had npm scripts prepared in package.json:
"cordova:start:ios": "npm run build:cordova && cp -a ./dist/. ./.cordova/www && cd ./.cordova && cordova run ios"
If I used Cordova commands directly cordova build ios the app wouldn't register the changes. Only when I used the command above it would work.
I came across similar issue with somebody using Ionic. They also were bypassing Ionic preset build commands and using Cordova directly, which caused them the same issue.

FastPdfKit Shell Script Invocation error

I have downloaded a projects from git while opening it from Xcode 6 giving me These errors
FastPdfKit
Shell Script Invocation error
Console log
Console log
** BUILD SUCCEEDED **
Create universal static library
/Applications/Xcode 6.0.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool -static /Users/xeemu1/Library/Developer/Xcode/DerivedData/Popboardz-dtuwsutwwdhzqlglwojmwozfwhvo/Build/Products/Debug-iphonesimulator/FastPdfKit.framework/Versions/A/FastPdfKit /Users/xeemu1/Library/Developer/Xcode/DerivedData/Popboardz-dtuwsutwwdhzqlglwojmwozfwhvo/Build/Products/Debug-iphoneos/FastPdfKit.framework/Versions/A/FastPdfKit -o /Users/xeemu1/Library/Developer/Xcode/DerivedData/Popboardz-dtuwsutwwdhzqlglwojmwozfwhvo/Build/Products/Debug-iphonesimulator/FastPdfKit.framework/Versions/A/FastPdfKit.temp
/Users/xeemu1/Library/Developer/Xcode/DerivedData/Popboardz-dtuwsutwwdhzqlglwojmwozfwhvo/Build/Intermediates/FastPdfKit.build/Debug-iphonesimulator/FastPdfKit.build/Script-958A819E14027EEE00837C82.sh: line 97: /Applications/Xcode 6.0.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool: No such file or directory
Just check permissions, it worked to me in the cordova/phonegap environment using CLI.

compiling stasm for mac

I'm try to to build the stasm library on my mac and hopefully port it to the iphone.
stasm download: http://www.milbo.users.sonic.net/stasm/download.html
I am using the makefile for linux provided.
after some changes to header include paths for libjpeg and opencv, I am stuck with this error
g++ -c ../stasm/violajones.cpp -O3 -Wall -pedantic -I/home/john/OpenCV-2.1.0/include/opencv -I../gsl -I../gsl/gsl -I../image -I../jpeg -I../mat -I../rowley -I../stasm -I../tasm
In file included from ../stasm/violajones.cpp:24:
/opt/local/include/opencv/cv.h:63:33: error: opencv2/core/core_c.h: No such file or directory
/opt/local/include/opencv/cv.h:64:33: error: opencv2/core/core.hpp: No such file or directory
/opt/local/include/opencv/cv.h:65:39: error: opencv2/imgproc/imgproc_c.h: No such file or directory
/opt/local/include/opencv/cv.h:66:39: error: opencv2/imgproc/imgproc.hpp: No such file or directory
/opt/local/include/opencv/cv.h:67:38: error: opencv2/video/tracking.hpp: No such file or directory
/opt/local/include/opencv/cv.h:68:45: error: opencv2/features2d/features2d.hpp: No such file or directory
/opt/local/include/opencv/cv.h:69:35: error: opencv2/flann/flann.hpp: No such file or directory
/opt/local/include/opencv/cv.h:70:39: error: opencv2/calib3d/calib3d.hpp: No such file or directory
/opt/local/include/opencv/cv.h:71:43: error: opencv2/objdetect/objdetect.hpp: No such file or directory
/opt/local/include/opencv/cv.h:72:37: error: opencv2/legacy/compat.hpp: No such file or directory
/opt/local/include/opencv/cv.h:79:37: error: opencv2/core/internal.hpp: No such file or directory In file included
from ../stasm/violajones.cpp:25:
/opt/local/include/opencv/highgui.h:47:39: error: opencv2/highgui/highgui_c.h: No such file or directory
/opt/local/include/opencv/highgui.h:48:39: error: opencv2/highgui/highgui.hpp: No such file or directory
the original makefile is uploaded here https://github.com/tsaizhenling/stuff/blob/master/makefile
i have tried changing the directory as trojanfoe suggested
but still same error :(
I have opencv and opencv2 residing in /opt/local/include/
Update:
tried J-16 SDiZ's suggestion and this brought me forward. I had to remove the pedantic flag but i'm still stuck with the following error
g++ -c ../stasm/tab.cpp -O3 -Wall -I/opt/local/include/opencv
-I/opt/local/include -I../gsl -I../gsl/gsl -I../image -I../jpeg -I../mat -I../rowley -I../stasm -I../tasm make: * No rule to make target -lm', needed bystasm'. Stop.
makefile is updated
Update:
Finally got everything fixed with help from J-16 SDiZ.
had to update the linker flags because opencv changed the library names
makefile is updated in case anyone needs it
Change
INCL=\
-I$(OPENCV_HOME)/include/opencv\
-I../gsl\
to
INCL=\
-I$(OPENCV_HOME)/include/opencv\
-I$(OPENCV_HOME)/include \
-I../gsl\
And you should not use ${LIB} in the dependency.
change
something: xxxxxx $(LIBS) $(OBJ)
to
something: xxxxxx $(OBJ)
I think you should learn how Makefile works, this is a makefile problem.
There are Mac/Linux build scripts for Stasm here:
https://github.com/juan-cardelino/stasm
You can build for iOS easily using this:
https://code.google.com/p/ios-cmake/wiki/HowTo

How to build ohNet for iOS?

I am trying to build the ohNet UPnP stack from openhome.org for execution on the iPhone and iPhoneSimulator. I have seen in various places on the web that there is a port to iOS, and indeed there is some reference to iOS building in the Makefile. After some editing of the $DEVROOT and $SDKROOT paths, I can compile many of the sources, but the build halts with error at:
g++ -pthread -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/lib/ -arch armv6 -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/lib/system -shared -shared-libgcc -o Build/Obj/Mac/arm/Release/libohNet.dylib Build/Obj/Mac/arm/Release/Ascii.o Build/Obj/Mac/arm/Release/AsyncC.o Build/Obj/Mac/arm/Release/AsyncPrivate.o Build/Obj/Mac/arm/Release/Bonjour.o Build/Obj/Mac/arm/Release/Buffer.o Build/Obj/Mac/arm/Release/Discovery.o Build/Obj/Mac/arm/Release/Debug.o Build/Obj/Mac/arm/Release/Converter.o Build/Obj/Mac/arm/Release/CpDeviceCore.o Build/Obj/Mac/arm/Release/CpDeviceC.o Build/Obj/Mac/arm/Release/CpDeviceStd.o Build/Obj/Mac/arm/Release/CpDeviceDvCore.o Build/Obj/Mac/arm/Release/CpDeviceDvStd.o Build/Obj/Mac/arm/Release/CpDeviceDvC.o Build/Obj/Mac/arm/Release/CpDeviceUpnpCore.o Build/Obj/Mac/arm/Release/CpDeviceUpnpC.o Build/Obj/Mac/arm/Release/CpDeviceUpnpStd.o Build/Obj/Mac/arm/Release/CpiDevice.o Build/Obj/Mac/arm/Release/CpiDeviceDv.o Build/Obj/Mac/arm/Release/CpiDeviceUpnp.o Build/Obj/Mac/arm/Release/CpiService.o Build/Obj/Mac/arm/Release/CpiStack.o Build/Obj/Mac/arm/Release/CpiSubscription.o Build/Obj/Mac/arm/Release/CpProxy.o Build/Obj/Mac/arm/Release/CpProxyC.o Build/Obj/Mac/arm/Release/CpServiceC.o Build/Obj/Mac/arm/Release/DvDevice.o Build/Obj/Mac/arm/Release/DvDeviceStd.o Build/Obj/Mac/arm/Release/DvDeviceC.o Build/Obj/Mac/arm/Release/DviDevice.o Build/Obj/Mac/arm/Release/DvInvocationC.o Build/Obj/Mac/arm/Release/DvInvocationStd.o Build/Obj/Mac/arm/Release/DviProtocolUpnp.o Build/Obj/Mac/arm/Release/DviProviderSubscriptionLongPoll.o Build/Obj/Mac/arm/Release/DvOpenhomeOrgSubscriptionLongPoll1.o Build/Obj/Mac/arm/Release/DviServer.o Build/Obj/Mac/arm/Release/DviServerUpnp.o Build/Obj/Mac/arm/Release/DviServerWebSocket.o Build/Obj/Mac/arm/Release/DviService.o Build/Obj/Mac/arm/Release/DviStack.o Build/Obj/Mac/arm/Release/DviSubscription.o Build/Obj/Mac/arm/Release/DviPropertyUpdateCollection.o Build/Obj/Mac/arm/Release/DvProvider.o Build/Obj/Mac/arm/Release/DvProviderC.o Build/Obj/Mac/arm/Release/DvServerUpnp.o Build/Obj/Mac/arm/Release/DvServerUpnpC.o Build/Obj/Mac/arm/Release/DeviceXml.o Build/Obj/Mac/arm/Release/Error.o Build/Obj/Mac/arm/Release/EventUpnp.o Build/Obj/Mac/arm/Release/Exception.o Build/Obj/Mac/arm/Release/Fifo.o Build/Obj/Mac/arm/Release/Http.o Build/Obj/Mac/arm/Release/DNSCommon.o Build/Obj/Mac/arm/Release/DNSDigest.o Build/Obj/Mac/arm/Release/mDNS.o Build/Obj/Mac/arm/Release/uDNS.o Build/Obj/Mac/arm/Release/MdnsPlatform.o Build/Obj/Mac/arm/Release/MdnsProvider.o Build/Obj/Mac/arm/Release/Maths.o Build/Obj/Mac/arm/Release/Md5.o Build/Obj/Mac/arm/Release/NetworkAdapterList.o Build/Obj/Mac/arm/Release/Network.o Build/Obj/Mac/arm/Release/Parser.o Build/Obj/Mac/arm/Release/Printer.o Build/Obj/Mac/arm/Release/ProtocolUpnp.o Build/Obj/Mac/arm/Release/Queue.o Build/Obj/Mac/arm/Release/RefCounter.o Build/Obj/Mac/arm/Release/Service.o Build/Obj/Mac/arm/Release/ServiceC.o Build/Obj/Mac/arm/Release/sha1.o Build/Obj/Mac/arm/Release/Ssdp.o Build/Obj/Mac/arm/Release/SsdpDv.o Build/Obj/Mac/arm/Release/Stack.o Build/Obj/Mac/arm/Release/Stream.o Build/Obj/Mac/arm/Release/Subscription.o Build/Obj/Mac/arm/Release/Thread.o Build/Obj/Mac/arm/Release/Timer.o Build/Obj/Mac/arm/Release/Uri.o Build/Obj/Mac/arm/Release/XmlParser.o Build/Obj/Mac/arm/Release/XmlFetcher.o Build/Obj/Mac/arm/Release/OhNet.o Build/Obj/Mac/arm/Release/OhNetCp.o Build/Obj/Mac/arm/Release/OhNetDv.o Build/Obj/Mac/arm/Release/OhNetCombined.o Build/Obj/Mac/arm/Release/OhNetC.o Build/Obj/Mac/arm/Release/OhNetCCp.o Build/Obj/Mac/arm/Release/OhNetCDv.o Build/Obj/Mac/arm/Release/OhNetCCombined.o Build/Obj/Mac/arm/Release/OsWrapper.o Build/Obj/Mac/arm/Release/Os.o
llvm-g++-4.2: error trying to exec '/usr/bin/../llvm-gcc-4.2/bin/arm-apple-darwin11-llvm-g++-4.2': execvp: No such file or directory
make: *** [ohNetDll] Error 255
I cannot understand why the build process wants to build ohNetDll for this platform, nor how to opt out of that section/target. Dynamic libraries are not supported for iOS Apps and certainly not dlls which are native to Windows.
If you have built/ported/used ohNet on iOS can you please advise how to do it? I wanted to post this question on the ohNet forum, but I am unable to register (because I haven't submitted a security question even though there is nowhere to do so on the form!).
The source, documentation and API guide all look very promising for ohNet, so I am hoping you can advise...
"After some editing of the $DEVROOT and $SDKROOT paths, I can compile
many of the sources..."
For iPhoneOS Platform, set the following environment variables.
export ROOTDIR="/Applications/Xcode.app/Contents/Developer"
export PLATFORM="iPhoneOS"
export MAX_VERSION="5.1"
export DEVROOT=${ROOTDIR}/Platforms/${PLATFORM}.platform/Developer
export SDKROOT=${DEVROOT}/SDKs/${PLATFORM}${MAX_VERSION}.sdk
Then, in the root directory of the source, in the file "Makefile", locate the following section and ensure it looks the same as this one:
ifeq ($(MACHINE), Darwin)
ifeq ($(mac-arm),1)
# Darwin, ARM -> iOS
platform ?= iOS
linkopts_ohNet =
devroot=$(DEVROOT)
sdkroot=$(SDKROOT)
platform_cflags = -I$(sdkroot)/usr/lib/gcc/arm-apple-darwin10/4.2.1/include/ -I$(sdkroot)/usr/include/ -I/usr/bin/arm-apple-darwin10-gcc -miphoneos-version-min=2.2 -pipe -no-cpp-precomp -isysroot $(sdkroot) -DPLATFORM_MACOSX_GNU -DPLATFORM_IOS -I$(sdkroot)/usr/include/c++/4.2.1/armv6-apple-darwin10/
# It seems a bit weird that iOS uses a sub-dir of Build/Obj/Mac, is that deliberate? --AW
osbuilddir = Mac/arm
objdir = Build/Obj/Mac/arm/$(build_dir)/
platform_linkflags = -L$(sdkroot)/usr/lib/ -arch armv7 -L$(sdkroot)/usr/lib/system
compiler = $(devroot)/usr/bin/llvm-gcc-4.2 -arch armv7 -isysroot $(SDKROOT) -o $(objdir)
# No support for linking Shared Objects for ARM MAC
# link = $(devroot)/usr/bin/llvm-gcc-4.2 -pthread -Wl $(platform_linkflags)
ar = $(devroot)/usr/bin/ar rc $(objdir)
native_only = yes
The key points here are:
The $DEVROOT and $SDKROOT are correct for your version of the iOS SDK.
The variable $native_only is set to yes. This avoids error and early exit when make tries (and inevitably fails) to build ohNetDll on the Mac host machine.
Then, in a terminal, in the source root directory (i.e the one containing Makefile) type:
make mac-arm=1
Hope this helps...
Doug

Resources