[TIMOB-15833] iOS: Weak link MapKit
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | Critical |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2013-11-27T17:58:18.000+0000 |
Affected Version/s | n/a |
Fix Version/s | 2013 Sprint 24, Release 3.2.0, Release 3.3.0 |
Components | iOS |
Labels | n/a |
Reporter | Jon Alter |
Assignee | Jon Alter |
Created | 2013-11-26T17:11:19.000+0000 |
Updated | 2013-12-03T18:27:08.000+0000 |
Description
When the Map module was removed from the SDK, the linking to the Map framework was also removed MOD-1514. This has caused issues with other modules that are using the MapKit, but are assuming that it will already be linked because it was in the SDK.
To resolve this issue we need to weak link to MapKit in the SDK.
Master PR: https://github.com/appcelerator/titanium_mobile/pull/5027 3_2_X PR: https://github.com/appcelerator/titanium_mobile/pull/5028
Closing ticket as fixed. Verified I can build Alloy and Classic project to iOS without any build errors and was able to build with ti.urbanairship module; verified both APPTS-3418 and TIMODOPEN-350. Appcelerator Studio, build: 3.2.0.201311252112 SDK build: 3.2.0.v20131126144841 CLI: 3.2.0-alpha3 Alloy: 1.3.0-alpha6 Xcode: 5.0.2 Device: iphone 5 (7.0.2), iphone simulator (7.0.3)
Had to update summary and component.
Same is true for other links I think. After this merge the Urban Airship module now stops at:
[~fokke] I don't believe we saw that particular error. Is there something special about your project? Say you used it in a new application. Would it fail there as well?
[~fokke] The symbol that you can't find "CTTelephonyNetworkInfo" is part of the CoreTelephony framework which is included by the module from module.xcconfig. My guess is that you changed the module.xcconfig file in the UA module and forgot to put it back the way it was. Make sure you have this line in your module.xcconfig
Also make sure you do a clean build before testing this.
[~jalter] I didn't take that line out, only added the weak link for MapKit:
But even after downloading the latest distribution (1.3.2) of the module again, I still get the following after first running
ti clean
and thenti build -p ios
:Hey [~fokke], thanks for the feedback. - What TiSDK build are you running against? - Is there an TiSDK build that you can run against that doesn't result in this error? - What version of Xcode are you using? - Can you try making a new project, use the UrbanAirship example, and see if you get the same results?
I build against: * CLI 3.2.0-beta * SDK 3.2.0.v20131122172908 * Xcode 5.0.2 (build 5A3005) * iOS SDK 7.0.3 Steps 1. Create:
ti create -p ios -n ua --id test.ua -d .
2. Add:<module platform="iphone">ti.urbanairship</module>
3. Run::ti build -p ios
I also tried the latest SDK: 3.2.0.v20131126144841
Thanks for the info [~fokke]. Unfortunately we haven't been able to reproduce your issue on this end. If you build with a version of the SDK before the above PR was merged, does it build successfully?
Actually, I also get it with the same CLI and stuff, but then using the 3.1.3.GA SDK?
Interesting. Try this: 1. Try to build your project once 2. Go to the build folder of your project and open the Xcode project in Xcode 3. Look under frameworks and see if CoreTelephony.framework is there 4. If not, Click on the project in Xcode > on the right click "Build Phases" > Expand "Link Binary With Libraries" > Click the + and add the CoreTelephony.framework 5. Still in Xcode, go to "Product" > "Clean" and clean your project 6. Try to run your project from Xcode. Please be sure to let me know how it goes and if CoreTelephony.framework is in frameworks or if you had to add it.
The
CoreTelephony.framework
was not in the list. After adding it like instructed I could run the project. I guess becauseti build
didn't finish the app shows the red-screen-of-death telling meapp.js
does not exist. If you want we could set up a teamview (or other) session so you can test on my system? ;)Ok great! It am getting that there is something wrong with the module on your system. Lets try a few more things here. 1. Re-download the latest UrbanAirship module. 2. Go to where your modules are installed and go to the ti.urbanairship folder. Probably something like: {noformat}/Users/jalter/Library/Application Support/Titanium/modules/iphone/ti.urbanairship{noformat} 3. Delete the folder that is named the version of the module that you downloaded from the folder in step #2 (eg. 1.3.2). 4. Install the new module that you just downloaded. 5. You should see that folder
1.3.2
show up in the ti.urbanairship folder. 6. In your tiapp.xml include the module like this (below) so we can be sure we are using the version that we just installed. {noformat}Thanks for helping me trace this down: 1. I removed the module and ran
ti clean && ti build -p ios
to make sure the module reported missing. 2. I [downloaded](https://github.com/appcelerator/titanium_modules/blob/master/urbanairship/mobile/ios/ti.urbanairship-iphone-1.3.2.zip?raw=true) and installed the module 3. Again ranti clean && ti build -p ios
and... it worked?! Like I described in the original description of this issue I tried re-installing the module before without success. I guess something changed since then? Anyway... looks resolved. Thx a lot [~jalter]!