我和其他很多人一样,在移动世界中迈出了第一步,不知道从哪里开始......
好吧,我在这里看过一些关于移动开发框架或sdk的帖子,但所有这些帖子都针对特定目的,比如web客户端,小部件,html开发等等......
我真正想知道的是,在目前市场上的所有选择中,如PhoneGap,Rho或Corona,以及所有其他选择,什么是一般跨平台移动开发最常用的MDF.
显然,我不是想为每个目的找到完美的平台,但至少知道你的意见和你现在使用的框架,如果有的话......
谢谢您的帮助!
我创建了一个iOS框架,说CustomFramework和Xcode创建的CustomFramework.h文件默认具有以下内容
#import <UIKit/UIKit.h>
//! Project version number for CustomFramework.
FOUNDATION_EXPORT double CustomFrameworkVersionNumber;
//! Project version string for CustomFramework.
FOUNDATION_EXPORT const unsigned char CustomFrameworkVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <CustomFramework/PublicHeader.h>
Run Code Online (Sandbox Code Playgroud)
当我构建项目时,我收到了这些警告
No previous extern declaration for non-static variable 'CustomFrameworkVersionNumber'
No previous extern declaration for non-static variable 'CustomFrameworkVersionString'
Run Code Online (Sandbox Code Playgroud)
知道为什么默认框架创建会给出这些警告吗?
我通过Xcode将我的应用程序上传到商店时遇到问题,特别是这个问题.
我看到很多关于这个错误的帖子,但所有人都在谈论Extension App,我不使用.
我正在使用Custom framework和Cocoapods.
你可以在这里看到我的树:
custom frameworkcocoa pods这是我的可可podFile:
use_frameworks!
link_with 'XXX', 'SharedXXX'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.1'
workspace 'XXX'
xcodeproj 'XXX/XXX.xcodeproj'
xcodeproj 'Shared/SharedXXX.xcodeproj'
def default_pods
pod 'Reveal-iOS-SDK', :configurations => ['Debug']
pod "SnapKit", '~> 0.17.0'
pod "DKChainableAnimationKit", '~> 1.6.0'
pod "AsyncSwift"
end
def shared_pods
pod "Alamofire", '~> 3.0'
pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git'
pod 'ReachabilitySwift', :git => 'https://github.com/ashleymills/Reachability.swift'
end
target :XXX do
xcodeproj 'XXX/XXX.xcodeproj' …Run Code Online (Sandbox Code Playgroud) 我有一个项目
MyAppMyKit.frameworkMyExtension我想使用的共享代码MyKit的MyExtension,但是当我联系了,我得到的警告
ld: warning: linking against a dylib which is not safe for use in application extensions: /Users/me/Library/Developer/Xcode/DerivedData/MyApp-dnztzmxjghjlsteetlokzhjtjqkm/Build/Products/Debug-iphonesimulator/MyKit.framework/MyKit
Run Code Online (Sandbox Code Playgroud)
要配置应用程序扩展目标以使用嵌入式框架,请将目标的"仅限应用程序扩展安全API"构建设置设置为"是".如果不这样做,Xcode会提醒您这样做,方法是显示警告"链接到dylib并不安全,无法在应用程序扩展中使用".
默认情况下正确设置.我可以通过将"仅限App-Extension-Safe API"设置为NO来消除警告,但这可能会导致某些应用程序被拒绝.
该框架不使用应用程序扩展中不允许的任何API.实际上,在示例项目中,您将看到MyKit.framework仅将消息记录到控制台.
从应用程序扩展链接到嵌入式框架的正确方法是什么,以避免这种错误?
我制作了一个框架,我想通过CocoaPods分发.
我不确定我是不是做了些蠢事.我在基本目录中包含了一个完整的.framework文件夹,我希望它能成为我的pod的源代码.当我运行"pod lib lint"时,一切似乎都很好但是当我运行"pod spec lint"时,我得到:
- ERROR | [iOS] The `vendored_frameworks` pattern did not match any file.
Run Code Online (Sandbox Code Playgroud)
我在查看stackoverflow之后尝试添加preserve_paths,但这似乎无法解决我的问题.通过阅读cocoapods文档,vendored_frameworks是"随Pod一起提供的框架包的路径",所以我认为在这里使用它似乎很好.
这是我的podspec文件:
Pod::Spec.new do |s|
s.name = "X"
s.version = "1.0"
s.summary = "Summary"
s.description = "Description here"
s.homepage = "http://www.valid_homepage.com/"
s.license = { :type => "Commercial", :text => "See https://www.license_here" }
s.author = { "Author" => "author@website.com" }
s.source = { :http => "https://storage.googleapis.com/path/to/file" }
s.social_media_url = 'https://twitter.com/handle'
s.platform = :ios, '7.0'
s.requires_arc = true
s.preserve_paths = 'X.framework'
s.vendored_frameworks = 'X.framework' …Run Code Online (Sandbox Code Playgroud) 我有一个iOS应用程序项目,有几个私有(拥有)carthage依赖项,有时我需要调试错误或知道某些方法执行的代码是什么.
我想知道在Carthage/Checkouts使用运行脚本时是否有一种简单的方法来设置框架源代码,这样如果我进行carthage更新并运行我的应用程序,就可以调试框架源代码,而无需添加子项目.
这可以通过在框架构建中包含调试符号来完成,如果是这样,我需要做什么才能使其工作?
我有一个自定义框架,我正在存档以用于另一个项目。更新到 Xcode11 后,我在使用该框架的项目中收到以下错误。
找不到目标“x86_64-apple-ios-simulator”的模块“MyCustomFramework”;发现:arm64、armv7-apple-ios、arm64-apple-ios、arm、armv7
我的框架在 Xcode10 上运行良好,但在 11 上不起作用。我的目标设置为 NO 仅用于构建活动架构。我有以下有效架构;arm64e、armv7s、armv7、arm64。
exec > ${PROJECT_DIR}/${PROJECT_NAME}_archive.log 2>&1
UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal
if [ "true" == ${ALREADYINVOKED:-false} ]
then
echo "RECURSION: Detected, stopping"
else
export ALREADYINVOKED="true"
# make sure the output directory exists
mkdir -p "${UNIVERSAL_OUTPUTFOLDER}"
echo "Building for iPhoneSimulator"
xcodebuild -workspace "${WORKSPACE_PATH}" -scheme "${TARGET_NAME}" -configuration ${CONFIGURATION} -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 11 Pro Max' ONLY_ACTIVE_ARCH=NO ARCHS='i386 x86_64' BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" ENABLE_BITCODE=YES OTHER_CFLAGS="-fembed-bitcode" BITCODE_GENERATION_MODE=bitcode clean build
# Step 1. Copy the framework structure (from iphoneos build) …Run Code Online (Sandbox Code Playgroud) 我正面临一个问题,并搜索了很多但没有找到任何解决方案.
我创建了一个使用MQTTKit的Swift框架,"我使用它添加到我的框架中CocoaPods.
现在我创建了一个将使用上述框架的示例应用程序.
然后我创建了一个工作区,并将xcodeproj文件framework以及示例应用程序添加到工作区.
但现在我无法framework在我的示例应用程序中使用它.
我收到错误没有这样的模块MQTTKit在我的内部framework.
但是framework如果build它分开的话没有错误吗?
这个pods或其他东西有什么问题吗?
我们正在尝试在我们的静态框架中完全启用Bitcode,但是在将应用程序与框架集成时,尽管我们能够在模拟器或设备上构建它,但是在归档应用程序时收到以下错误。
ld: bitcode bundle could not be generated because '.framework/p-iOS(PTFWOperationPrepareTransaction.o)' was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build file '.framework/p-iOS' for architecture armv7
Run Code Online (Sandbox Code Playgroud)
我们已经验证了位码状态,otool -l Versions/A/p-iOS | grep __bitcode并且似乎已正确启用
。
谦虚的要求:
请检查以上屏幕截图中的设置,因为我们已经检查了所有与SO相关的查询,因此请不要将其作为参考。

另外,我们已经尝试使用静态库,框架和位码来解决问题。
提前致谢。