on 01-15-2015 7:44 AM
Hi,
I am building up the Xcode project manually to develop Agentry application.
Basically I am following below steps, my development Mac is Yosemite with Xcode 6.1.1 installed.
The detailed procedure -
Part 1. Create New Project and Including AgentryClient Framework
Pre-requisites:
Instructions: (Sorry for the mess index)
Till now, the application works fine after launch in simulator and device, I can see the SMP Agentry Client login screen. But some error happened after i continue the following steps to integrate GIS framework
Part 2. Setup Xcode with ArcGIS runtime SDK
Pre-requisites:
1) Download ArcGIS framework (AGSRuntimeSDKiOSv10.1.1.pkg & AGSRuntimeSDKiOSv10.1.1-u2.pkg) from site http://www.esri.com/apps/products/download/
2)Double click to Install AGSRuntimeSDKiOSv10.1.1.pkg firstly, then AGSRuntimeSDKiOSv10.1.1-u2.pkg, after install success, will see ArcGIS folder in MAC_HOME_DIR/Library/SDKs/ArcGIS/iOS
Precedure:
1. I don't try Cocoapods here. I followed the section 'Setup Your Xcode Project Manually' in below link
https://developers.arcgis.com/ios/objective-c/guide/install.htm
2. From Xcode building Setting, set Other Linker Flags as -ObjC -framework SMPAgentryClient -framework ArcGIS -l c++ , but compile with error as below -
Undefined symbols for architecture armv7:
"_SCNetworkReachabilityScheduleWithRunLoop", referenced from:
-[Reachability startNotifier] in Common(Common)
"_OBJC_CLASS_$_AGSGDBGenerateParameters", referenced from:
objc-class-ref in GIS(GIS)
"_SCNetworkReachabilityCreateWithName", referenced from:
+[Reachability reachabilityWithHostName:] in Common(Common)
"_OBJC_CLASS_$_AGSFeatureTableLayer", referenced from:
objc-class-ref in GIS(GIS)
"_OBJC_CLASS_$_AGSGDBGeodatabase", referenced from:
objc-class-ref in GIS(GIS)
"_SCNetworkReachabilityCreateWithAddress", referenced from:
+[Reachability reachabilityWithAddress:] in Common(Common)
"_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from:
-[Reachability stopNotifier] in Common(Common)
"_OBJC_CLASS_$_AGSGDBSyncTask", referenced from:
As suggested by the this post(ios - Undefined symbols for architecture armv7 - Stack Overflow), I remove '-ObjC' in Building Setting/Other Linker Flags and set as -framework SMPAgentryClient -framework ArcGIS -l c++ , then compile success but run app in Xcode with another exception -
2015-01-15 15:07:50.279 SMPAgentrySample[979:619589] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Unable to instantiate the UIApplication subclass instance. No class named SMPAgentryApplication is loaded.'
*** First throw call stack:
(0x2323f49f 0x30cc7c8b 0x2323f375 0x23f10ddb 0x26760c23 0xd2001 0x31247aaf)
libc++abi.dylib: terminating with uncaught exception of type NSException
So basically the application is not able to understand SMPAgentryApplication, I think need to import the static library SMPAgentryClient correctly into Xcode.
The issue 'Undefined symbols for architecture armv7:' is happening after add the two framework(Common.framework and GIS.framework which both from post , Called 'SAP EAM and Service Mobile App SDK') into Build Phases/Link Library with Libraries, Can anyone help to check any dependent libraries need to be added for these framework?
Can anyone help me out from these issues? Any suggestion will be highly appreciated!
Message was edited by: Aaron Hu
Aaron,
Please make sure you are following the SAP EAM and Service Mobile App SDK installation guide for the step by step process. In particular you for iOS you need to be using ArcGIS SDK version 10.2.3 and not the 10.2.2 or 10.1.1 I see referenced in your post.
Rather than build my Agentry client from scratch I typically start with the SMPAgentryClientFrameworkSetup project that is part of the OpenUI SDK to make the base client setup easier. I then follow the instructions for the GIS client to add in the rest of the pieces.
Please retry following those instructions and if you are still having problems let us know.
--Bill
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Bill,
Thanks so much for your reply!
I tried both CocoaPods and Manually setup Xcode.
For CocoaPods, it automatically grab the latest ArcGIS-Runtime-SDK-iOS (10.2.4) from repository, do you think any problem with this version?
For mannually setup, I was downloading the ArcGIS SDK from Esri Downloads
But can not see the version 10.2.3, So I tried 10.1.1 and it's Update2.
Software | |
---|---|
ArcGIS Runtime SDK for iOS v10.1.1 | AGSRuntimeSDKiOSv10.1.1.pkg |
ArcGIS Runtime SDK for iOS v10.1.1 Update 1 | AGSRuntimeSDKiOSv10.1.1-u1.pkg |
ArcGIS Runtime SDK for iOS v10.1.1 Update 2 | AGSRuntimeSDKiOSv10.1.1-u2.pkg |
ArcGIS Runtime SDK for iOS v2.0.1 | AGSAPIiOSV201.pkg |
ArcGIS Runtime SDK for iOS v2.1 | AGSAPIiOSv21.pkg |
ArcGIS Runtime SDK for iOS v2.2.1 | AGSRuntimeSDKiOSv2.2.1.pkg |
ArcGIS Runtime SDK for iOS v2.3 | AGSRuntimeSDKiOSv2.3.pkg |
ArcGIS Runtime SDK for iOS v2.3.2 | AGSRuntimeSDKiOSv2.3.2.pkg |
Thanks for your time!
I did not use CocoaPods but instead downloaded the 10.2.3 version. It should work with the 10.2.4 but hasn't been tested as the control was developed using 10.2.3.
I am not sure where the 10.2.3 version went. I just tried to download and it doesn't show as available. I would go with 10.2.4 in this case then.
--Bill
Thanks Bill.
Issue resolved!
Attach below comment in case anyone needed.
Compared with previous process in original post, I made below changes-
1. Download the latest ArcGIS Runtime SDK for iOS 10.2.4 and install
2. The value of Xcode/Build Setting/Other Linker Flags should be set as “–ObjC –framework SMPAgentryClient –framework ArcGIS –l c++”(No double quotes)
3. Adding SystemConfigure.framework in Xcode/Build Phases/Link Binary with Libraries, to make sure work fine with Reachability
I tried build up the project from scratch and based on SMPAgentryClientFrameworkSetup. both work well.
User | Count |
---|---|
84 | |
10 | |
10 | |
9 | |
7 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.