使用带有cocoapods的AdobeMobileLibrary(适用于iOS)?

awB*_*BSH 5 static-libraries adobe-analytics ios cocoapods

我们将使用Omniture-Tracking for iOS,这是AdobeMobileLibrary的一部分.AdobeAdobeMobileLibrary不能通过cocoapods-repo(只有Omniture的旧版本)提供,但作为静态库,您可以从Adobe网站下载.

我想知道是否有可能用cocoapods维护这个静态库?

我创建了一个podspec文件:

Pod::Spec.new do |s|
  s.name           = 'AdobeMobileLibrary'
  s.version        = '4.0.2'
  s.license        = 'Commercial'
  s.summary        = 'Adobe Omniture SiteCatalyst analytics library for iOS.'
  s.homepage       = 'https://developer.omniture.com/en_US/content_page/mobile/c-measuring-mobile-applications'
  s.author         = { 'Adobe Omniture SiteCatalyst' => 'http://www.adobe.com/solutions/digital-marketing.html' }
  s.source_files   = 'AdobeMobileLibrary/*.{json,h}'
  s.ios.vendored_library = 'AdobeMobileLibrary/AdobeMobileLibrary.a'
  s.library        = 'AdobeMobileLibrary'
  s.xcconfig       = { 'LIBRARY_SEARCH_PATHS' => '"$(PODS_ROOT)/AdobeMobileLibrary"' }
end
Run Code Online (Sandbox Code Playgroud)

在我的podfile中,我像这样引用podspec文件:

pod 'AdobeMobileLibrary', :path => 'AdobeMobileLibrary.podspec'
Run Code Online (Sandbox Code Playgroud)

在Pods项目中,我可以看到所有文件(AdobeMobileLibrary.a,ADBMobile.h,ADBMobileConfig.json)

http://i.stack.imgur.com/rnmp1.png

但是我无法构建项目并收到此错误消息:

ld: library not found for -lAdobeMobileLibrary
Run Code Online (Sandbox Code Playgroud)

有谁有线索,这里的问题是什么?

使用带有cocoapods的AdobeMobileLibrary有不同的解决方案吗?

小智 4

该问题是由于 cocoapods 期望库具有lib前缀,即本例中的libAdobeMobileLibrary.a。解决此问题的最简单方法是创建到库的符号链接:

ln -s AdobeMobileLibrary.a libAdobeMobileLibrary.a
Run Code Online (Sandbox Code Playgroud)

还值得注意的是,对于 Adob​​e Mobile SDK,.json 文件应作为资源而不是源包含在内。此外,您还需要添加对 SystemConfiguration 框架和 libSqlite3.0.dylib 的引用。以下是相应修改的 pod 规格:

Pod::Spec.new do |s| 
  s.name           = 'AdobeMobileLibrary'
  s.version        = '4.0.2'
  s.license        = 'Commercial'
  s.summary        = 'Adobe Omniture SiteCatalyst analytics library for iOS.'
  s.homepage       = 'https://developer.omniture.com/en_US/content_page/mobile/c-measuring-   mobile-applications'
  s.author         = { 'Adobe Omniture SiteCatalyst' => 'http://www.adobe.com/solutions/digital-marketing.html' }
  s.source_files   = 'AdobeMobileLibrary/*.h'
  s.resource       = 'AdobeMobileLibrary/ADBMobileConfig.json'
  s.framework      = 'SystemConfiguration'
  s.ios.vendored_library = 'AdobeMobileLibrary/AdobeMobileLibrary.a'
  s.libraries      = 'sqlite3.0','AdobeMobileLibrary'
  s.xcconfig       = { 'LIBRARY_SEARCH_PATHS' => '"$(PODS_ROOT)/AdobeMobileLibrary"' }
end
Run Code Online (Sandbox Code Playgroud)